M3 method (Censoring Observations)


I want to apply M3 method to my data (lower limit of quantification is 100 IU/L). The data points below the limit of quantification (BLQs) are reported as zero. I have two questions regarding the format of the data to allow Pumas apply M3 method

CONC ~ @. Censored(Normal(CP, CP*σ_prop),100.0,Inf)

1- should I keep the BLQs observations as zeros or convert them to 100 ?
2- Do I have to include a new flagging columns to flag the BLQs or Pumas automatically censor any data point below or equal to 100 ?



You don’t need to convert them, just use it as it is. Pumas automatically flags BLQ observations based on the argument to make it convenient to you. We made everything in Pumas intuitive and user-oriented.
Simply use the Censored distribution in the @derived block to specify the BLQ and that is it! No need to specify in read_pumas.

Hi @storopoli , Thanks so much for the reply. I have two followup questions:

1- I looked into the output of inspect function and I saw calculated individual predictions for BQLs (which are represented as well in the output of goodness_of_fit function’s graphs). My understanding that the BQLs are censored and do not contribute to the parameter estimation. In that case what do the individual predictions represent ? since all observations have the same number which is the lower limit of quantification.

2- Does Pumas support using M3 method if I decided to use Bayes.MCMC instead of LaplaceI


  1. The BLQ values do contribute to the likelihood. They tell us that the observation was in some tail of the distribution and the model and parameters will assign some probability to that tail area. Additionally, inspect calculates individual predictions (ipreds). If you having all of them being calculated as BLQ values, then either your data (the dvs) have a lot of BLQs or there is something wrong with your model and/or data.
  2. Yes you can use them in Bayes.MCMC() it will work.
1 Like