From: Denney, William S. <*William.S.Denney*>

Date: Thu, 10 Dec 2015 17:33:21 +0000

Hi Dennis,

For this, I’d bootstrap it, apply the function to the bootstrapped results, and use that as your CI.

For more specific steps:

Assuming that:

THETA(1) = intercept

THETA(2) = slope

THETA(3) = value at saturation

LOW = THETA(1) + THETA(2)*Cp

HIGH= THETA(3)

IF (LOW.LT.HIGH) Y = LOW

IF (LOW.GT.HIGH) Y = HIGH

Then upon bootstrapping, you will have many values for the thetas. Those theta values can be used to calculate the critical Cp where the switch from low to high occurs:

Cpcritical = (THETA(3) - THETA(1))/THETA(2)

And, you can generate the Cpcritical values for all bootstrapped runs (Cpcritical_i for bootstrap run i).

Finally, for each of the bootstrap runs, determine the point estimate at Cp = 0, Cp= all Cpcritical_i, and some very high value for Cp (likely max observed Cp). With that, you can summarize the CI at each concentration by determining the quantiles of interest within the simulated values.

R code to do all of this from a bootstrapped data set could look like the following (not tested):

Cpmax <- 5 ## Replace with the maximum observed Cp or whatever maximum you want to have in your figure

d.bootstrap <- read.csv(“bootstrap.results.csv”) ## Assuming that there is one row per bootstrap run and that the columns are named TH1, TH2, and TH3

Cpcritical <- with(d.bootstrap, (TH3-TH1)/TH2)

allconc <- c(0, Cpcritical, Cpmax)

simdata <- data.frame()

for (i in seq_along(d.bootstrap)) {

tmpsim <- data.frame(index=i, conc=allconc,

result=pmin(d.bootstrap$TH3[i], d.bootstrap$TH1[i] + d.bootstrap$TH2[i]*allconc)

simdata <- rbind(simdata, tmpsim)

}

## For a 90% CI; for other CIs, alter the probs

summaryBy(result~conc, data=simdata, FUN=quantile, probs=c(0.05, 0.5, 0.95))

Thanks,

bill

From: owner-nmusers [mailto:owner-nmusers

Sent: Thursday, December 10, 2015 11:24 AM

To: nmusers

Subject: [NMusers] Confidence interval calculations

Colleagues

I have fit an exposure response model using NONMEM — the optimal model is a segmented two-part regression with Cp on the x-axis and response on the y-axis. The two regression lines intercept at the cutpoint.

The parameters are:

slope of the left regression

cutpoint between regressions

“intercept” — y value at the cutpoint

slope of the right regression (fixed at zero; models in which the value was estimated yielded similar values for the objective function)

I have been asked to calculate the confidence interval for the response at various Cp values.

Above the cutpoint, this seems straightforward:

a. if NONMEM yielded standard errors, the only relevant parameter is the y value at the cutpoint and its standard error

b. if NONMEM did not yield standard errors, the confidence interval could come from either likelihood profiles or bootstrap

My concern is calculating at Cp values below the cutpoint, for which both slope and intercept come into play. Any thoughts as to how to do this in the presence or absence of NONMEM standard errors?

The reason that I mention with / without presence of SE’s is that this model was fit to two different datasets, one of which yielded SE’s, the other not.

Any thoughts on this would be appreciated.

Dennis

Dennis Fisher MD

P < (The "P Less Than" Company)

Phone: 1-866-PLessThan (1-866-753-7784)

Fax: 1-866-PLessThan (1-866-753-7784)

www.PLessThan.com<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.plessthan.com_&d=CwMFaQ&c=UE1eNsedaKncO0Yl_u8bfw&r=4WqjVFXRfAkMXd6y3wiAtxtNlICJwFMiogoD6jkpUkg&m=XG9Wfv2f6VwlsoAy_mLB3nw-8RDepuOpLsMU6mG2PaQ&s=C7zYEOf_g5Oh-jd8gp--dFSqS_Pt0W8tZ7fqJP_Yf1o&e=>

Received on Thu Dec 10 2015 - 12:33:21 EST

Date: Thu, 10 Dec 2015 17:33:21 +0000

Hi Dennis,

For this, I’d bootstrap it, apply the function to the bootstrapped results, and use that as your CI.

For more specific steps:

Assuming that:

THETA(1) = intercept

THETA(2) = slope

THETA(3) = value at saturation

LOW = THETA(1) + THETA(2)*Cp

HIGH= THETA(3)

IF (LOW.LT.HIGH) Y = LOW

IF (LOW.GT.HIGH) Y = HIGH

Then upon bootstrapping, you will have many values for the thetas. Those theta values can be used to calculate the critical Cp where the switch from low to high occurs:

Cpcritical = (THETA(3) - THETA(1))/THETA(2)

And, you can generate the Cpcritical values for all bootstrapped runs (Cpcritical_i for bootstrap run i).

Finally, for each of the bootstrap runs, determine the point estimate at Cp = 0, Cp= all Cpcritical_i, and some very high value for Cp (likely max observed Cp). With that, you can summarize the CI at each concentration by determining the quantiles of interest within the simulated values.

R code to do all of this from a bootstrapped data set could look like the following (not tested):

Cpmax <- 5 ## Replace with the maximum observed Cp or whatever maximum you want to have in your figure

d.bootstrap <- read.csv(“bootstrap.results.csv”) ## Assuming that there is one row per bootstrap run and that the columns are named TH1, TH2, and TH3

Cpcritical <- with(d.bootstrap, (TH3-TH1)/TH2)

allconc <- c(0, Cpcritical, Cpmax)

simdata <- data.frame()

for (i in seq_along(d.bootstrap)) {

tmpsim <- data.frame(index=i, conc=allconc,

result=pmin(d.bootstrap$TH3[i], d.bootstrap$TH1[i] + d.bootstrap$TH2[i]*allconc)

simdata <- rbind(simdata, tmpsim)

}

## For a 90% CI; for other CIs, alter the probs

summaryBy(result~conc, data=simdata, FUN=quantile, probs=c(0.05, 0.5, 0.95))

Thanks,

bill

From: owner-nmusers [mailto:owner-nmusers

Sent: Thursday, December 10, 2015 11:24 AM

To: nmusers

Subject: [NMusers] Confidence interval calculations

Colleagues

I have fit an exposure response model using NONMEM — the optimal model is a segmented two-part regression with Cp on the x-axis and response on the y-axis. The two regression lines intercept at the cutpoint.

The parameters are:

slope of the left regression

cutpoint between regressions

“intercept” — y value at the cutpoint

slope of the right regression (fixed at zero; models in which the value was estimated yielded similar values for the objective function)

I have been asked to calculate the confidence interval for the response at various Cp values.

Above the cutpoint, this seems straightforward:

a. if NONMEM yielded standard errors, the only relevant parameter is the y value at the cutpoint and its standard error

b. if NONMEM did not yield standard errors, the confidence interval could come from either likelihood profiles or bootstrap

My concern is calculating at Cp values below the cutpoint, for which both slope and intercept come into play. Any thoughts as to how to do this in the presence or absence of NONMEM standard errors?

The reason that I mention with / without presence of SE’s is that this model was fit to two different datasets, one of which yielded SE’s, the other not.

Any thoughts on this would be appreciated.

Dennis

Dennis Fisher MD

P < (The "P Less Than" Company)

Phone: 1-866-PLessThan (1-866-753-7784)

Fax: 1-866-PLessThan (1-866-753-7784)

www.PLessThan.com<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.plessthan.com_&d=CwMFaQ&c=UE1eNsedaKncO0Yl_u8bfw&r=4WqjVFXRfAkMXd6y3wiAtxtNlICJwFMiogoD6jkpUkg&m=XG9Wfv2f6VwlsoAy_mLB3nw-8RDepuOpLsMU6mG2PaQ&s=C7zYEOf_g5Oh-jd8gp--dFSqS_Pt0W8tZ7fqJP_Yf1o&e=>

Received on Thu Dec 10 2015 - 12:33:21 EST