Saya ingin mendapatkan interval kepercayaan 95% pada prediksi nlme
model campuran non-linear . Karena tidak ada standar yang disediakan untuk melakukan hal ini di dalam nlme
, saya bertanya-tanya apakah benar menggunakan metode "interval prediksi populasi", sebagaimana diuraikan dalam bab buku Ben Bolker dalam konteks model yang sesuai dengan kemungkinan maksimum , berdasarkan pada gagasan resampling parameter efek tetap berdasarkan matriks varians-kovarian model pas, mensimulasikan prediksi berdasarkan ini, dan kemudian mengambil 95% persentil dari prediksi ini untuk mendapatkan interval kepercayaan 95%?
Kode untuk melakukan ini terlihat sebagai berikut: (Saya di sini menggunakan data 'Loblolly' dari nlme
file bantuan)
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
Sekarang saya memiliki batas kepercayaan diri saya membuat grafik:
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,])
Inilah plot dengan interval kepercayaan 95% yang diperoleh dengan cara ini:
Apakah pendekatan ini valid, atau adakah pendekatan lain atau yang lebih baik untuk menghitung interval kepercayaan 95% pada prediksi model campuran nonlinier? Saya tidak sepenuhnya yakin bagaimana cara menangani struktur efek acak model ... Haruskah satu rata-rata mungkin melebihi tingkat efek acak? Atau apakah boleh untuk memiliki interval kepercayaan untuk subjek rata-rata, yang tampaknya lebih dekat dengan apa yang saya miliki sekarang?
sumber
Jawaban:
Apa yang Anda lakukan di sini terlihat masuk akal. Jawaban singkatnya adalah bahwa sebagian besar masalah prediksi interval kepercayaan dari model campuran dan dari model nonlinier lebih atau kurang ortogonal , yaitu, Anda perlu khawatir tentang kedua set masalah, tetapi mereka tidak (yang saya tahu dari) berinteraksi dengan cara yang aneh.
Sepanjang, saya akan menganggap Anda memprediksi pada tingkat populasi dan membangun interval kepercayaan sebagai tingkat populasi - dengan kata lain Anda mencoba untuk merencanakan nilai prediksi dari khas kelompok, dan tidak termasuk variasi di antara kelompok dalam kepercayaan diri Anda interval. Ini menyederhanakan masalah model campuran. Plot berikut membandingkan tiga pendekatan (lihat di bawah untuk dump kode):
Kita juga bisa melakukan bootstrap parametrik ...
Berikut adalah CI yang diplot bersama dengan data ...
... tapi kita hampir tidak bisa melihat perbedaannya.
Memperbesar dengan mengurangi nilai yang diprediksi (merah = bootstrap, biru = PPI, cyan = metode delta)
Dalam hal ini interval bootstrap sebenarnya paling sempit (mis. Agaknya distribusi sampling dari parameter sebenarnya sedikit lebih tipis daripada Normal), sedangkan interval PPI dan metode delta sangat mirip satu sama lain.
sumber