Why Check an Individual PK Fit?
An individual posterior can produce precise forecasts and dose recommendations while still failing to reproduce that person’s observed concentrations. A posterior predictive check asks a direct model-adequacy question: if the fitted model and this individual’s posterior were plausible, could replicated concentration data look like the data actually observed? This is a check of the model as used for that individual, not a guarantee that future forecasts will be calibrated or that the population model is correct.
The check must preserve the observation process. If the observed data are assay measurements at specified times after particular doses, a replicated data set should use those same dose histories and sampling times, then include the measurement-error process specified by the model. Simulating only the smooth concentration curve checks a different object: the latent PK trajectory, not the noisy data that were observed.
Model and Assumptions Behind the Check
Suppose the concentration predicted at time \(t_i\), given the administered doses and parameters, is \(C(t_i;\theta)\). For example, with a lognormal observation model,
Here \(Y_i\) is the measured concentration and \(\sigma\) describes log-scale measurement or residual variability. This model assumes positive concentrations, a suitable lognormal error distribution, and conditionally independent errors if the \(\epsilon_i\) are modeled as independent. Other PK models may use additive error, combined error, correlated errors, or an explicit model for values below quantification limits. The check must simulate using the observation model actually fitted; it should not silently replace that model with lognormal error.
The posterior \(p(\theta\mid y)\) must also represent the intended individual-level inference, including the prior information and population-model information used in updating. Dose amount, dose timing, sampling times, units, and any relevant time-varying covariates must be correctly represented. If concentrations are censored or missing, the replication and comparison need to reflect how those observations entered the likelihood. A check based on the wrong observation schedule or an incorrectly recorded dose history can diagnose a data-processing problem rather than a PK-model problem.
For each posterior draw \(\theta_s\), simulate \(y_s^{\mathrm{rep}}\) conditional on that draw. Retain the observed sampling times and dose history. Then compare a feature, or discrepancy, of the observed and replicated data. A useful discrepancy is chosen to target a particular concern: overall magnitude, peak timing, or within-person variability. No single discrepancy can establish that every aspect of a fit is adequate.
Paired Discrepancies and Their Interpretation
A discrepancy may depend on the parameter draw as well as the data. Write it as \(T(y,\theta)\). The paired posterior predictive tail area for an upper-tail check is
The defining feature is the pairing: for each draw \(s\), compare the replicated discrepancy with the observed discrepancy calculated using the same \(\theta_s\). This matters because the reference prediction can change across posterior draws. Comparing every replicate with one fixed observed discrepancy can produce a different, unpaired calculation.
The Monte Carlo approximation follows directly from the predictive simulation. Each pair \((\theta_s,y_s^{\mathrm{rep}})\) is drawn by first drawing from \(p(\theta\mid y)\) and then from \(p(y^{\mathrm{rep}}\mid\theta_s)\). The indicator is one precisely when the replicated discrepancy is at least as large as its observed counterpart. Averaging these indicators estimates the posterior predictive probability of that event. With \(S\) independent draws, the Monte Carlo standard error of the estimated proportion is approximately \(\sqrt{\hat p_B(1-\hat p_B)/S}\), though dependence in simulation output can make the effective Monte Carlo error larger.
A tail area near zero indicates that the observed discrepancy is unusually large relative to replicated discrepancies; a value near one indicates that it is unusually small for an upper-tail statistic. Neither interpretation is a classical hypothesis-test conclusion. The same data are used to form the posterior and to calculate the observed discrepancy, so posterior predictive tail areas are not generally uniform under a correctly specified model and can be conservative. A value near one-half is not proof of fit, and an extreme value is a prompt to investigate the chosen feature, model, data, and simulation—not an automatic instruction to change a dose.
Worked Example: Checking Overall Concentration Magnitude
Hypothetical case. An individual has observed concentrations \(3.0,\ 5.8,\ 4.1,\) and \(1.7\) mg/L at \(1,\ 2,\ 4,\) and \(8\) hours after a dose. For each posterior draw, define a magnitude discrepancy as the mean squared standardized log difference between the observed concentrations and the individual model’s predicted concentrations:
The corresponding \(T(y_s^{\mathrm{rep}},\theta_s)\) is calculated from simulated observations at the same four times, using that same draw’s predictions and error scale. Suppose eight posterior draws produce the following paired values. These are hypothetical simulation outputs; the discrepancy is dimensionless.
| Draw \(s\) | \(T(y,\theta_s)\) | \(T(y_s^{\mathrm{rep}},\theta_s)\) | Replicated at least observed? |
|---|---|---|---|
| 1 | 1.20 | 2.00 | Yes |
| 2 | 0.80 | 0.50 | No |
| 3 | 1.50 | 1.70 | Yes |
| 4 | 0.60 | 0.90 | Yes |
| 5 | 1.10 | 0.80 | No |
| 6 | 0.90 | 1.20 | Yes |
| 7 | 1.40 | 1.60 | Yes |
| 8 | 0.70 | 0.60 | No |
Five of the eight paired replicated discrepancies are at least as large as their observed counterparts. Thus \( \hat p_B=5/8=0.625 \). This small simulation gives no indication that the observed overall magnitude discrepancy is unusually large under the fitted model. It does not show that every time point is well fit: a total discrepancy can conceal a systematic error at one part of the concentration profile.
Checks for Timing and Variability
A timing check can focus on when the measured profile reaches its maximum. With discrete sampling, define the observed peak time as the scheduled sampling time at which the largest measured concentration occurs; use a stated tie rule, such as choosing the earliest tied time. Simulate replicated observations at the same sampling times and calculate the same peak-time summary for each replicate. A histogram or table of replicated peak times shows whether the observed peak timing is compatible with the model’s replicated patterns. This is a descriptive predictive comparison; if a tail area is calculated, the discrepancy and its direction must be defined explicitly.
A variability check can ask whether the model reproduces the scatter of an individual’s observations around the parameter-specific PK curve. For log-scale residuals, one possible discrepancy is their sample standard deviation:
This statistic is in log-concentration units. It targets the spread of deviations, not whether the deviations follow the assumed error distribution or whether they have a time pattern. A model can reproduce the overall spread and still miss a rising or falling trend in residuals; that requires a different, deliberately chosen check.
Worked Example: Checking Peak Timing
Hypothetical case. The measured concentrations for the individual at \(1,\ 2,\ 4,\) and \(8\) hours are \(3.0,\ 5.8,\ 4.1,\) and \(1.7\) mg/L. The largest measured value is \(5.8\) mg/L at 2 hours, so the observed peak time on the sampling grid is 2 hours. In 200 posterior predictive replicates, the largest value occurs at 1 hour in 18 replicates, at 2 hours in 132, at 4 hours in 42, and at 8 hours in 8.
The simulated proportions are \(18/200=0.090\), \(132/200=0.660\), \(42/200=0.210\), and \(8/200=0.040\), respectively. The observed peak time, 2 hours, is the most frequent replicated peak time and lies in a common part of this predictive distribution. This provides no obvious sign that peak timing on the observed grid is poorly reproduced. It does not identify the true continuous-time peak: a maximum at 2 hours only says that the measured value was largest at that scheduled time.
Worked Example: Checking Within-Person Variability
Hypothetical case. Use the four concentrations from the preceding examples and the sample standard deviation of log residuals as the variability discrepancy. For one posterior draw, suppose the observed log residuals are \(0.10,\ -0.20,\ 0.30,\) and \(-0.20\). Their mean is zero, so
For the replicate generated from that same parameter draw, suppose the log residuals are \(-0.05,\ 0.05,\ -0.05,\) and \(0.05\). Their mean is also zero, giving
For ten paired posterior draws, suppose the observed and replicated standard deviations, in log-concentration units, are respectively \((0.245,0.058), (0.220,0.310), (0.180,0.190), (0.280,0.120), (0.240,0.400), (0.200,0.210), (0.260,0.160), (0.300,0.340), (0.190,0.270), and \((0.230,0.180)\). Six replicated values are at least as large as their paired observed values. The upper-tail estimate is \(6/10=0.600\). The limited simulation does not suggest unusually large observed variability, but ten draws give a noisy estimate; more simulation draws and examination of the full predictive distribution would be appropriate before drawing a strong conclusion.
Practical Workflow, Alternatives, and Failure Modes
Choose a feature with a PK interpretation: overall magnitude, peak timing, or within-person variability. Specify the direction of concern before calculating a tail area.
For each individual posterior draw, preserve the individual’s dose history and observed sampling times, then simulate the latent concentrations and measurement process as appropriate.
Calculate the same summary or discrepancy for the observed data and each replicate. If it depends on \(\theta_s\), use that same draw in both calculations.
Review the predictive summaries or paired tail area alongside the observed profile. Identify which feature is and is not checked, and consider whether computation and data handling were adequate.
A common mistake is to calculate \(T(y,\theta_s)\) for each posterior draw, average those observed discrepancies to one number, and compare every replicated discrepancy with that fixed average. That is not the paired upper-tail calculation defined above: it discards the draw-specific reference. The correction is to compare \(T(y_s^{\mathrm{rep}},\theta_s)\) directly with \(T(y,\theta_s)\) for each \(s\), and then average the indicators. A comparison to a fixed threshold can be useful if that threshold is substantively justified, but it should be described as a different, unpaired tail calculation.
Another failure is simulating only \(C(t_i;\theta_s)\) and comparing it to noisy assay values while claiming to check the observed-data model. That omits residual error and can make replicates look artificially smooth. Conversely, simulating error twice inflates variability. Check whether each layer—latent PK, residual error, censoring, and sampling—has been included exactly as intended. Extreme replicated values or implausible timing can also arise from a few influential posterior draws, so inspect the simulated profiles and verify that the posterior simulation itself is adequate.
Posterior predictive checks complement, rather than replace, the earlier material on posterior predictive concentration forecasts and Bayesian model averaging for individual forecasts. A model-averaged check should simulate a model index from its posterior model probabilities, then draw parameters and replicated observations conditional on that model. Residual diagnostics examine structured patterns in observed errors more directly, while posterior predictive checks compare selected features with data generated under the fitted posterior predictive distribution. Neither a satisfactory check nor a moderate tail area proves predictive calibration; calibration of individual predictive intervals is a separate question.
These checks are limited by the data available for one person. Sparse sampling may make peak timing nearly uninformative, and multiple discrepancies can be inspected until one appears reassuring. Small tail areas may reflect a wrong structural PK assumption, a misspecified error model, an incorrectly entered dose, or an unusual observation; the check alone does not distinguish these causes. Report the statistic, its units or scale, simulation design, and uncertainty from finite simulation. Use the check to guide targeted investigation, not as a stand-alone decision rule.
Check Your Understanding
Answer each question, then compare with the brief solutions.
- Why should a replicated individual data set use the observed dose history and sampling times?
- For a parameter-dependent discrepancy, what must be paired in an upper-tail posterior predictive check?
- An observed peak occurs at 4 hours, but replicated peaks often occur at 2 hours. What can this comparison suggest, and what does it not establish?
- Why is a posterior predictive tail area of 0.50 not proof that an individual PK model fits well?
Solutions. (1) The check should compare the observed data with data generated under the same dosing and observation design; otherwise differences can be caused by the changed design rather than model fit. (2) For each draw \(s\), compare \(T(y_s^{\mathrm{rep}},\theta_s)\) with \(T(y,\theta_s)\), using the same \(\theta_s\) on both sides. (3) It can indicate that the model has difficulty reproducing the observed peak timing on that sampling grid. It does not prove which model component is responsible, nor determine the individual’s continuous-time peak. (4) The posterior uses the observed data, so the check is not an independent classical test; moreover, one discrepancy may miss other failures, and finite simulation adds uncertainty.