March 2, 2026

Compartments or no?

Compartments or no?
Juho Timonen
Computational Scientist
Compartments or no?

Non-compartmental analysis (NCA) and compartmental pharmacokinetic (PK) modeling are two different approaches used to analyze drug concentration-time data from a population of subjects. PK modeling has been a common topic in these blog posts, but this is my first post related to NCA. NCA is a quick method to obtain descriptive statistics from the data, whereas a PK model is ideally a full mathematical description of the data-generating process. Such a model can be used to predict things like drug exposure for new patients given things like age and weight. It is therefore more useful, but can lead to biased results if the model is misspecified.

In this post, I will limit the comparison to estimating exposure quantities, namely the maximum concentration (Cmax) and area under the concentration curve from time 0 to infinity (AUCinf). I assume that there is only a single 100 mg dose at time t=0 and the concentration is measured rather densely in time.

A common NCA method is to use the trapezoidal rule until the last observed time point, and continue from that point to infinity assuming exponential decay. The exponential decay rate has to be estimated, and here we use the common method of fitting ordinary least squares linear regression to the last three data points on the log scale. So this NCA method has the assumption of linear elimination baked in and NCA methods are not free of "modeling" either.


Non-compartmental exposure analysis using a trapezoidal rule and terminal phase estimation.

Below is an experiment where I simulate data using a 2-compartment (2C) model with oral absorption and linear elimination. I compare one- and two-compartment models and NCA.

Experiment (Tlast = 24)


As we see, the trapezoidal rule picks up all the log-normal noise from the concentration measurements but errors in different directions cancel out on average in AUC computations. The difficult part is the terminal phase estimation (dotted line). For SUBJ003, NCA fails because the noise makes it seem like the concentration is increasing after time t=10 h.

NCA illustration (orange) with data observed until time 24 hours. Shown are also two compartmental model fits (1C, 2C) with 80% credible intervals for the true concentration.

Below we compare true and estimated values of exposure quantities using NCA and the compartmental models. The reported r value is the correlation coefficient between the true and estimated values. We see that the 2C model recovers the true values of AUCinf best as expected (first row). The 1C model has a model mismatch and does not fit to data, which leads to a bias in the estimates. But the ordering of subjects based on AUCinf still stays rather accurate, and the correlation (r=0.77) is almost as good as that of the 2C model (r=0.78). The points are colored based on the true fraction of the terminal phase AUC out of total AUCinf. In general, NCA is considered unreliable if this percentage is higher than 20%, which is clearly the case here.

I have reported also AUC0-last (second row), which is the total AUC minus the terminal phase AUC. This is clearly estimated way better by NCA than the 1C model, as can be seen from the previous plot, too.

The last row shows the Cmax. NCA overestimates Cmax, since it will always pick the maximum observed concentration: there are always multiple noisy observations taken near the peak concentration timepoint and chances are that one of them slips higher than the true max concentration.

Estimation accuracy of exposure quantities (AUCinf, AUC0-last, Cmax) using NCA,and two compartmental models (1C, 2C) in the experiment where data was observed until t=24 hours. Data was generated using the 2C model.

Experiment (Tlast = 64)

Here is the same experiment ut we add two more observation time points at t=48 and t=64 hours. In this case the contribution of terminal phase to AUCinf is clearly smaller.

NCA illustration (orange) with data observed until 64 hours.

Estimation accuracy of exposure quantities (AUCinf, AUC0-last, Cmax) using NCA and two compartmental models (1C, 2C) in the experiment where data was observed until 64 hours. Data was generated using the 2C model.

Discussion

A critical part of succesful NCA is estimating the terminal elimination rate constant. Its estimation is noisy and it may require human input in cases where typical methods such as the one presented here fail. The analyst may need to hand-pick the points to be used for estimation. The presented method requires quite densely sampled data for all subjects to be useful. It could be improved to make it more robust, but I feel like why not just develop actual models at that point? Models of course can be badly misspecified, but a good thing is that it can be diagnosed. I don't think anyone would start making decisions based on a model fit like the 1C model seen here!

Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

<!-- 🟢 START --> <div class="comment">  <a href="" target="_blank" class="commenter-name">Vlad</a>  <div class="comment-date">12/08/2025 11:10 am</div>  <p>Test</p>  <a href="#reply-to" class="reply-to-comment">Reply to Vlad</a></div><!-- 🔴 END -->
Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.
Commenter Name
March 20th 2023

This is a comment related to the post above. It was submitted in a form, formatted by Make, and then approved by an admin. After getting approved, it was sent to Webflow and stored in a rich text field.

Reply to Commenter

Comments

<!-- 🟢 START --> <div class="comment">  <a href="https://blog.lasuper.ru/cult-philipp-plein/" target="_blank" class="commenter-name">HaroldQuame</a>  <div class="comment-date">01/31/2026 01:42 am</div>  <p>Стильная одежда имеет большое значение в повседневной жизни. Она помогает подчеркнуть индивидуальность. Гармоничный стиль повышает самооценку. Одежда может быть важным элементом первого восприятия. https://www.tumblr.com/sneakerizer/807155364122509312/self-portrait-%D0%BA%D1%80%D1%83%D0%B6%D0%B5%D0%B2%D0%BD%D0%B0%D1%8F-%D1%80%D0%B5%D0%B2%D0%BE%D0%BB%D1%8E%D1%86%D0%B8%D1%8F-%D0%B8%D0%B7-%D0%BB%D0%BE%D0%BD%D0%B4%D0%BE%D0%BD%D0%B0-%D0%B2 Кроме того, продуманный гардероб упрощает выбор в повседневных делах. В долгосрочной перспективе внимание к стилю формирует привычку. В итоге стильная одежда становится важной частью современного образа жизни.</p>  <a href="#reply-to" class="reply-to-comment">Reply to HaroldQuame</a></div><!-- 🔴 END -->
Leave a comment

Your comments will appear above once approved. We appreciate you!

Thank you!

Your comment will appear above automagically ✨

Refresh Page
Oops! Something went wrong while submitting the form.

Check other articles