Why Audit Censored-Observation Likelihoods?
A below-quantification (BLQ) record does not provide an exact concentration. It tells us that the result was below a stated limit, but not how far below. That distinction changes the likelihood: an exact concentration contributes a probability density, whereas a BLQ result contributes the probability of falling below its limit. If model code uses the wrong contribution, reverses a censoring flag, or applies the wrong limit, the fitted model is answering a different statistical question from the one specified.
An audit therefore follows each record from its data representation to the likelihood factor it selects. This tutorial focuses on left-censored observations reported as below a quantification limit. The calculations use a normal observation model to make the distinction explicit; the same audit logic applies with another specified observation distribution, using that distribution’s density and cumulative distribution function.
Likelihood Contributions for Exact and Censored Records
For a normal observation model, suppose that, conditional on the model quantities represented by \(\theta\), \(Y_i\sim N(\mu_i,\sigma_i^2)\), where \(\mu_i\) is the model-predicted mean and \(\sigma_i>0\) is the residual standard deviation. A quantified value contributes the normal density. A BLQ record contributes the normal probability from the lower tail through its stated limit:
Here \(\Phi\) is the standard normal cumulative distribution function. The second expression follows by standardizing \(Y_i\): \((Y_i-\mu_i)/\sigma_i\sim N(0,1)\), so the event \(Y_i\leq L_i\) is equivalent to \((Y_i-\mu_i)/\sigma_i\leq(L_i-\mu_i)/\sigma_i\).
When observations are conditionally independent given the model quantities, the likelihood is the product of their individual contributions. The product may combine densities for quantified records and probabilities for censored records. A density has units inverse to the measurement units, while a probability is dimensionless; this is expected for a likelihood involving both exact and censored data. Changing measurement units changes the numerical density, so comparisons require consistent units and data representations.
A Practical Audit Sequence
Before evaluating the likelihood, establish what each data field means. In particular, determine the software’s censoring-flag convention rather than assuming that a value of 1 always means BLQ. Confirm that each censored record has the limit that applies to that record, in the same units as the model prediction. Then trace each record through the code path: the flag should select a cumulative probability for a censored record and a density for an exact record.
Write down the data values that represent quantified and BLQ records, including the meaning of every indicator value. Check that the convention agrees with the source data and model specification.
Identify the applicable \(L_i\) for each BLQ record. Check its units and whether the reporting rule is “below” or “at or below”; for a continuous distribution, the distinction at a single boundary has probability zero.
For an exact record, verify the density at the observed value. For a censored record, verify the cumulative probability through \(L_i\), not a density at \(L_i\) and not a density at a placeholder value.
Use the stated \(\mu_i\), \(\sigma_i\), observation or limit, and units to calculate a hand-checkable contribution. Compare it with the implementation’s row-level contribution, allowing for stated numerical precision.
Worked Example: One Exact Result and One BLQ Result
Suppose two hypothetical records share the normal model \(Y_i\sim N(1.20,0.30^2)\), with concentrations in mg/L. The first is quantified at \(0.50\) mg/L. The second is reported BLQ at \(0.60\) mg/L. Assuming conditional independence, calculate the likelihood contribution from these records.
For the quantified value, standardize \(0.50\) mg/L:
For the BLQ record, use its event probability, not the density at \(0.60\) mg/L:
The joint contribution is therefore \(0.08741\times0.02275\approx0.001988\;(\mathrm{mg/L})^{-1}\). A calculation that uses a density at the BLQ limit would be using the wrong type of contribution, even if that density were evaluated correctly.
Record-Specific Limits and Indicator Checks
A dataset can contain different quantification limits across records, for example because the applicable limit varies by assay, sample, or analytical batch. The correct probability is then calculated with the limit for that particular record. Replacing record-specific limits with one default value changes the event whose probability is being evaluated.
Worked Example: Two Different Quantification Limits
Consider two hypothetical BLQ records under \(Y_i\sim N(0.30,0.10^2)\), with all concentrations in mg/L. Their limits are \(0.20\) mg/L and \(0.25\) mg/L, respectively. Calculate the joint likelihood contribution under conditional independence.
For the first record, the standardized limit is \((0.20-0.30)/0.10=-1\), so its contribution is \(\Phi(-1)\approx0.1587\). For the second, it is \((0.25-0.30)/0.10=-0.5\), so its contribution is \(\Phi(-0.5)\approx0.3085\).
If code mistakenly applied \(0.20\) mg/L to both records, it would calculate \(\Phi(-1)^2\approx0.02517\), not \(0.04895\). The discrepancy is not a rounding issue: the second record’s censoring event has been represented with the wrong threshold. An audit should inspect the limit actually passed to the likelihood calculation for each row.
The censoring indicator must also select the correct branch. A useful audit is to make a small truth table from the model’s documented convention: for each possible flag value, write whether the code should use a density or a cumulative probability. Then check representative records against both the raw data status and the implemented branch. This is especially important when a flag is inverse-coded or when a stored concentration field contains a placeholder for BLQ observations.
Worked Example: Detecting a Placeholder Used as an Exact Value
Suppose a hypothetical quantified observation is \(0.70\) mg/L, and a second record is BLQ at \(0.60\) mg/L. Both use \(Y_i\sim N(0.80,0.20^2)\). The data file stores \(0\) in the concentration field for the BLQ row as a placeholder, while a separate indicator identifies it as censored. Calculate the intended likelihood contributions and show what goes wrong if the placeholder is treated as an exact observation.
For the quantified observation, \(z=(0.70-0.80)/0.20=-0.5\). Its density contribution is
The BLQ contribution uses the stated limit, \(0.60\) mg/L: \(z_L=(0.60-0.80)/0.20=-1\), so \(P(Y\leq0.60\mid\theta)=\Phi(-1)\approx0.1587\). The joint contribution is approximately \(1.760\times0.1587=0.2793\;(\mathrm{mg/L})^{-1}\).
If the code ignores the indicator and treats the placeholder zero as an exact concentration, it instead uses
That factor describes an exact measurement at zero, not the information “below \(0.60\) mg/L.” The placeholder should not determine the likelihood; the censoring indicator and applicable limit should.
Assumptions, Diagnostics, and Alternatives
The calculations above rely on a specified observation distribution and correct parameters for its location and variability. They also assume that a BLQ report means the underlying modeled observation fell on the stated left-censored side of the limit, that the limit is known and represented on the same scale as the observation, and that the specified censoring rule is applied consistently. Multiplying row contributions additionally requires conditional independence for the observations being multiplied. If that assumption does not hold under the model, the joint likelihood must reflect the dependence rather than simply multiplying marginal factors.
A normal model is only an example. If the specified observation model is not normal, use its own CDF at the limit. If it is formulated on a transformed scale, the event and threshold must be expressed on that scale; for a monotone increasing transformation, the threshold transforms in the same direction. An auditor should not substitute a normal CDF merely because it is convenient. The distribution and scale must match the written model and its implementation.
Common warning signs include a censored row entering the exact-observation density branch, a quantified row entering a CDF branch, use of one limit for records with different limits, a mismatch between indicator coding and the code’s condition, or a unit mismatch between the limit and prediction. Recalculating selected row contributions is a direct diagnostic. When likelihoods are accumulated on the log scale to avoid numerical underflow, the corresponding censored term should be \(\log F_i(L_i\mid\theta)\), not \(\log f_i(L_i\mid\theta)\). The log calculation does not alter which event the likelihood must represent.
Substitution methods, such as replacing each BLQ value by zero or by a fraction of the limit, are not the same likelihood. They treat an imputed value as though it were an exact observation and can change both the contribution and the information attributed to that record. Excluding BLQ observations discards the information that the result fell below its limit. A censored likelihood retains that event information without pretending to know the unobserved exact value. These alternatives may be used for other purposes under explicit methods, but they should not be mistaken for the likelihood of a left-censored observation.
The censored likelihood also has limits. It cannot recover the exact unobserved concentration from a BLQ record, and its contribution depends on the assumed observation distribution and the correctness of the limit. If the reporting process is more complicated than a known threshold, or the data represent a different kind of censoring, the likelihood must represent that process appropriately. The audit establishes whether the implemented contribution matches the stated censoring model; it does not by itself establish that the model or assay assumptions are scientifically adequate.
Check Your Understanding
Answer each question, then compare your reasoning with the solutions.
- Under \(Y\sim N(1.00,0.20^2)\), what likelihood contribution corresponds to a BLQ record with limit \(0.80\) mg/L: \(f(0.80)\) or \(P(Y\leq0.80)\)? Calculate it.
- Two independent BLQ records have the same model \(Y_i\sim N(0.50,0.10^2)\), but limits \(0.40\) and \(0.50\) mg/L. Calculate their joint contribution.
- A data field stores zero for BLQ records, and the code uses the density at the stored value without checking the censoring indicator. What is the error?
- Why is replacing a BLQ result by half its limit not the same as using the censored likelihood?
Solutions. (1) Use the CDF: \(P(Y\leq0.80)=\Phi((0.80-1.00)/0.20)=\Phi(-1)\approx0.1587\). (2) The contributions are \(\Phi(-1)\approx0.1587\) and \(\Phi(0)=0.5000\); their product is approximately \(0.07933\). (3) The code interprets the placeholder as an exact zero and evaluates a density there, rather than using the probability of falling below the record’s limit. (4) Half-limit substitution assigns an exact value that was not observed and uses its density; the censored likelihood uses the probability of the interval represented by the BLQ report.