Confidence intervals of PsN bootstrap output

19 messages 9 people Latest: Jul 12, 2011

Confidence intervals of PsN bootstrap output

From: Norman Z Date: July 05, 2011 technical
Hello everyone, I am using PsN to do some bootstrap and have some questions regarding the PsN output. 1. There are two confidence interval (CI) reported in the output file "bootstrap_results.csv": standard.error.confidence.intervals percentile.confidence.intervals I wonder which one should be used in the publication or report, and what is the difference between them. 2. When I use excel function "=PERCENTILE(T5:T505,5%)" and "=PERCENTILE(T5:T505,95%)" to calculate the 5% and 95% percentile of a parameter from the data "raw_results1.csv" the result is different from both "standard.error.confidence.intervals" and " percentile.confidence.intervals". The same happens to the excel function "=MEDIAN(T5:T505)" result and the"medians" in the "bootstrap_results.csv". Does anyone know why it is the case, and which value I should use? bootstrap_results.csv medians 423.5635 standard.error.confidence.intervals 5% 419.73239 95% 428.26761 percentile.confidence.intervals 5% 419.56165 95% 427.9239 Excel calculation from raw_results1.csv Median 423.578 5% percentile 419.593 95% percentile 427.922 Thanks, Norman
Hi Norman, I would suggest you rely on you own calculation, rather than the output from the R script that is used by PsN (but only trust Excel as far as the back-of-an Envelop). I would do just like you and include all bs samples in calculating percentiles. Others prefer only to use a subset, based on termination status. PsN has it's own mailing list (sourceforge) where you can find out more about bugs and features of PsN programs. Best Jakob Sent from my iPhone
Quoted reply history
On 5 jul 2011, at 22:16, "Norman Z" <[email protected]> wrote: > Hello everyone, > > I am using PsN to do some bootstrap and have some questions regarding the PsN > output. > > 1. There are two confidence interval (CI) reported in the output file > "bootstrap_results.csv": > standard.error.confidence.intervals > percentile.confidence.intervals > I wonder which one should be used in the publication or report, and what is > the difference between them. > > 2. When I use excel function > "=PERCENTILE(T5:T505,5%)" and "=PERCENTILE(T5:T505,95%)" to calculate the 5% > and 95% percentile of a parameter from the data "raw_results1.csv" the > result is different from both "standard.error.confidence.intervals" and > "percentile.confidence.intervals". > The same happens to the excel function "=MEDIAN(T5:T505)" result and the > "medians" in the "bootstrap_results.csv". > Does anyone know why it is the case, and which value I should use? > > bootstrap_results.csv > medians > 423.5635 > standard.error.confidence.intervals > 5% 419.73239 > 95% 428.26761 > percentile.confidence.intervals > 5% 419.56165 > 95% 427.9239 > > Excel calculation from raw_results1.csv > Median 423.578 > 5% percentile 419.593 > 95% percentile 427.922 > > Thanks, > > Norman >

Re: Confidence intervals of PsN bootstrap output

From: Norman Z Date: July 06, 2011 technical
Hi Martin, Thanks for pointing out that the first row is the original estimation. By exclude this row, I recalculated the value, and the excel calculation is a lot closer to the PsN output. For most parameters, the difference between these two calculations could be due to rounding error, yet major difference can still be found for a few parameters. The wiki page suggested by Douglas is also very helpful, there we can see that the underlining mathematics could be different for different software. Can anyone suggest that what is the normal practice when reporting the bootstrap value for publication or regulatory submission? Is the PsN output used directly, or is recalculation by other software a must? Thanks, Norman
Quoted reply history
On Tue, Jul 5, 2011 at 7:20 PM, Martin Johnson <[email protected]> wrote: > Hi Norman, > > The first line (row) in the raw_results1.csv is from the original dataset > (please refer the manual) and as I see from your excel function...there > are 501 bootstrap samples. > My guess would be the median calculated from the excel function includes > the estimates from the original dataset + 500 bootstrap (1+500) which makes > the difference in the medians. > > Additionally, percentile function in excel can give different results than > other statistical softwares, please try excel function percentile.exc > (available in excel 2010/2011), that will give your similar (same) results. > > Hope this helps a bit > > Regards, > Martin Johnson > PhD Student > University of Groningen > The Netherlands > > > On Jul 5, 2011, at 9:48 PM, Norman Z wrote: > > Hello everyone, > > I am using PsN to do some bootstrap and have some questions regarding the > PsN output. > > 1. There are two confidence interval (CI) reported in the output file > "bootstrap_results.csv": > standard.error.confidence.intervals > percentile.confidence.intervals > I wonder which one should be used in the publication or report, and what is > the difference between them. > > 2. When I use excel function > "=PERCENTILE(T5:T505,5%)" and "=PERCENTILE(T5:T505,95%)" to calculate the > 5% and 95% percentile of a parameter from the data "raw_results1.csv" the > result is different from both "standard.error.confidence.intervals" and " > percentile.confidence.intervals". > The same happens to the excel function "=MEDIAN(T5:T505)" result and > the"medians" in the "bootstrap_results.csv". > > Does anyone know why it is the case, and which value I should use? > > bootstrap_results.csv > medians > 423.5635 > standard.error.confidence.intervals > 5% 419.73239 > 95% 428.26761 > percentile.confidence.intervals > 5% 419.56165 > 95% 427.9239 > > Excel calculation from raw_results1.csv > Median 423.578 > 5% percentile 419.593 > 95% percentile 427.922 > > Thanks, > > Norman > > >
Dear Norman, As long as you say which bootstrap runs you used in your calculations, and can motivate why, it's really up to you - there's not a gold standard as such. Personally, as a rule of thumb, I only use bootstrap runs that have minimized successfully in calculating the percentile confidence intervals. One could also choose to exclude runs that fail the covariance step, or have estimates are close to boundaries, or have zero gradients (etc) but it really depends on what you would like to show. For example, the proportion of runs that fail covariance can sometimes be a useful indicator of model stability (although opinions vary on the subject). PsN is configurable in terms of which runs it uses - have a look at the bootstrap documentation (specifically, the various "skip" flags). You could accept its output at face value, provided you know how it was arrived at, or you could choose to do your own calculations from raw_results1.csv. I would also echo the advice of others regarding Excel - it's not really the best tool for the job. You'd be better off with something like R - it's well worth the time spent getting to know it. Best Justin
Quoted reply history
On 7/6/11 4:48 PM, Norman Z wrote: > Hi Martin, > > Thanks for pointing out that the first row is the original estimation. By exclude this row, I recalculated the value, and the excel calculation is a lot closer to the PsN output. For most parameters, the difference between these two calculations could be due to rounding error, yet major difference can still be found for a few parameters. > > The wiki page suggested by Douglas is also very helpful, there we can see that the underlining mathematics could be different for different software. > > Can anyone suggest that what is the normal practice when reporting the bootstrap value for publication or regulatory submission? Is the PsN output used directly, or is recalculation by other software a must? > > Thanks, > > Norman > > On Tue, Jul 5, 2011 at 7:20 PM, Martin Johnson < [email protected] < mailto: [email protected] >> wrote: > > Hi Norman, > > The first line (row) in the raw_results1.csv is from the original > dataset (please refer the manual) and as I see from your excel > function...there are 501 bootstrap samples. > My guess would be the median calculated from the excel function > includes the estimates from the original dataset + 500 bootstrap > (1+500) which makes the difference in the medians. > > Additionally, percentile function in excel can give different > results than other statistical softwares, please try excel > function percentile.exc (available in excel 2010/2011), that will > give your similar (same) results. > > Hope this helps a bit > > Regards, > Martin Johnson > PhD Student > University of Groningen > The Netherlands > > On Jul 5, 2011, at 9:48 PM, Norman Z wrote: > > > Hello everyone, > > > > I am using PsN to do some bootstrap and have some questions > > regarding the PsN output. > > > > 1. There are two confidence interval (CI) reported in the output > > file "bootstrap_results.csv": > > standard.error.confidence.intervals > > percentile.confidence.intervals > > I wonder which one should be used in the publication or report, > > and what is the difference between them. > > > > 2.When I use excel function > > "=PERCENTILE(T5:T505,5%)" and "=PERCENTILE(T5:T505,95%)" to > > > > calculate the 5% and 95% percentile of a parameterfrom the data "raw_results1.csv" the result is different from both > > > > "standard.error.confidence.intervals" and > > "percentile.confidence.intervals". > > The same happens to the excel function "=MEDIAN(T5:T505)" result > > and the"medians" in the "bootstrap_results.csv". > > Does anyone know why it is the case, and which value I should use? > > > > bootstrap_results.csv > > medians > > 423.5635 > > standard.error.confidence.intervals > > 5% 419.73239 > > 95% 428.26761 > > percentile.confidence.intervals > > 5% 419.56165 > > 95% 427.9239 > > > > Excel calculation from raw_results1.csv > > Median 423.578 > > 5% percentile 419.593 > > 95% percentile 427.922 > > > > Thanks, > > > > Norman -- Justin Wilkins -------------------- Räfiser Feld 10 CH-9470 Buchs Switzerland -------------------- [email protected]
It seems my previous attempt to post this was unsuccessful (either because of the graphs included or because 70 kb was too much?) I am resending without graphs and apologize in case of any duplicate postings!
Quoted reply history
________________________________ From: Ribbing, Jakob Sent: 08 July 2011 16:31 To: [email protected] Cc: 'Justin Wilkins'; Norman Z; Ribbing, Jakob Subject: RE: [NMusers] Confidence intervals of PsN bootstrap output Dear all, I would generally agree with Justin's comment that one can take any PsN output as is, for internal or external reports. However, specifically for the R script used in the PsN bootstrap you can not rely on this, as is. There are several issues with this code, of which some are described in the e-mail thread below, from PsN users list. You would either have to correct the PsN R-code or else write your own script to get the output that you need for regulatory interaction. Regarding what subset of bootstrap sample to use, I do NOT want to open up for a discussion regarding whether there are any differences between bootstrap samples that terminate successfully without or without cov step, and those that terminate with rounding error. This has been discussed previously on nmusers; several times and at length. (There is still a difference in opinion, and as Justin said anyone is free to follow their own preference) However, regarding excluding bootstrap samples with terminations at boundary I would strongly discourage doing this by default and without any thought. Just as an example, if a portion of your bootstrap samples for an omega element end up at a boundary this is what you would miss out on: * If it is a diagonal omega with some frequency of termination at lower boundary, excluding these would provide a confidence interval well above zero. By excluding the bootstrap samples that do not fit with the statistical model that you have selected, you automatically confirm your selection (i.e. that data supports the estimation of this IIV or IOV, or whatever the eta represents), but in my mind the CI based on this subset is misleading. * If it is an off-diagonal omega element (representing covariance between two etas, i.e. on the individual level) with frequent termination at the upper boundary (correlation of 1) excluding these bootstrap samples would provide a confidence interval of the eta correlation that does not include 1. (Correlation is a secondary parameter calculated based on covariance and IIV (variance) for the two etas). Again, I would think the CI based on this subset is misleading, as one automatically confirms the selection of a BLOCK(3) omega structure, without taking into consideration a reduction to two parameters that was preferred by a portion of bootstrap samples. I have included an illustration of this case in the figure below (I do not know if postings to nmusers allow including figures, but thought it was worth a try). Obviously, if only using the subset with successful covariance step the exclusion includes bootstrap samples with termination at boundary (if there are any). I hope this discussion does not discourage any new users from trying the (non-parameteric) bootstrap. In my opinion this is a very powerful method that can provide a huge amount of useful information, beyond the nonmem covariance matrix. Next time around the nmusers discussion may be regarding whether the nonmem covariance matrix can be trusted and when a summary of this form is useful, or whether to use the Sandwich or R-matrix; there are many areas where there is no safe ground to tread and no full consensus among users, just as it is sometimes difficult to come up with general advice on what is the most appropriate procedure. Best regards Jakob An illustration of the uncertainty distribution for the correlation between two etas (Notice that full correlation is only available in the subset with boundary problems, as a correlation of one is an implicit boundary condition. Full correlation is also the only reason to the boundary problem among these bootstrap samples): [Jakob] Removed The original parameterisation is based on covariance between the two etas, rather than correlation, and here the reason to the boundary issue is not at all obvious: [Jakob] Removed To subscribe to the PsN mailing list: http://psn.sourceforge.net/list.php Preferably keep any discussion around the specific implementation in PsN to the PsN mailing list, as of little interest to nmusers that are not using PsN. The previous discussion on the PsN list, regarding the R-script used in the PsN bootstrap is found below: -----Original Message----- From: fengdubianbian [mailto:[email protected]] Sent: 15 June 2011 08:30 To: [email protected] Subject: [Psn-general] bootstrap problem hey all, There is .r file auto generated by psn 3.2.4 during bootstraping. Some vertical lines will be plot on the distribution of parameters. Actually the Median is Mean, the mean is median. the R code is: if (showmean) { legend=paste(legend, "; Mean = ", sp[3], sep="") } if (showmedian) { legend=paste(legend, "; Median = ", sp[4], sep="") } >sp Min. 1st Qu. Median Mean 3rd Qu. Max. 0.0001998 0.0002994 0.0002994 0.0002967 0.0002994 0.0004768 Kun Wang Ph.D -----Original Message----- From: Kajsa Harling [mailto:[email protected]] Sent: 23 June 2011 11:52 To: General Discussion about PsN. Subject: Re: [Psn-general] bootstrap problem Thank you for the error report. This will be fixed in the next release. Best regards, Kajsa -----Original Message----- From: Ribbing, Jakob Sent: 24 June 2011 09:25 To: General Discussion about PsN. Cc: '[email protected]' Subject: RE: [Psn-general] bootstrap problem Kajsa, While you are looking at that R script in PsN; As I recall there are additional bugs. For example, what bootstrap samples to use is hard coded on the script, so no matter what you set in psn.conf or on the command line to bootstrap; for histograms the R script will only use the samples with successful terminations. I almost always want to use all bs samples. When you are ready to move bootstrap post-processing into Xpose I can send you an R script that we use at Pfizer for the PsN bootstrap. This provides a full summary of what you may get out of a bootstrap, with nicer graphics, tables summarizing both the nonmem covstep and the non-parametric bootstrap and including optional parameter transformations and bs statistics for secondary parameters. Out script would have to be in Xpose, though, because there are too many options for PsN. And I would have to find time to tweak it a bit; I have written the code only for our ePharm environment in LINUX. Unfortunately I will not find the time to do this in 2011, but it is worth waiting for :>) Happy summer solstice! Jakob ________________________________
Dear all, Below you find the thread from the PsN mailing list that could not be included with the e-mail I sent just before this one. Best Jakob Preferably keep any discussion around the specific implementation in PsN to the PsN mailing list, as of little interest to nmusers that are not using PsN. The previous discussion on the PsN list, regarding the R-script used in the PsN bootstrap is found below:
Quoted reply history
-----Original Message----- From: fengdubianbian [mailto:[email protected]] Sent: 15 June 2011 08:30 To: [email protected] Subject: [Psn-general] bootstrap problem hey all, There is .r file auto generated by psn 3.2.4 during bootstraping. Some vertical lines will be plot on the distribution of parameters. Actually the Median is Mean, the mean is median. the R code is: if (showmean) { legend=paste(legend, "; Mean = ", sp[3], sep="") } if (showmedian) { legend=paste(legend, "; Median = ", sp[4], sep="") } >sp Min. 1st Qu. Median Mean 3rd Qu. Max. 0.0001998 0.0002994 0.0002994 0.0002967 0.0002994 0.0004768 Kun Wang Ph.D -----Original Message----- From: Kajsa Harling [mailto:[email protected]] Sent: 23 June 2011 11:52 To: General Discussion about PsN. Subject: Re: [Psn-general] bootstrap problem Thank you for the error report. This will be fixed in the next release. Best regards, Kajsa -----Original Message----- From: Ribbing, Jakob Sent: 24 June 2011 09:25 To: General Discussion about PsN. Cc: '[email protected]' Subject: RE: [Psn-general] bootstrap problem Kajsa, While you are looking at that R script in PsN; As I recall there are additional bugs. For example, what bootstrap samples to use is hard coded on the script, so no matter what you set in psn.conf or on the command line to bootstrap; for histograms the R script will only use the samples with successful terminations. I almost always want to use all bs samples. When you are ready to move bootstrap post-processing into Xpose I can send you an R script that we use at Pfizer for the PsN bootstrap. This provides a full summary of what you may get out of a bootstrap, with nicer graphics, tables summarizing both the nonmem covstep and the non-parametric bootstrap and including optional parameter transformations and bs statistics for secondary parameters. Out script would have to be in Xpose, though, because there are too many options for PsN. And I would have to find time to tweak it a bit; I have written the code only for our ePharm environment in LINUX. Unfortunately I will not find the time to do this in 2011, but it is worth waiting for :>) Happy summer solstice! Jakob ________________________________
Jakob, Thanks for your helpful comments. I agree with you that any results that are at a boundary should be discarded from the bootstrap distribution. Although you say you do not wish to re-open the discussion, there is evidence that discarding other non-successful runs makes no difference to the parameter distribution (Gastonguay & El-Tahtawy 2005, Holford et al. 2006) and also makes no difference to model selection results when estimating from simulated data (Byon et al 2008, Ahn et al 2008). While these conclusions may be controversial it is a controversy with evidence only on the side of those who say all bootstrap results may be used to describe the distribution versus speculation from those who say they should be discarded. Perhaps there is some new evidence from the speculators that could further enlighten the discussion? Nick Gastonguay G, El-Tahtawy A. Minimization status had minimal impact on the resulting BS [bootstrap] parameter distributions http://metrumrg.com/publications/Gastonguay.BSMin.ASCPT2005.pdf In: ASCPT, 2005. Holford NHG, Kirkpatrick C, Duffull S. NONMEM Termination Status is Not an Important Indicator of the Quality of Bootstrap Parameter Estimates http://www.page-meeting.org/default.asp?abstract=992 . In: PAGE, Bruges, 2006. Byon W, Fletcher CV, Brundage RC. Impact of censoring data below an arbitrary quantification limit on structural model misspecification. J Pharmacokinet Pharmacodyn. 2008;35(1):101-16. Ahn JE, Karlsson MO, Dunne A, Ludden TM. Likelihood based approaches to handling data below the quantification limit using NONMEM VI. J Pharmacokinet Pharmacodyn. 2008;35(4):401-21.
Quoted reply history
On 9/07/2011 12:07 a.m., Ribbing, Jakob wrote: > It seems my previous attempt to post this was unsuccessful (either because of the graphs included or because 70 kb was too much?) > > I am resending without graphs and apologize in case of any duplicate postings! > > ------------------------------------------------------------------------ > > *From:*Ribbing, Jakob > *Sent:* 08 July 2011 16:31 > *To:* [email protected] > *Cc:* 'Justin Wilkins'; Norman Z; Ribbing, Jakob > *Subject:* RE: [NMusers] Confidence intervals of PsN bootstrap output > > Dear all, > > I would generally agree with Justin’s comment that one can take any PsN output as is, for internal or external reports. > > However, specifically for the R script used in the PsN bootstrap you can not rely on this, as is. > > There are several issues with this code, of which some are described in the e-mail thread below, from PsN users list. > > You would either have to correct the PsN R-code or else write your own script to get the output that you need for regulatory interaction. > > Regarding what subset of bootstrap sample to use, I do NOT want to open up for a discussion regarding whether there are any differences between bootstrap samples that terminate successfully without or without cov step, and those that terminate with rounding error. This has been discussed previously on nmusers; several times and at length. (There is still a difference in opinion, and as Justin said anyone is free to follow their own preference) > > However, regarding excluding bootstrap samples with terminations at boundary I would strongly discourage doing this by default and without any thought. > > Just as an example, if a portion of your bootstrap samples for an omega element end up at a boundary this is what you would miss out on: > > * If it is a diagonal omega with some frequency of termination at > lower boundary, excluding these would provide a confidence > interval well above zero. By excluding the bootstrap samples > that do not fit with the statistical model that you have > selected, you automatically confirm your selection (i.e. that > data supports the estimation of this IIV or IOV, or whatever the > eta represents), but in my mind the CI based on this subset is > misleading. > * If it is an off-diagonal omega element (representing covariance > between two etas, i.e. on the individual level) with frequent > termination at the upper boundary (correlation of 1) excluding > these bootstrap samples would provide a confidence interval of > the eta correlation that does not include 1. (Correlation is a > secondary parameter calculated based on covariance and IIV > (variance) for the two etas). Again, I would think the CI based > on this subset is misleading, as one automatically confirms the > selection of a BLOCK(3) omega structure, without taking into > consideration a reduction to two parameters that was preferred > by a portion of bootstrap samples. I have included an > illustration of this case in the figure below (I do not know if > postings to nmusers allow including figures, but thought it was > worth a try). > > Obviously, if only using the subset with successful covariance step the exclusion includes bootstrap samples with termination at boundary (if there are any). > > I hope this discussion does not discourage any new users from trying the (non-parameteric) bootstrap. > > In my opinion this is a very powerful method that can provide a huge amount of useful information, beyond the nonmem covariance matrix. > > Next time around the nmusers discussion may be regarding whether the nonmem covariance matrix can be trusted and when a summary of this form is useful, or whether to use the Sandwich or R-matrix; there are many areas where there is no safe ground to tread and no full consensus among users, just as it is sometimes difficult to come up with general advice on what is the most appropriate procedure. > > Best regards > > Jakob > > An illustration of the uncertainty distribution for the correlation between two etas (Notice that full correlation is only available in the subset with boundary problems, as a correlation of one is an implicit boundary condition. Full correlation is also the only reason to the boundary problem among these bootstrap samples): > > */[Jakob] /*Removed > > The original parameterisation is based on covariance between the two etas, rather than correlation, and here the reason to the boundary issue is not at all obvious: > > */[Jakob] /*Removed > > To subscribe to the PsN mailing list: > > http://psn.sourceforge.net/list.php > > Preferably keep any discussion around the specific implementation in PsN to the PsN mailing list, as of little interest to nmusers that are not using PsN. > > The previous discussion on the PsN list, regarding the R-script used in the PsN bootstrap is found below: > > -----Original Message----- > From: fengdubianbian [mailto:[email protected]] > Sent: 15 June 2011 08:30 > To: [email protected] > Subject: [Psn-general] bootstrap problem > > hey all, > > There is .r file auto generated by psn 3.2.4 during bootstraping. > > Some vertical lines will be plot on the distribution of parameters. > > Actually the Median is Mean, the mean is median. > > the R code is: > > if (showmean) { > > legend=paste(legend, "; Mean = ", sp[3], sep="") > > } > > if (showmedian) { > > legend=paste(legend, "; Median = ", sp[4], sep="") > > } > > >sp > > Min. 1st Qu. Median Mean 3rd Qu. Max. > > 0.0001998 0.0002994 0.0002994 0.0002967 0.0002994 0.0004768 > > Kun Wang Ph.D > > -----Original Message----- > From: Kajsa Harling [mailto:[email protected]] > Sent: 23 June 2011 11:52 > To: General Discussion about PsN. > Subject: Re: [Psn-general] bootstrap problem > > Thank you for the error report. This will be fixed in the next release. > > Best regards, > > Kajsa > > -----Original Message----- > From: Ribbing, Jakob > Sent: 24 June 2011 09:25 > To: General Discussion about PsN. > Cc: '[email protected]' > Subject: RE: [Psn-general] bootstrap problem > > Kajsa, > > While you are looking at that R script in PsN; As I recall there are additional bugs. For example, what bootstrap samples to use is hard coded on the script, so no matter what you set in psn.conf or on the command line to bootstrap; for histograms the R script will only use the samples with successful terminations. I almost always want to use all bs samples. > > When you are ready to move bootstrap post-processing into Xpose I can send you an R script that we use at Pfizer for the PsN bootstrap. This provides a full summary of what you may get out of a bootstrap, with nicer graphics, tables summarizing both the nonmem covstep and the non-parametric bootstrap and including optional parameter transformations and bs statistics for secondary parameters. Out script would have to be in Xpose, though, because there are too many options for PsN. > > And I would have to find time to tweak it a bit; I have written the code only for our ePharm environment in LINUX. Unfortunately I will not find the time to do this in 2011, but it is worth waiting for :>) > > Happy summer solstice! > > Jakob > > ------------------------------------------------------------------------ -- Nick Holford, Professor Clinical Pharmacology Dept Pharmacology& Clinical Pharmacology University of Auckland,85 Park Rd,Private Bag 92019,Auckland,New Zealand tel:+64(9)923-6730 fax:+64(9)373-7090 mobile:+64(21)46 23 53 email: [email protected] http://www.fmhs.auckland.ac.nz/sms/pharmacology/holford
Nick, Jakob, nmusers: At the risk of re-opening an old discussion, I'd like to expand on Nick's important point. From our experience the experience of others, including parameters from all bootstrap runs that report parameter estimates, regardless of minimization of $COV status, is a reasonable thing to do; provided that the modeler conducts a careful and thoughtful evaluation of the model and bootstrap results. One goal should be to understand why minimization, $COV, or boundary problems occur. For example, it is useful to create histograms and a scatterplot matrix of the resulting bootstrap parameter distributions, flagging those runs with minimization problems. Most of the time, these problematic runs represent the tails of the distribution for a less precisely defined parameter. Sometimes the boundary message is just a reflection of the tail of a bootstrap parameter distribution approaching the null value for that parameter. All of these runs are informative about the estimation precision and should be included. This is not always the case, however. In fact, even successful minimization and $COV do not guarantee that the resulting parameter estimates should be included in bootstrap confidence intervals. For example, bootstrapping is often a useful way to identify models with more than 1 unique solution (e.g. flip-flop in PK rate constants). In addition, some runs may represent a local minimum. Another problem can arise if the bootstrap resampling is not stratified on the major covariate(s) or design features of the original data set (e.g. pooled analyses of adult studies and pediatric studies, or pooled analyses of sparsely sampled and extensively sampled studies). In all of these cases, the histograms and scatterplot matrices may reveal a multimodal "posterior" bootstrap distribution for some of the parameters, which should be addressed before using bootstrap results for inferential or simulation purposes. Obviously, it's important for the modeler to think about the problem and to understand what the results mean. Blindly accepting or rejecting runs based on a software warning message, or on another scientist's R script, is not advisable. Best regards, Marc Marc R. Gastonguay, Ph.D. ([email protected]) President & CEO, Metrum Research Group LLC (metrumrg.com) Scientific Director, Metrum Institute (metruminstitute.org)
Quoted reply history
On Saturday, July 9, 2011 at 9:14 AM, Nick Holford wrote: > Jakob, > > Thanks for your helpful comments. I agree with you that any results that > are at a boundary should be discarded from the bootstrap distribution. > > Although you say you do not wish to re-open the discussion, there is > evidence that discarding other non-successful runs makes no difference > to the parameter distribution (Gastonguay & El-Tahtawy 2005, Holford et > al. 2006) and also makes no difference to model selection results when > estimating from simulated data (Byon et al 2008, Ahn et al 2008). While > these conclusions may be controversial it is a controversy with evidence > only on the side of those who say all bootstrap results may be used to > describe the distribution versus speculation from those who say they > should be discarded. Perhaps there is some new evidence from the > speculators that could further enlighten the discussion? > > Nick > > > Gastonguay G, El-Tahtawy A. Minimization status had minimal impact on > the resulting BS [bootstrap] parameter distributions > http://metrumrg.com/publications/Gastonguay.BSMin.ASCPT2005.pdf In: > ASCPT, 2005. > Holford NHG, Kirkpatrick C, Duffull S. NONMEM Termination Status is Not > an Important Indicator of the Quality of Bootstrap Parameter Estimates > http://www.page-meeting.org/default.asp?abstract=992. In: PAGE, Bruges, > 2006. > Byon W, Fletcher CV, Brundage RC. Impact of censoring data below an > arbitrary quantification limit on structural model misspecification. J > Pharmacokinet Pharmacodyn. 2008;35(1):101-16. > Ahn JE, Karlsson MO, Dunne A, Ludden TM. Likelihood based approaches to > handling data below the quantification limit using NONMEM VI. J > Pharmacokinet Pharmacodyn. 2008;35(4):401-21. >
Nick, Jakob, Marc et al > Thanks for your helpful comments. I agree with you that any results that > are at a boundary should be discarded from the bootstrap distribution. On the whole I the sentiments in this thread align with anecdotal findings from my experience. But, I was just wondering how you define your boundaries for variance and covariance parameters (e.g. OMEGA terms)? For variance terms, lower boundaries seems reasonably straightforward (e.g. 1E-5 seems close to zero). Upper boundaries are of course open, for the variance of a log-normal ETA would 1E+5 or 1E+4 be large enough to be considered close to a boundary? At what value would you discard the result? At what correlation value would you discard a result (>0.99, > 0.97...) as being close to 1. Clearly if this was for regulatory work you could define these a priori after having chosen any arbitrary cut-off. But the devil here lies with the non-regulatory work where you may not have defined these boundaries a priori. Steve -- Professor Stephen Duffull Chair of Clinical Pharmacy School of Pharmacy University of Otago PO Box 56 Dunedin New Zealand E: [email protected] P: +64 3 479 5044 F: +64 3 479 7034 W: http://pharmacy.otago.ac.nz/profiles/stephenduffull Design software: www.winpopt.com
I thought that the original post was "results at a boundary should NOT be discarded" and Nick reply was just a typo. If it was not a typo, I would disagree and argue that all results should be included: Each data set is a particular realization. We should be able to use all of them. If some realizations are so special that the model behaves in an unusual way (with any definition of unusual: non-convergence, not convergence of the covariance step, parameter estimates at the boundary, etc.) we either need to accept those as is, or work with each of those special data sets one by one to push to the parameter estimates that we can accept, or change the bootstrap procedure (add stratification by covariates, by dose level, by route of administration, etc.) so that all data sets behave similarly. Leonid -------------------------------------- Leonid Gibiansky, Ph.D. President, QuantPharm LLC web: www.quantpharm.com e-mail: LGibiansky at quantpharm.com tel: (301) 767 5566
Quoted reply history
On 7/10/2011 2:57 PM, Stephen Duffull wrote: > Nick, Jakob, Marc et al > > > Thanks for your helpful comments. I agree with you that any results that > > are at a boundary should be discarded from the bootstrap distribution. > > On the whole I the sentiments in this thread align with anecdotal findings from > my experience. But, I was just wondering how you define your boundaries for > variance and covariance parameters (e.g. OMEGA terms)? > > For variance terms, lower boundaries seems reasonably straightforward (e.g. 1E-5 > seems close to zero). Upper boundaries are of course open, for the variance of a > log-normal ETA would 1E+5 or 1E+4 be large enough to be considered close to a > boundary? At what value would you discard the result? At what correlation value > would you discard a result (>0.99,> 0.97...) as being close to 1. Clearly if > this was for regulatory work you could define these a priori after having chosen any > arbitrary cut-off. But the devil here lies with the non-regulatory work where you > may not have defined these boundaries a priori. > > Steve > -- > Professor Stephen Duffull > Chair of Clinical Pharmacy > School of Pharmacy > University of Otago > PO Box 56 Dunedin > New Zealand > E: [email protected] > P: +64 3 479 5044 > F: +64 3 479 7034 > W: http://pharmacy.otago.ac.nz/profiles/stephenduffull > > Design software: www.winpopt.com
Leonid, With regard to discarding runs at the boundary what I had in mind was runs which had reached the maximum number of iterations but I realized later that Jacob was referring to NONMEM's often irritating messages that usually just mean the initial estimate changed a lot or variance was getting close to zero. There are of course some cases where the estimate is truly at a user defined constraint. Assuming that the user has thought carefully about these constraints then I would interpret a run that finished at this constraint boundary as showing NONMEM was stuck in a local minimum (probably because of the constraint boundary) and if the constraint was relaxed then perhaps a more useful estimate would be obtained. In those cases then I think one can make an argument for discarding runs with parameters that are at this kind of boundary as well as those which reached an iteration limit. In general I agree with your remarks (echoing those from Marc Gastonguay) that one needs to think about the way each bootstrap run behaved. But some things like non-convergence and failed covariance are ignorable because they don't influence the bootstrap distribution. There is also the need to recognize that bootstraps can be seriously time consuming and the effort required to understand all the ways that runs might finish is usually not worth it given the purposes of doing a bootstrap. The most important reason for doing a bootstrap is to get more robust estimates of the parameters. This was the main reason why these re-sampling procedures were initially developed. The bootstrap estimate of the parameters will usually be pretty insensitive to the margins of the distribution where the questionable run results are typically located. A secondary semi-quantitative reason is to get a confidence interval which may be helpful for model selection. This may be influenced by the questionable runs but that is just part of the uncertainty that the confidence interval is used to define. Nick
Quoted reply history
On 10/07/2011 11:13 p.m., Leonid Gibiansky wrote: > I thought that the original post was "results at a boundary should NOT be discarded" and Nick reply was just a typo. If it was not a typo, I would disagree and argue that all results should be included: Each data set is a particular realization. We should be able to use all of them. If some realizations are so special that the model behaves in an unusual way (with any definition of unusual: non-convergence, not convergence of the covariance step, parameter estimates at the boundary, etc.) we either need to accept those as is, or work with each of those special data sets one by one to push to the parameter estimates that we can accept, or change the bootstrap procedure (add stratification by covariates, by dose level, by route of administration, etc.) so that all data sets behave similarly. > > Leonid > > -------------------------------------- > Leonid Gibiansky, Ph.D. > President, QuantPharm LLC > web: www.quantpharm.com > e-mail: LGibiansky at quantpharm.com > tel: (301) 767 5566 > > On 7/10/2011 2:57 PM, Stephen Duffull wrote: > > > Nick, Jakob, Marc et al > > > > > Thanks for your helpful comments. I agree with you that any results that > > > > > > are at a boundary should be discarded from the bootstrap distribution. > > > > On the whole I the sentiments in this thread align with anecdotal findings from my experience. But, I was just wondering how you define your boundaries for variance and covariance parameters (e.g. OMEGA terms)? > > > > For variance terms, lower boundaries seems reasonably straightforward (e.g. 1E-5 seems close to zero). Upper boundaries are of course open, for the variance of a log-normal ETA would 1E+5 or 1E+4 be large enough to be considered close to a boundary? At what value would you discard the result? At what correlation value would you discard a result (>0.99,> 0.97...) as being close to 1. Clearly if this was for regulatory work you could define these a priori after having chosen any arbitrary cut-off. But the devil here lies with the non-regulatory work where you may not have defined these boundaries a priori. > > > > Steve > > -- > > Professor Stephen Duffull > > Chair of Clinical Pharmacy > > School of Pharmacy > > University of Otago > > PO Box 56 Dunedin > > New Zealand > > E: [email protected] > > P: +64 3 479 5044 > > F: +64 3 479 7034 > > W: http://pharmacy.otago.ac.nz/profiles/stephenduffull > > > > Design software: www.winpopt.com -- Nick Holford, Professor Clinical Pharmacology Dept Pharmacology& Clinical Pharmacology University of Auckland,85 Park Rd,Private Bag 92019,Auckland,New Zealand tel:+64(9)923-6730 fax:+64(9)373-7090 mobile:+64(21)46 23 53 email: [email protected] http://www.fmhs.auckland.ac.nz/sms/pharmacology/holford
Hi all, Given their usefulness, maybe we should be trying to use nonparametric bootstraps more often, at key decision points in model development, especially now that the ready availability of computing power has made this realistic. (I guess many of us already do this, but it's a point worth making all the same.) Although Nick's point about the amount of time required is well taken, on a large computing grid this is somewhat offset, especially in models with short run times, and as previous posters have pointed out, they can deliver very useful information, especially when used in combination with other useful PsN tools like case-deletion diagnostics. Before we get too far away from it, one point needs correction - previous posts have implied that PsN uses an R script to generate its results. This is not strictly true. The bundled bootstrap.R script is not run by default, and does little more than generate some very basic histograms of the parameter distributions, using the raw PsN results as input. As Jakob rightly points out, it contains at least one bug (means and medians are flipped), and has some counter-intuitive default settings with respect to the runs it includes in the plots it creates, as well as having compatibility issues with recent R releases. (The cdd.R and llp.R scripts are similarly simplistic.) There are plans to replace them all with Xpose functions later on down the line, as mentioned elsewhere in this thread. PsN's output table files (bootstrap_results.csv and raw_results1.csv), on the other hand, are created internally and seem reasonably robust. Runs included when generating the bootstrap_results.csv file can (and should) be pre-specified using the "-skip_*" flags passed to the bootstrap command at runtime, or specified in PsN's configuration file, psn.conf (whichever option is chosen, it's important to know - at minimum - what they are and what they imply about the results, linking in with what Marc wrote). Alternatively, the raw bootstrap data in raw_results1.csv can be analyzed by hand if a finer degree of control is called for. Best Justin
Quoted reply history
On 7/11/11 7:37 AM, Nick Holford wrote: > Leonid, > > With regard to discarding runs at the boundary what I had in mind was runs which had reached the maximum number of iterations but I realized later that Jacob was referring to NONMEM's often irritating messages that usually just mean the initial estimate changed a lot or variance was getting close to zero. > > There are of course some cases where the estimate is truly at a user defined constraint. Assuming that the user has thought carefully about these constraints then I would interpret a run that finished at this constraint boundary as showing NONMEM was stuck in a local minimum (probably because of the constraint boundary) and if the constraint was relaxed then perhaps a more useful estimate would be obtained. > > In those cases then I think one can make an argument for discarding runs with parameters that are at this kind of boundary as well as those which reached an iteration limit. > > In general I agree with your remarks (echoing those from Marc Gastonguay) that one needs to think about the way each bootstrap run behaved. But some things like non-convergence and failed covariance are ignorable because they don't influence the bootstrap distribution. > > There is also the need to recognize that bootstraps can be seriously time consuming and the effort required to understand all the ways that runs might finish is usually not worth it given the purposes of doing a bootstrap. > > The most important reason for doing a bootstrap is to get more robust estimates of the parameters. This was the main reason why these re-sampling procedures were initially developed. The bootstrap estimate of the parameters will usually be pretty insensitive to the margins of the distribution where the questionable run results are typically located. > > A secondary semi-quantitative reason is to get a confidence interval which may be helpful for model selection. This may be influenced by the questionable runs but that is just part of the uncertainty that the confidence interval is used to define. > > Nick > > On 10/07/2011 11:13 p.m., Leonid Gibiansky wrote: > > > I thought that the original post was "results at a boundary should NOT be discarded" and Nick reply was just a typo. If it was not a typo, I would disagree and argue that all results should be included: Each data set is a particular realization. We should be able to use all of them. If some realizations are so special that the model behaves in an unusual way (with any definition of unusual: non-convergence, not convergence of the covariance step, parameter estimates at the boundary, etc.) we either need to accept those as is, or work with each of those special data sets one by one to push to the parameter estimates that we can accept, or change the bootstrap procedure (add stratification by covariates, by dose level, by route of administration, etc.) so that all data sets behave similarly. > > > > Leonid > > > > -------------------------------------- > > Leonid Gibiansky, Ph.D. > > President, QuantPharm LLC > > web: www.quantpharm.com > > e-mail: LGibiansky at quantpharm.com > > tel: (301) 767 5566 > > > > On 7/10/2011 2:57 PM, Stephen Duffull wrote: > > > > > Nick, Jakob, Marc et al > > > > > > > Thanks for your helpful comments. I agree with you that any results that > > > > > > > > are at a boundary should be discarded from the bootstrap distribution. > > > > > > On the whole I the sentiments in this thread align with anecdotal findings from my experience. But, I was just wondering how you define your boundaries for variance and covariance parameters (e.g. OMEGA terms)? > > > > > > For variance terms, lower boundaries seems reasonably straightforward (e.g. 1E-5 seems close to zero). Upper boundaries are of course open, for the variance of a log-normal ETA would 1E+5 or 1E+4 be large enough to be considered close to a boundary? At what value would you discard the result? At what correlation value would you discard a result (>0.99,> 0.97...) as being close to 1. Clearly if this was for regulatory work you could define these a priori after having chosen any arbitrary cut-off. But the devil here lies with the non-regulatory work where you may not have defined these boundaries a priori. > > > > > > Steve > > > -- > > > Professor Stephen Duffull > > > Chair of Clinical Pharmacy > > > School of Pharmacy > > > University of Otago > > > PO Box 56 Dunedin > > > New Zealand > > > E: [email protected] > > > P: +64 3 479 5044 > > > F: +64 3 479 7034 > > > W: http://pharmacy.otago.ac.nz/profiles/stephenduffull > > > > > > Design software: www.winpopt.com -- Justin Wilkins, PhD Exprimo NV Tel: +41 (0) 81 599 23 82 Mobile: +41 (0) 76 561 09 49 E-mail: [email protected] Web: www.exprimo.com This e-mail is confidential. It is also privileged or otherwise protected by work product immunity or other legal rules. The information is intended to be for use of the individual or entity named above. If you are not the intended recipient, please be aware that any disclosure, copying, distribution or use of the contents of this information is prohibited. You should therefore delete this message from your computer system. If you have received the message in error, please notify us by reply e-mail. The integrity and security of this message cannot be guaranteed on the Internet. Thank you for your co-operation.
Nick, " In those cases then I think one can make an argument for discarding runs with parameters that are at this kind of boundary " A typical user-defined upper boundary is 1 for fractions (bioavailability, fraction unbound, etc). In a bootstrap some estimates may well reach this upper boundary. If, as you say, the analyst has carefully thought through the boundaries, an estimate at the boundary should represent the global minimum within the reasonable parameter range. I think one can make a strong argument for not discarding such runs. Best regards, Mats Mats Karlsson, PhD Professor of Pharmacometrics Dept of Pharmaceutical Biosciences Uppsala University Sweden Postal address: Box 591, 751 24 Uppsala, Sweden Phone +46 18 4714105 Fax + 46 18 4714003
Quoted reply history
-----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Nick Holford Sent: Monday, July 11, 2011 7:37 AM To: nmusers Subject: Re: [NMusers] Confidence intervals of PsN bootstrap output Leonid, With regard to discarding runs at the boundary what I had in mind was runs which had reached the maximum number of iterations but I realized later that Jacob was referring to NONMEM's often irritating messages that usually just mean the initial estimate changed a lot or variance was getting close to zero. There are of course some cases where the estimate is truly at a user defined constraint. Assuming that the user has thought carefully about these constraints then I would interpret a run that finished at this constraint boundary as showing NONMEM was stuck in a local minimum (probably because of the constraint boundary) and if the constraint was relaxed then perhaps a more useful estimate would be obtained. In those cases then I think one can make an argument for discarding runs with parameters that are at this kind of boundary as well as those which reached an iteration limit. In general I agree with your remarks (echoing those from Marc Gastonguay) that one needs to think about the way each bootstrap run behaved. But some things like non-convergence and failed covariance are ignorable because they don't influence the bootstrap distribution. There is also the need to recognize that bootstraps can be seriously time consuming and the effort required to understand all the ways that runs might finish is usually not worth it given the purposes of doing a bootstrap. The most important reason for doing a bootstrap is to get more robust estimates of the parameters. This was the main reason why these re-sampling procedures were initially developed. The bootstrap estimate of the parameters will usually be pretty insensitive to the margins of the distribution where the questionable run results are typically located. A secondary semi-quantitative reason is to get a confidence interval which may be helpful for model selection. This may be influenced by the questionable runs but that is just part of the uncertainty that the confidence interval is used to define. Nick On 10/07/2011 11:13 p.m., Leonid Gibiansky wrote: > I thought that the original post was "results at a boundary should NOT > be discarded" and Nick reply was just a typo. If it was not a typo, I > would disagree and argue that all results should be included: > Each data set is a particular realization. We should be able to use > all of them. If some realizations are so special that the model > behaves in an unusual way (with any definition of unusual: > non-convergence, not convergence of the covariance step, parameter > estimates at the boundary, etc.) we either need to accept those as is, > or work with each of those special data sets one by one to push to the > parameter estimates that we can accept, or change the bootstrap > procedure (add stratification by covariates, by dose level, by route > of administration, etc.) so that all data sets behave similarly. > Leonid > > -------------------------------------- > Leonid Gibiansky, Ph.D. > President, QuantPharm LLC > web: www.quantpharm.com > e-mail: LGibiansky at quantpharm.com > tel: (301) 767 5566 > > > > On 7/10/2011 2:57 PM, Stephen Duffull wrote: >> Nick, Jakob, Marc et al >> >>> Thanks for your helpful comments. I agree with you that any results >>> that >>> are at a boundary should be discarded from the bootstrap distribution. >> >> On the whole I the sentiments in this thread align with anecdotal >> findings from my experience. But, I was just wondering how you >> define your boundaries for variance and covariance parameters (e.g. >> OMEGA terms)? >> >> For variance terms, lower boundaries seems reasonably straightforward >> (e.g. 1E-5 seems close to zero). Upper boundaries are of course >> open, for the variance of a log-normal ETA would 1E+5 or 1E+4 be >> large enough to be considered close to a boundary? At what value >> would you discard the result? At what correlation value would you >> discard a result (>0.99,> 0.97...) as being close to 1. Clearly if >> this was for regulatory work you could define these a priori after >> having chosen any arbitrary cut-off. But the devil here lies with >> the non-regulatory work where you may not have defined these >> boundaries a priori. >> >> Steve >> -- >> Professor Stephen Duffull >> Chair of Clinical Pharmacy >> School of Pharmacy >> University of Otago >> PO Box 56 Dunedin >> New Zealand >> E: [email protected] >> P: +64 3 479 5044 >> F: +64 3 479 7034 >> W: http://pharmacy.otago.ac.nz/profiles/stephenduffull >> >> Design software: www.winpopt.com >> >> -- Nick Holford, Professor Clinical Pharmacology Dept Pharmacology& Clinical Pharmacology University of Auckland,85 Park Rd,Private Bag 92019,Auckland,New Zealand tel:+64(9)923-6730 fax:+64(9)373-7090 mobile:+64(21)46 23 53 email: [email protected] http://www.fmhs.auckland.ac.nz/sms/pharmacology/holford
All, This first part is more to clarify and I do not believe this is in disagreement with what has been said before. The last paragraph is a question. The two examples I mentioned regarding boundary conditions are regarding variance parameters. The second of these, however, is with regards to a boundary at eta-correlation of one, which is a must rather than just an irritating NONMEM feature. I used these examples because they were less controversial and it is difficult to come up with general statements that apply to all cases. However, as a third example for a fixed-effects parameter: Imagine a covariate acting in a linear fashion on a structural parameter that is bound to be non-negative (e.g. a rate constant, volume, clearance, ED50, etc). Imagine boundaries on the covariate parameter have been set to avoid negative values for the structural-model parameter (on the individual level). For this scenario if a substantial fraction of the bootstrapped covariate-parameter values end up at one of the boundaries, one may have to consider two options: a) Decide that a linear covariate model is inappropriate (at least for the goal of extrapolating to the whole population with more extreme covariate values) and change the model into using a different functional form b) Dismiss this as random chance, due to small sample/limited information and a (covariate) slope which "truly" is not far from one of the boundaries. If this is the case, deleting the bootstrap estimates at boundary would bias the distribution in an undesirable manner. For that case the boundary condition is not due to local minimum and we would not want to discard bootstrap samples at boundary). (Nick's example is of a different kind, where it is either a local minimum or else not reaching a minimum at all) A related question - I am thinking more in terms of simulations with parameter uncertainty; not just obtaining CI, which was originally what this thread was about: There are sometimes situations where a limited set of (clinical-) trial data gives reasonable point estimates but with huge parameter uncertainty (regardless nonmem covmaxtrix or bootstrap with appropriate stratification). The distribution and CI on these parameters may include unreasonable values, even though there is no obvious physiological boundary (unreasonable based on prior knowledge that has not been incorporated into the analysis, e.g. for a certain mechanism and patient population Typical-Emax beyond 400% or 10 units - depending on if Emax is parameterised as relative or absolute change). In these situations, a simplistic option could be to trim one or both ends with regards to the Emax distribution and discard these bootstrap samples, especially if only a few values are unreasonable. Alternatively, before running the bootstrap, one may set the boundary in the control stream (a boundary that everyone can agree is unreasonable). One would then keep bootstrap samples that ends up at this boundary for bootstrap distribution, which is in a way truncated, but so that bootstrap samples indicating linear concentration/dose-response maintains almost reasonable Emax and ED50/EC50 values (but as a spike in the distribution at upper Emax). Notice that re-parameterising the Emax model would not solve the underlying issue with unreasonable estimates and reducing to a linear model may be unsuitable, both based on the original dataset and also for mechanistic reasons). Could you suggest alternative ways of dealing with this, for these rather general examples (other than the obvious of applying an informative prior on Emax)? I would be interested in your solutions both in terms of the non-parametric bootstrap as well as the parametric bootstrap (based on the nonmem covmatrix). Much appreciated Jakob
Quoted reply history
-----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Nick Holford Sent: 11 July 2011 06:37 To: nmusers Subject: Re: [NMusers] Confidence intervals of PsN bootstrap output Leonid, With regard to discarding runs at the boundary what I had in mind was runs which had reached the maximum number of iterations but I realized later that Jacob was referring to NONMEM's often irritating messages that usually just mean the initial estimate changed a lot or variance was getting close to zero. There are of course some cases where the estimate is truly at a user defined constraint. Assuming that the user has thought carefully about these constraints then I would interpret a run that finished at this constraint boundary as showing NONMEM was stuck in a local minimum (probably because of the constraint boundary) and if the constraint was relaxed then perhaps a more useful estimate would be obtained. In those cases then I think one can make an argument for discarding runs with parameters that are at this kind of boundary as well as those which reached an iteration limit. In general I agree with your remarks (echoing those from Marc Gastonguay) that one needs to think about the way each bootstrap run behaved. But some things like non-convergence and failed covariance are ignorable because they don't influence the bootstrap distribution. There is also the need to recognize that bootstraps can be seriously time consuming and the effort required to understand all the ways that runs might finish is usually not worth it given the purposes of doing a bootstrap. The most important reason for doing a bootstrap is to get more robust estimates of the parameters. This was the main reason why these re-sampling procedures were initially developed. The bootstrap estimate of the parameters will usually be pretty insensitive to the margins of the distribution where the questionable run results are typically located. A secondary semi-quantitative reason is to get a confidence interval which may be helpful for model selection. This may be influenced by the questionable runs but that is just part of the uncertainty that the confidence interval is used to define. Nick On 10/07/2011 11:13 p.m., Leonid Gibiansky wrote: > I thought that the original post was "results at a boundary should NOT > be discarded" and Nick reply was just a typo. If it was not a typo, I > would disagree and argue that all results should be included: > Each data set is a particular realization. We should be able to use > all of them. If some realizations are so special that the model > behaves in an unusual way (with any definition of unusual: > non-convergence, not convergence of the covariance step, parameter > estimates at the boundary, etc.) we either need to accept those as is, > or work with each of those special data sets one by one to push to the > parameter estimates that we can accept, or change the bootstrap > procedure (add stratification by covariates, by dose level, by route > of administration, etc.) so that all data sets behave similarly. > Leonid > > -------------------------------------- > Leonid Gibiansky, Ph.D. > President, QuantPharm LLC > web: www.quantpharm.com > e-mail: LGibiansky at quantpharm.com > tel: (301) 767 5566 > > > > On 7/10/2011 2:57 PM, Stephen Duffull wrote: >> Nick, Jakob, Marc et al >> >>> Thanks for your helpful comments. I agree with you that any results >>> that >>> are at a boundary should be discarded from the bootstrap distribution. >> >> On the whole I the sentiments in this thread align with anecdotal >> findings from my experience. But, I was just wondering how you >> define your boundaries for variance and covariance parameters (e.g. >> OMEGA terms)? >> >> For variance terms, lower boundaries seems reasonably straightforward >> (e.g. 1E-5 seems close to zero). Upper boundaries are of course >> open, for the variance of a log-normal ETA would 1E+5 or 1E+4 be >> large enough to be considered close to a boundary? At what value >> would you discard the result? At what correlation value would you >> discard a result (>0.99,> 0.97...) as being close to 1. Clearly if >> this was for regulatory work you could define these a priori after >> having chosen any arbitrary cut-off. But the devil here lies with >> the non-regulatory work where you may not have defined these >> boundaries a priori. >> >> Steve >> -- >> Professor Stephen Duffull >> Chair of Clinical Pharmacy >> School of Pharmacy >> University of Otago >> PO Box 56 Dunedin >> New Zealand >> E: [email protected] >> P: +64 3 479 5044 >> F: +64 3 479 7034 >> W: http://pharmacy.otago.ac.nz/profiles/stephenduffull >> >> Design software: www.winpopt.com >> >> -- Nick Holford, Professor Clinical Pharmacology Dept Pharmacology& Clinical Pharmacology University of Auckland,85 Park Rd,Private Bag 92019,Auckland,New Zealand tel:+64(9)923-6730 fax:+64(9)373-7090 mobile:+64(21)46 23 53 email: [email protected] http://www.fmhs.auckland.ac.nz/sms/pharmacology/holford
Hello all, Sorry to enter the conversation late. (I deleted prior posts to keep from exceeding the length limit). I certainly agree with that nonparametric bootstrap procedures need consideration and interpretation of output. I feel that such procedures lead to difficulty (as described by many of the previous emails) when the design is unbalanced (especially when severely so) and only a few individuals supply data which supports estimation of a covariate or structural parameter. For example, it might be in a sparse PK setting that only a few subjects had samples in the absorption phase. Sampling with replacement might lead some datasets with fewer subjects with absorption data than in the original dataset. This might lead to erratic behavior (for example Ka going to large unlikely value) during estimation and hence a multimodal distribution of the estimates. An example of this for parametric simulation is in Kimko and Duffull (eds), Simulation for Clinical Design (2003), Evaluation of Random Sparse Designs for a Population Pharmacokinetic Study: Assessement of Power and Bias Using Simulation, Hutmacher and Kowalksi. There, some random sample designs lead to large estimates of Ka - this did not affect CL or V however - pairwise scatterplots were used to demonstrate this (as Mark Gastonguay suggested in his thread to do). In such cases, it might be confidence intervals for the nonparametric bootstrap are too wide - valid at the nominal level, but inaccurate. With respect to dealing with boundary constraints and the non-parametric bootstrap, upfront thought I think can lead to less arbitrariness. Do the CI's reflect similar findings based on likelihood profiling (LP) or likelihood ratio tests (LRT)? For example, it might require more thought to reconcile a bootstrap procedure that yielded 15% of your Emax's be 0 if your LRT for Emax was > 10 points or the 95% CI based on LP did not include 0, for example. By allowing the 0 in the constraints an explicit assumption is made that one is unclear that Emax is greater than 0, and thus the modeler is allowing a point mass at 0 to exist, which is a difficult distribution statistically to deal with. One must contemplate whether this makes sense in the overall clinical interpretation. If it does not, then perhaps EMAX = exp(theta(X)) should be used to ensure that EMAX is not equal to 0 ever. Reparameterization can be done for just about any parameter to ensure a 'valid' estimate and I would suggest to do this (a sort of likelihood-based prior knowledge manifestation) than to arbitrarily pick which estimates from the bootstrap to use. Even OMEGA matrices can be parameterized to ensure non-positive semi-definite matrices, which might help in certain situations. I would also be careful if the nonparametric bootstrap CI's are different from the COV step CI's as this indicates that something is unknown with respect to estimation or inference. In the case of small sample size and non-realistic clinical inference, I would suggest a more formal Bayesian analysis which pre-specifies the analysts assumptions regarding the probability or viability of certain estimates (can be influenced by the prior). Best regards, Matt
Hi Nick, Those "irritating messages that usually just mean the initial estimate changed a lot or variance was getting close to zero" can be removed if you use NOTHETABOUNDTEST NOOMEGABOUNDTEST NOSIGMABOUNDTEST at estimation record. I think, these options should always for all bootstrap runs. Regards, Leonid -------------------------------------- Leonid Gibiansky, Ph.D. President, QuantPharm LLC web: www.quantpharm.com e-mail: LGibiansky at quantpharm.com tel: (301) 767 5566
Quoted reply history
On 7/11/2011 1:37 AM, Nick Holford wrote: > Leonid, > > With regard to discarding runs at the boundary what I had in mind was > runs which had reached the maximum number of iterations but I realized > later that Jacob was referring to NONMEM's often irritating messages > that usually just mean the initial estimate changed a lot or variance > was getting close to zero. > > There are of course some cases where the estimate is truly at a user > defined constraint. Assuming that the user has thought carefully about > these constraints then I would interpret a run that finished at this > constraint boundary as showing NONMEM was stuck in a local minimum > (probably because of the constraint boundary) and if the constraint was > relaxed then perhaps a more useful estimate would be obtained. > > In those cases then I think one can make an argument for discarding runs > with parameters that are at this kind of boundary as well as those which > reached an iteration limit. > > In general I agree with your remarks (echoing those from Marc > Gastonguay) that one needs to think about the way each bootstrap run > behaved. But some things like non-convergence and failed covariance are > ignorable because they don't influence the bootstrap distribution. > > There is also the need to recognize that bootstraps can be seriously > time consuming and the effort required to understand all the ways that > runs might finish is usually not worth it given the purposes of doing a > bootstrap. > > The most important reason for doing a bootstrap is to get more robust > estimates of the parameters. This was the main reason why these > re-sampling procedures were initially developed. The bootstrap estimate > of the parameters will usually be pretty insensitive to the margins of > the distribution where the questionable run results are typically located. > > A secondary semi-quantitative reason is to get a confidence interval > which may be helpful for model selection. This may be influenced by the > questionable runs but that is just part of the uncertainty that the > confidence interval is used to define. > > Nick > > On 10/07/2011 11:13 p.m., Leonid Gibiansky wrote: > > > I thought that the original post was "results at a boundary should NOT > > be discarded" and Nick reply was just a typo. If it was not a typo, I > > would disagree and argue that all results should be included: > > Each data set is a particular realization. We should be able to use > > all of them. If some realizations are so special that the model > > behaves in an unusual way (with any definition of unusual: > > non-convergence, not convergence of the covariance step, parameter > > estimates at the boundary, etc.) we either need to accept those as is, > > or work with each of those special data sets one by one to push to the > > parameter estimates that we can accept, or change the bootstrap > > procedure (add stratification by covariates, by dose level, by route > > of administration, etc.) so that all data sets behave similarly. > > Leonid > > > > -------------------------------------- > > Leonid Gibiansky, Ph.D. > > President, QuantPharm LLC > > web: www.quantpharm.com > > e-mail: LGibiansky at quantpharm.com > > tel: (301) 767 5566 > > > > On 7/10/2011 2:57 PM, Stephen Duffull wrote: > > > > > Nick, Jakob, Marc et al > > > > > > > Thanks for your helpful comments. I agree with you that any results > > > > that > > > > are at a boundary should be discarded from the bootstrap distribution. > > > > > > On the whole I the sentiments in this thread align with anecdotal > > > findings from my experience. But, I was just wondering how you define > > > your boundaries for variance and covariance parameters (e.g. OMEGA > > > terms)? > > > > > > For variance terms, lower boundaries seems reasonably straightforward > > > (e.g. 1E-5 seems close to zero). Upper boundaries are of course open, > > > for the variance of a log-normal ETA would 1E+5 or 1E+4 be large > > > enough to be considered close to a boundary? At what value would you > > > discard the result? At what correlation value would you discard a > > > result (>0.99,> 0.97...) as being close to 1. Clearly if this was for > > > regulatory work you could define these a priori after having chosen > > > any arbitrary cut-off. But the devil here lies with the > > > non-regulatory work where you may not have defined these boundaries a > > > priori. > > > > > > Steve > > > -- > > > Professor Stephen Duffull > > > Chair of Clinical Pharmacy > > > School of Pharmacy > > > University of Otago > > > PO Box 56 Dunedin > > > New Zealand > > > E: [email protected] > > > P: +64 3 479 5044 > > > F: +64 3 479 7034 > > > W: http://pharmacy.otago.ac.nz/profiles/stephenduffull > > > > > > Design software: www.winpopt.com
Leonid > of them. If some realizations are so special that the model behaves in > an unusual way (with any definition of unusual: non-convergence, not > convergence of the covariance step, parameter estimates at the boundary, > etc.) we either need to accept those as is, or work with each of those > special data sets one by one to push to the parameter estimates that we > can accept, or change the bootstrap procedure (add stratification by > covariates, by dose level, by route of administration, etc.) so that all > data sets behave similarly. I agree with your comments above and there are times that this might be possible. But in essence I hear that BS may become overtly time consuming in some cases if individual BS'd data sets require almost a full modelling procedure to gain appropriate convergence outcomes. This might make a long BS into an almost impossible task. The risk a user then runs is once you know there are runs that don't work as intended you cannot ignore them. If you can't afford the time resource (say a single run takes 12-24 hours) to recover each of these (say 20% of 1000 BS runs) and since you cannot un-know the results you're stuck. Would not a pragmatic view be appropriate? Report the outcomes of the BS runs as they occurred but then select those runs that terminated appropriately? Otherwise BS is too risky... Steve PS All models are wrong :-) -- > >
Quoted reply history
> On 7/10/2011 2:57 PM, Stephen Duffull wrote: > > Nick, Jakob, Marc et al > > > >> Thanks for your helpful comments. I agree with you that any results that > >> are at a boundary should be discarded from the bootstrap distribution. > > > > On the whole I the sentiments in this thread align with anecdotal findings > from my experience. But, I was just wondering how you define your boundaries > for variance and covariance parameters (e.g. OMEGA terms)? > > > > For variance terms, lower boundaries seems reasonably straightforward (e.g. > 1E-5 seems close to zero). Upper boundaries are of course open, for the > variance of a log-normal ETA would 1E+5 or 1E+4 be large enough to be > considered close to a boundary? At what value would you discard the result? > At what correlation value would you discard a result (>0.99,> 0.97...) as > being close to 1. Clearly if this was for regulatory work you could define > these a priori after having chosen any arbitrary cut-off. But the devil here > lies with the non-regulatory work where you may not have defined these > boundaries a priori. > > > > Steve > > -- > > Professor Stephen Duffull > > Chair of Clinical Pharmacy > > School of Pharmacy > > University of Otago > > PO Box 56 Dunedin > > New Zealand > > E: [email protected] > > P: +64 3 479 5044 > > F: +64 3 479 7034 > > W: http://pharmacy.otago.ac.nz/profiles/stephenduffull > > > > Design software: www.winpopt.com > > > >
Hi Matt, OK, I can certainly see that transformations will be helpful in bootstrapping; for those persons that throw away samples with unsuccessful termination or cov step. They would otherwise discard all bootstrap estimates that indicate Emax is close to zero. Since I most often use all bootstrap samples that terminate at a minimum I guess in practice I would virtually have the same distribution of Emax, regardless of transformation or not? I fully agree transformations are useful to get convergence and successful covstep on the original dataset (and I tend to keep the same transformation when bootstrapping, but only for simplicity). However, I sometimes use the bootstrap results to which parameters should be transformed in the first place. From what I have seen, bootstrapping the transformed model again has never changed the (non-parametric bootstrap) distribution when boundaries were the same (e.g. both models bound to positive values of Emax). Cheers Jakob
Quoted reply history
-----Original Message----- From: Matt Hutmacher [mailto:[email protected]] Sent: 11 July 2011 17:39 To: Ribbing, Jakob; 'nmusers' Subject: RE: [NMusers] Confidence intervals of PsN bootstrap output Hi Jakob, "The 15% bootstrap samples where data suggest a negative drug effect would in one case terminate at the zero boundary, in the other case it would terminate (often unsuccessfully) at highly negative values for log Emax"... I have seen that transformation can make the likelihood surface more stable. In my experience, when runs terminate using ordinary Emax parameterization with 0 lower bounds (note that NONMEM is using a transformation behind the scenes to avoid constrained optimization), you can avoid termination and even get the $COV to run with different parameterizations. The estimate might be quite negative as you suggest, but I have seen it recovered. Also, I have seen termination avoided and COV achieved with Emax=EXP(THETA(X)) and EC50=EXP(THETA(Y)) when EC50 and EMAX becomes large. I have seen variance components that can be estimated in this way but not with traditional $OMEGA implementation. Best, matt
Hi Jakob, I agree that in the well-defined cases that reparameterization will not matter since maximum likelihood is invariant under certain types of transformation - your bootstrap distribution would be the same. For the marginal dataset cases (for any dataset bootstrap or otherwise) transformation will help convergence and COV step estimation by helping with boundary problems and reducing intrinsic nonlinearity. For pathological cases such as those in which a few individuals contain information to estimate key parameters or when there are certain types of outlying individuals, one should consider the accuracy of the bootstrap estimate. Just my opinion. Best Regards, Matt
Quoted reply history
From: [email protected] [mailto:[email protected]] On Behalf Of Ribbing, Jakob Sent: Monday, July 11, 2011 7:43 PM To: nmusers Cc: Matt Hutmacher Subject: RE: [NMusers] Confidence intervals of PsN bootstrap output Hi Matt, OK, I can certainly see that transformations will be helpful in bootstrapping; for those persons that throw away samples with unsuccessful termination or cov step. They would otherwise discard all bootstrap estimates that indicate Emax is close to zero. Since I most often use all bootstrap samples that terminate at a minimum I guess in practice I would virtually have the same distribution of Emax, regardless of transformation or not? I fully agree transformations are useful to get convergence and successful covstep on the original dataset (and I tend to keep the same transformation when bootstrapping, but only for simplicity). However, I sometimes use the bootstrap results to which parameters should be transformed in the first place. From what I have seen, bootstrapping the transformed model again has never changed the (non-parametric bootstrap) distribution when boundaries were the same (e.g. both models bound to positive values of Emax). Cheers Jakob -----Original Message----- From: Matt Hutmacher [mailto:[email protected]] Sent: 11 July 2011 17:39 To: Ribbing, Jakob; 'nmusers' Subject: RE: [NMusers] Confidence intervals of PsN bootstrap output Hi Jakob, "The 15% bootstrap samples where data suggest a negative drug effect would in one case terminate at the zero boundary, in the other case it would terminate (often unsuccessfully) at highly negative values for log Emax"... I have seen that transformation can make the likelihood surface more stable. In my experience, when runs terminate using ordinary Emax parameterization with 0 lower bounds (note that NONMEM is using a transformation behind the scenes to avoid constrained optimization), you can avoid termination and even get the $COV to run with different parameterizations. The estimate might be quite negative as you suggest, but I have seen it recovered. Also, I have seen termination avoided and COV achieved with Emax=EXP(THETA(X)) and EC50=EXP(THETA(Y)) when EC50 and EMAX becomes large. I have seen variance components that can be estimated in this way but not with traditional $OMEGA implementation. Best, matt