OT: beyond TTT? [PK / PD]
Dear Yung-jin & Detlew,
Maybe. Maybe not.
Scheerans et al. recommend as a starting point the intersection of the last two log/linear lines (“[…] the crossing of the imaginary first and second disposition phase lines in the (semi-logarithmic) plasma profile post Cmax is generally used as a ‘visual marker’ for the beginning of the monoexponential terminal phase.”)1 Unfortunately this point might be difficult to spot if (1) there is more than moderate noise and (2) distribution/elimination don’t differ too much.
I’m currently exploring this workflow:
If you want to play:
A 75, B 25, α 0.5, β 0.1, ka 2, t {0, 0.25, 0.5, 1, 1.5, 2, 2.5, 3, 4, 6, 9, 12, 16, 24}
After adding some noise / rounding I got:
tmax 1, TTT 2, time-interval for stick-regression {2, 24}, δ 7.73 → starting-point for λz 9.
The common algos would pick nine to ten values – resulting in extremely biased λz.2 This demonstrates how important visual inspection of the fit is (aka don’t naïvely trust in automatic methods). The algo based on the breakpoint would pick four values, which is also the ‘best’ in terms of bias (–5.04%). By eye-balling likely I would choose the last three (bias –22.35%).
![[image]](img/uploaded/image182.png)
P.S.: I would not use function
Maybe a way forward would be to extract only the breakpoint?
❝ ❝ But as a tool to restrict the upper number of points to consider in the terminal phase it may be also used for other shapes. Hopefully the fit criterion you use (adjR2, AIC or whatever you prefer) will pick the linear part. In that sense I have used the TTT rule and found it giving reasonable results.
❝
❝ […] Yes, it should be picking linear part only. Since when it approaches "nonlinear" part, adjR2 will start decreasing or AIC will increase in that case (theoretically?).
Maybe. Maybe not.
Scheerans et al. recommend as a starting point the intersection of the last two log/linear lines (“[…] the crossing of the imaginary first and second disposition phase lines in the (semi-logarithmic) plasma profile post Cmax is generally used as a ‘visual marker’ for the beginning of the monoexponential terminal phase.”)1 Unfortunately this point might be difficult to spot if (1) there is more than moderate noise and (2) distribution/elimination don’t differ too much.
I’m currently exploring this workflow:
- Find TTT by the usual algo (see here).
- Generate a subset of data in the interval [TTT, tz].
- Perform a 2-part linear stick-regression or MARS with a common intercept on log(C), where the initial estimate of the breakpoint δ = 2nd time point after TTT (3 in my example below).
Y = β0 + β1t + ifelse(t≥δ, β2(t-δ), 0)
- Set the starting point of the last phase similar to TTT: Use the first time point which is ≥ the estimated breakpoint δ.
- Visual inspection still mandatory.
If you want to play:
A 75, B 25, α 0.5, β 0.1, ka 2, t {0, 0.25, 0.5, 1, 1.5, 2, 2.5, 3, 4, 6, 9, 12, 16, 24}
After adding some noise / rounding I got:
0.25 29.63
0.5 46.07
1 53.68
1.5 52.75
2 45.99
2.5 40.24
3 34.87
4 27.19
6 17.59
9 11.83
12 7.39
16 4.08
24 2.75
tmax 1, TTT 2, time-interval for stick-regression {2, 24}, δ 7.73 → starting-point for λz 9.
t { } n λz %RE R²adj
1.5 – 24 10 0.1384 +38.36 0.9391 ← max. R²adj, min. AIC
2 – 24 9 0.1342 +34.19 0.9382 ← TTT/max. R²adj, TTT/min. AIC
2.5 – 24 8 0.1295 +29.47 0.9362
3 – 24 7 0.1236 +23.65 0.9333
4 – 24 6 0.1157 +15.68 0.9290
6 – 24 5 0.1051 + 5.07 0.9206
9 – 24 4 0.0950 – 5.04 0.8800 ← ‘breakpoint method’
12 – 24 3 0.0777 –22.35 0.8183
The common algos would pick nine to ten values – resulting in extremely biased λz.2 This demonstrates how important visual inspection of the fit is (aka don’t naïvely trust in automatic methods). The algo based on the breakpoint would pick four values, which is also the ‘best’ in terms of bias (–5.04%). By eye-balling likely I would choose the last three (bias –22.35%).

![[image]](img/uploaded/image182.png)
- Scheerans C, Derendorf H, Kloft C. Proposal for a Standardised Identification of the Mono-Exponential Terminal Phase for Orally Administered Drugs. Biopharm Drug Dispos. 2008;29(3):145–57. doi 10.1002/bdd.596
- Phoenix by default and bear restrict the first value to the one following tmax. Classical WinNonlin’s algo is even more greedy and would include even tmax (!): R²adj 0.9431, λz 0.1408, RE +40.80%… See also this post.
P.S.: I would not use function
lee()
in package PK
– smells already too much of modeling to me (sorry, Martin; see here). All methods detect two phases if the starting point is set to TTT, but…lee(conc[6:14], time[6:14], method="ols")
: last 3, λz 0.0777 (–22.35%)lee(conc[6:14], time[6:14], method="lad")
: last 4, λz 0.0824 (-17.62%)lee(conc[6:14], time[6:14], method="hub")
: last 3, λz 0.0777 (–22.35%)lee(conc[6:14], time[6:14], method="npr")
: last 4, λz 0.0973 (-2.73%)Maybe a way forward would be to extract only the breakpoint?
—
Dif-tor heh smusma 🖖🏼 Довге життя Україна!![[image]](https://static.bebac.at/pics/Blue_and_yellow_ribbon_UA.png)
Helmut Schütz
![[image]](https://static.bebac.at/img/CC by.png)
The quality of responses received is directly proportional to the quality of the question asked. 🚮
Science Quotes
Dif-tor heh smusma 🖖🏼 Довге життя Україна!
![[image]](https://static.bebac.at/pics/Blue_and_yellow_ribbon_UA.png)
Helmut Schütz
![[image]](https://static.bebac.at/img/CC by.png)
The quality of responses received is directly proportional to the quality of the question asked. 🚮
Science Quotes
Complete thread:
- 1 compartment model with lag time jag009 2013-07-17 15:58 [PK / PD]
- solve for k01? Helmut 2013-07-17 16:08
- solve for k01? jag009 2013-07-17 16:19
- solve for k01? ElMaestro 2013-07-17 17:09
- no closed form Helmut 2013-07-17 23:01
- solve for k01? jag009 2013-07-17 16:19
- 1 compartment model with lag time yjlee168 2013-07-17 20:57
- Package-free solution ElMaestro 2013-07-17 21:53
- Package-free solution yjlee168 2013-07-17 22:11
- Package-free solution ElMaestro 2013-07-17 22:27
- Package-free solution yjlee168 2013-07-17 22:42
- Package-free solution ElMaestro 2013-07-17 22:27
- Package-free solution ElMaestro 2013-07-17 23:21
- A new R-King was born d_labes 2013-07-18 08:45
- Brent ElMaestro 2013-07-18 09:07
- A new R-King was born yjlee168 2013-07-18 10:21
- OT: TTT in bear Helmut 2013-07-18 20:28
- OT: TTT in bear yjlee168 2013-07-18 22:17
- OT: TTT subtleties d_labes 2013-07-19 09:47
- OT: TTT subtleties yjlee168 2013-07-20 19:44
- OT: beyond TTT?Helmut 2013-07-21 00:08
- OT: beyond TTT? yjlee168 2013-07-22 13:45
- OT: keep TTT! Helmut 2013-07-22 14:21
- OT: keep TTT! yjlee168 2013-07-22 23:42
- OT: EOD (here) Helmut 2013-07-23 01:06
- OT: keep TTT! yjlee168 2013-07-22 23:42
- OT: keep TTT! Helmut 2013-07-22 14:21
- OT: beyond TTT? yjlee168 2013-07-22 13:45
- OT: beyond TTT?Helmut 2013-07-21 00:08
- OT: TTT subtleties yjlee168 2013-07-20 19:44
- OT: TTT subtleties d_labes 2013-07-19 09:47
- OT: TTT in bear yjlee168 2013-07-18 22:17
- OT: TTT in bear Helmut 2013-07-18 20:28
- Package-free solution yjlee168 2013-07-18 10:27
- Thank you guys! jag009 2013-07-18 16:37
- Thank you guys! ElMaestro 2013-07-18 18:57
- Thank you guys! jag009 2013-07-19 20:40
- Thank you guys! ElMaestro 2013-07-18 18:57
- Thank you guys! jag009 2013-07-18 16:37
- A new R-King was born d_labes 2013-07-18 08:45
- Package-free solution yjlee168 2013-07-17 22:11
- solve for k01? Helmut 2013-07-17 16:08