Tôi muốn đạt được khoảng tin cậy 95% cho các dự đoán của nlme
mô hình hỗn hợp phi tuyến tính . Vì không có tiêu chuẩn nào được cung cấp để thực hiện điều này bên trong nlme
, tôi đã tự hỏi liệu có đúng không khi sử dụng phương pháp "khoảng dự đoán dân số", như được nêu trong chương sách của Ben Bolker trong bối cảnh các mô hình phù hợp với khả năng tối đa , dựa trên ý tưởng của lấy mẫu lại các tham số hiệu ứng cố định dựa trên ma trận phương sai hiệp phương sai của mô hình được trang bị, mô phỏng dự đoán dựa trên điều này và sau đó lấy 95% phần trăm của các dự đoán này để có khoảng tin cậy 95%?
Mã để thực hiện việc này trông như sau: (Tôi ở đây sử dụng dữ liệu 'loblolly' từ nlme
tệp trợ giúp)
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
Bây giờ tôi có giới hạn tự tin của mình, tôi tạo một biểu đồ:
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,])
Đây là âm mưu với khoảng tin cậy 95% thu được theo cách này:
Cách tiếp cận này có hợp lệ không, hoặc có cách tiếp cận nào khác hoặc tốt hơn để tính khoảng tin cậy 95% cho các dự đoán của mô hình hỗn hợp phi tuyến? Tôi không hoàn toàn chắc chắn về cách xử lý cấu trúc hiệu ứng ngẫu nhiên của mô hình ... Có nên trung bình một mức có thể vượt quá mức hiệu ứng ngẫu nhiên? Hoặc sẽ ổn khi có khoảng tin cậy cho một đối tượng trung bình, dường như gần với những gì tôi có bây giờ?