ฉันต้องการได้รับช่วงความเชื่อมั่น 95% จากการทำนายของตัวแบบผสมnlme
แบบไม่เป็นเชิงเส้น ในขณะที่ไม่มีมาตรฐานใดให้ทำเช่นนี้ภายในnlme
ฉันสงสัยว่ามันถูกต้องหรือไม่ที่จะใช้วิธีการของ "ช่วงการทำนายประชากร" ตามที่ระบุไว้ในบทหนังสือของ Ben Bolker ในบริบทของแบบจำลองที่เหมาะสมกับโอกาสสูงสุดตามแนวคิด resampling พารามิเตอร์ผลกระทบคงที่ตามเมทริกซ์ความแปรปรวนร่วม - ความแปรปรวนร่วมของแบบจำลองที่ติดตั้งใหม่, การจำลองการทำนายตามนี้แล้วนำ 95% เปอร์เซ็นไทล์ของการทำนายเหล่านี้เพื่อให้ได้ช่วงความมั่นใจ 95%?
รหัสการทำเช่นนี้มีลักษณะดังนี้: (ฉันที่นี่ใช้ข้อมูล 'Loblolly' จากnlme
ไฟล์ช่วยเหลือ)
library(effects)
library(nlme)
library(MASS)
fm1 <- nlme(height ~ SSasymp(age, Asym, R0, lrc),
data = Loblolly,
fixed = Asym + R0 + lrc ~ 1,
random = Asym ~ 1,
start = c(Asym = 103, R0 = -8.5, lrc = -3.3))
xvals=seq(min(Loblolly$age),max(Loblolly$age),length.out=100)
nresamp=1000
pars.picked = mvrnorm(nresamp, mu = fixef(fm1), Sigma = vcov(fm1)) # pick new parameter values by sampling from multivariate normal distribution based on fit
yvals = matrix(0, nrow = nresamp, ncol = length(xvals))
for (i in 1:nresamp)
{
yvals[i,] = sapply(xvals,function (x) SSasymp(x,pars.picked[i,1], pars.picked[i,2], pars.picked[i,3]))
}
quant = function(col) quantile(col, c(0.025,0.975)) # 95% percentiles
conflims = apply(yvals,2,quant) # 95% confidence intervals
ตอนนี้ฉันมีขีด จำกัด ความเชื่อมั่นของฉันฉันสร้างกราฟ:
meany = sapply(xvals,function (x) SSasymp(x,fixef(fm1)[[1]], fixef(fm1)[[2]], fixef(fm1)[[3]]))
par(cex.axis = 2.0, cex.lab=2.0)
plot(0, type='n', xlim=c(3,25), ylim=c(0,65), axes=F, xlab="age", ylab="height");
axis(1, at=c(3,1:5 * 5), labels=c(3,1:5 * 5))
axis(2, at=0:6 * 10, labels=0:6 * 10)
for(i in 1:14)
{
data = subset(Loblolly, Loblolly$Seed == unique(Loblolly$Seed)[i])
lines(data$age, data$height, col = "red", lty=3)
}
lines(xvals,meany, lwd=3)
lines(xvals,conflims[1,])
lines(xvals,conflims[2,])
นี่คือพล็อตที่มีช่วงความมั่นใจ 95% ที่ได้มาด้วยวิธีนี้:
วิธีนี้ใช้ได้หรือมีวิธีอื่นหรือดีกว่าในการคำนวณช่วงความเชื่อมั่น 95% สำหรับการทำนายของตัวแบบผสมแบบไม่เชิงเส้นหรือไม่? ฉันไม่แน่ใจว่าจะจัดการกับโครงสร้างสุ่มเอฟเฟ็กต์ของโมเดลได้อย่างไร ... หนึ่งในค่าเฉลี่ยอาจจะสูงกว่าระดับเอฟเฟกต์แบบสุ่มหรือไม่? หรือมันจะโอเคที่จะมีช่วงความมั่นใจสำหรับเรื่องเฉลี่ยซึ่งดูเหมือนจะใกล้เคียงกับสิ่งที่ฉันมีอยู่ตอนนี้