RE: Confidence interval calculations
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
Quoted reply history
From: [email protected] [mailto:[email protected]] On
Behalf Of Fisher Dennis
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_&d=CwMFaQ&c=UE1eNsedaKncO0Yl_u8bfw&r=4WqjVFXRfAkMXd6y3wiAtxtNlICJwFMiogoD6jkpUkg&m=XG9Wfv2f6VwlsoAy_mLB3nw-8RDepuOpLsMU6mG2PaQ&s=C7zYEOf_g5Oh-jd8gp--dFSqS_Pt0W8tZ7fqJP_Yf1o&e=">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=