|
Shuanghe ★★ Spain, 2025-11-10 16:55 (205 d 12:10 ago) Posting: # 24484 Views: 5,066 |
|
|
Dear all, A quick question regarding the best fit regression method to determine \(\lambda_z\) in Phoenix. I vaguely recall that in older WinNonlin and early version of Phoenix, the rule to determine the \(\lambda_z\) is more or less like this: starting from the last 3 points, do the regression and calculate \(R^2_\textrm{adj}\), then include last 4 points and repeat the regression and calculate \(R^2_\textrm{adj}\), if \(R^2_\textrm{adj}\) improves (more than some tolerance limit such as 0.0001), continue move forward by including 1 more early point, ..., until your \(R^2_\textrm{adj}\) does not improve or improves but within tolerance limit, then you stop. Even when there are more time points after \(t_\textrm{mx}\), we do not proceed forward. Those are what I remembered and there were examples of some R code in this forum to implement such approaches. However, I noticed that in the recent Phoenix Certara changed the method to the following: starting from the last 3 points, do the regression and calculate \(R^2_\textrm{adj}\), and repeat it until you reach the point after \(t_\textrm{mx}\) (for oral dose). Then you compare all the \(R^2_\textrm{adj}\), the biggest \(R^2_\textrm{adj}\) is the winner. If there are more than 1 \(R^2_\textrm{adj}\) within tolerance limit (e.g., 0.0001), then the winner is the one including the most time points. I paraphrased the new procedure and left some details that's irrelevant to my question below. You can read it in details here. When I noticed the difference of PK values that I got from my R code and the results received from CRO using Phoenix, I thought I might have found a bug in Phoenix. But then I saw the manual of the new version of Phoenix, it seems they did it deliberately. I think that the previous method (even though with its limitations) is better. To cite Helmut's word, the previous best fit method is "greedy" (compared to the eyes of pharmacokineticist). Now I don't have a word for the new method. "Greeeeeeedy"? Does anyone know why they changed it? Simon, are you still here? Is this a bug or new feature? ![]() Edit: Category changed. [Helmut] — All the best, Shuanghe |
|
Helmut ★★★ ![]() Vienna, Austria, 2025-11-11 09:42 (204 d 19:23 ago) @ Shuanghe Posting: # 24486 Views: 4,440 |
|
|
Hi Shuanghe, very strange. If you navigate up in the online-manual, can you access the ‘release notes’?
I can’t, though I have a license. I will drop Simon a note. — Dif-tor heh smusma 🖖🏼 Довге життя Україна! ![]() Helmut Schütz ![]() The quality of responses received is directly proportional to the quality of the question asked. 🚮 Science Quotes |
|
SDavis ★★ UK, 2025-11-11 15:24 (204 d 13:40 ago) (edited on 2025-11-11 15:36) @ Shuanghe Posting: # 24488 Views: 4,439 |
|
|
hi, I happen to have a 4.1 user manual on my bookshelf, yes a real book (2003)... and you can see from the attached pages the text is almost the same as in 8.7. My understanding is the only change made was with v6.0 of WinNonlin, first Phoenix version, was not to allow Cmax. I think the issue maybe the text is slightly ambiguous and people read into it, "and then you stop", however it always went all the way back to Tmax, (and from 6.0+; Tmax+1) before selecting the value with the largest Adj-R-Sq. I think "If the adjusted R2 does not improve, but is within 0.0001 of the largest adjusted R2 value, the regression with the larger number of points is used." infers that but I've asked that we make it clearer in future iterations of the help that all points are assessed. Long story short, it hasn't changed for 20+years, Regards, Simon. Manager, Support, Certara. ![]() ![]() ![]() — Simon Senior Scientific Trainer, Certara™ [link=https://www.youtube.com/watch?v=xX-yCO5Rzag[/link] https://www.certarauniversity.com/dashboard https://support.certara.com/forums/ |
|
Shuanghe ★★ Spain, 2025-11-11 23:38 (204 d 05:26 ago) @ SDavis Posting: # 24489 Views: 4,372 |
|
|
Hi Simon, ❝ hi, I happen to have a 4.1 user manual on my bookshelf, yes a real book (2003)... and you can see from the attached pages the text is almost the same as in 8.7. Many thanks for the clarification. I check the Phoenix manual from 8.7 back to 8.2.2 (the earliest available manual that I could find online) and the description is more or less the same. I was about to ask Helmut if he has older WinNonlin version 5 manual to double check it, yours is better. I'm surprised, but glad, that you still has that old manual. ❝ Long story short, it hasn't changed for 20+years, I stand corrected. I must've mixed up the source of the regression method that I described above before the Phoenix's approach. Did any forum member recall the 1st approach of regression for \(\lambda_z\) I described in my post above? I could swear that I've read it somewhere. — All the best, Shuanghe |
|
Helmut ★★★ ![]() Vienna, Austria, 2025-11-12 00:20 (204 d 04:44 ago) @ Shuanghe Posting: # 24490 Views: 4,409 |
|
|
Hi Shuanghe, ❝ […] I was about to ask Helmut if he has older WinNonlin version 5 manual to double check it, yours is better. I'm surprised, but glad, that you still has that old manual. From my archive: WinNonlin 3.3 (2001) ![]() WinNonlin 5.0.1 (2005) ![]() WinNonlin 5.3 (2009) ![]() Phoenix WinNonlin 6.3 (2012) ![]() Exactly the same wording in Phoenix WinNonlin 6.4 (2014), 7.0 (2016), 8.0 (2017), 8.1.1 (2018), 8.3.4 (2020), 8.4.0 (2023), 8.5.1 (2024). — Dif-tor heh smusma 🖖🏼 Довге життя Україна! ![]() Helmut Schütz ![]() The quality of responses received is directly proportional to the quality of the question asked. 🚮 Science Quotes |
|
Helmut ★★★ ![]() Vienna, Austria, 2025-11-12 13:16 (203 d 15:49 ago) @ Shuanghe Posting: # 24492 Views: 4,363 |
|
|
Hi Shuanghe, ❝ Did any forum member recall the 1st approach of regression for \(\lambda_z\) I described in my post above? I could swear that I've read it somewhere. The package PKNCA was cross-validated with WinNonlin. IMHO, it’s vignette describes clearly that all fits are done and then one is selected.. — Dif-tor heh smusma 🖖🏼 Довге життя Україна! ![]() Helmut Schütz ![]() The quality of responses received is directly proportional to the quality of the question asked. 🚮 Science Quotes |
|
Shuanghe ★★ Spain, 2025-11-12 22:24 (203 d 06:41 ago) @ Helmut Posting: # 24494 Views: 4,319 |
|
|
Hi Helmut, Thanks. Yes, PKNCA's vignette is clear. I still cannot believe that I had the false memory for so many years, and I still think I must've have read it somewhere else about the step-wise regression approach I guess I probably should also thank myself for giving my Phoenix license to my colleague recently and was forced to use R instead of Phoenix for the first time to double check the CROs' results, otherwise I wouldn't have noticed it. ![]() — All the best, Shuanghe |
|
Helmut ★★★ ![]() Vienna, Austria, 2025-11-15 10:38 (200 d 18:27 ago) @ Shuanghe Posting: # 24499 Views: 4,211 |
|
|
Hi Shuanghe, ❝ I still cannot believe that I had the false memory for so many years, and I still think I must've have read it somewhere else about the step-wise regression approach You are not alone. Perhaps in this post? An indirect a quote of WinNonlin (1.1 of 1996 ‼): Linear regressions are repeated using the last three points, the last four points, the last five points etc. For each regression, an adjusted R² is computed:$$\small{Adjusted\,R^2=1-\frac{\left(1-R^2\right)\cdot(n-1)}{n-2}}$$where n is the number of data points in the regression and R² is the square of the correlation coefficient. The regression with the largest adjusted R² is selected to estimate the terminal half-life, with one caveat: if the adjusted R² does not improve, but is within .0001 of the largest value, the regression with the larger number of points is used. Yet another approach. b One problem is to find an algorithm that identifies an appropriate range over which the linear regression should be done. One such algorithm, which has long served this author well, but always needs to be supplemented by a sanity check, goes as follows:
This is not a fool-proof method but it usually represents a good starting point. However, sometimes one needs to use only the last two points in the estimate of the terminal slope, which this method does not allow for (no R2 can be computed in that cases). Data must therefore always be inspected in order to allow for manual modification of the time interval over which the regression should be made.
— Dif-tor heh smusma 🖖🏼 Довге життя Україна! ![]() Helmut Schütz ![]() The quality of responses received is directly proportional to the quality of the question asked. 🚮 Science Quotes |
|
billdenney ☆ USA, 2026-02-27 15:20 (96 d 13:45 ago) @ Shuanghe Posting: # 24581 Views: 1,948 |
|
|
❝ Thanks. Yes, PKNCA's vignette is clear. I still cannot believe that I had the false memory for so many years, and I still think I must've have read it somewhere else about the step-wise regression approach ❝ ❝ I guess I probably should also thank myself for giving my Phoenix license to my colleague recently and was forced to use R instead of Phoenix for the first time to double check the CROs' results, otherwise I wouldn't have noticed it. I just saw this post. For disclosure, I'm the primary author of PKNCA. The only way that I know PKNCA's automation for lambda z estimation is different than WinNonlin is one very particular case. Both programs calculate all possible half-life estimates from third to last to the next point after Tmax. PKNCA next selects the best line by adjusted r-squared; WinNonlin next filters for negative slopes (non-increasing half-lives) then for best adjusted r-squared. The difference is that when the best adjusted r-squared line is increasing, PKNCA will not report an automated half-life estimate. WinNonlin will report a half-life is there is any adjusted r-squared line that is decreasing. Usually, the estimated half-life would not be high-quality (the adjusted r-squared would be low, the span ratio would be low, and the percent extrapolated would be high), so as long as appropriate filtering for good values is in place, these estimates wouldn't make it to a final summary. |
|
Helmut ★★★ ![]() Vienna, Austria, 2026-02-27 16:29 (96 d 12:36 ago) @ billdenney Posting: # 24582 Views: 1,973 |
|
|
Hi Bill, nice to see you here and THX for the clarification! — Dif-tor heh smusma 🖖🏼 Довге життя Україна! ![]() Helmut Schütz ![]() The quality of responses received is directly proportional to the quality of the question asked. 🚮 Science Quotes |
|
Helmut ★★★ ![]() Vienna, Austria, 2025-11-12 11:30 (203 d 17:35 ago) @ SDavis Posting: # 24491 Views: 4,361 |
|
|
Hi Simon, ❝ I think the issue maybe the text is slightly ambiguous and people read into it, "and then you stop", however it always went all the way back […] before selecting the value with the largest Adj-R-Sq. I think "If the adjusted R2 does not improve, but is within 0.0001 of the largest adjusted R2 value, the regression with the larger number of points is used." infers that but I've asked that we make it clearer in future iterations of the help that all points are assessed. — Dif-tor heh smusma 🖖🏼 Довге життя Україна! ![]() Helmut Schütz ![]() The quality of responses received is directly proportional to the quality of the question asked. 🚮 Science Quotes |
|
jag009 ★★★ NJ, 2026-01-29 05:20 (125 d 23:44 ago) @ Helmut Posting: # 24559 Views: 2,720 |
|
|
Hi Helmut and others, Revisiting this thread.... Does Phoenix provide a reason somewhere in the result/output as to why kel cannot be estimated for a subject? I know the Use guide lists the reasons but I am looking for something in the result output relevant to the subject's profile. I use the best fit method for slope calculation. The semi-log plot just showed the statement "cannot be determined" or something, the "warning and error" output showed "No parameters could be extrapolated to infinity". I didnt see anything in the core output. thx J |
|
Helmut ★★★ ![]() Vienna, Austria, 2026-01-29 12:04 (125 d 17:00 ago) @ jag009 Posting: # 24560 Views: 2,716 |
|
|
Hi John, ❝ … why kel cannot be estimated … \(\begin{array}{lcl} ❝ … the Use guide lists the reasons [as to why kel cannot be estimated for a subject] but I am looking for something in the result output relevant to the subject's profile. ❝ I use the best fit method for slope calculation. The semi-log plot just showed the statement "cannot be determined" or something, the "warning and error" output showed "No parameters could be extrapolated to infinity". I didnt see anything in the core output. Most common cases for ‘failures’:
— Dif-tor heh smusma 🖖🏼 Довге життя Україна! ![]() Helmut Schütz ![]() The quality of responses received is directly proportional to the quality of the question asked. 🚮 Science Quotes |


![[image]](img/uploaded/image920.png)
![[image]](https://static.bebac.at/pics/Blue_and_yellow_ribbon_UA.png)
![[image]](https://static.bebac.at/img/CC by.png)
![[image]](img/uploaded/image267.jpg)
![[image]](img/uploaded/image269.jpg)
![[image]](img/uploaded/image270.jpg)
![[image]](img/uploaded/image921.png)
![[image]](img/uploaded/image924.png)
![[image]](img/uploaded/image923.png)
![[image]](img/uploaded/image922.png)
