Effects
paket menyediakan cara yang sangat cepat dan mudah untuk memplot hasil model efek campuran linier yang diperoleh melalui lme4
paket . The effect
interval fungsi menghitung kepercayaan (CI) sangat cepat, tapi bagaimana dapat dipercaya adalah interval keyakinan ini?
Sebagai contoh:
library(lme4)
library(effects)
library(ggplot)
data(Pastes)
fm1 <- lmer(strength ~ batch + (1 | cask), Pastes)
effs <- as.data.frame(effect(c("batch"), fm1))
ggplot(effs, aes(x = batch, y = fit, ymin = lower, ymax = upper)) +
geom_rect(xmax = Inf, xmin = -Inf, ymin = effs[effs$batch == "A", "lower"],
ymax = effs[effs$batch == "A", "upper"], alpha = 0.5, fill = "grey") +
geom_errorbar(width = 0.2) + geom_point() + theme_bw()
Menurut CI yang dihitung menggunakan effects
paket, batch "E" tidak tumpang tindih dengan batch "A".
Jika saya mencoba confint.merMod
fungsi menggunakan yang sama dan metode default:
a <- fixef(fm1)
b <- confint(fm1)
# Computing profile confidence intervals ...
# There were 26 warnings (use warnings() to see them)
b <- data.frame(b)
b <- b[-1:-2,]
b1 <- b[[1]]
b2 <- b[[2]]
dt <- data.frame(fit = c(a[1], a[1] + a[2:length(a)]),
lower = c(b1[1], b1[1] + b1[2:length(b1)]),
upper = c(b2[1], b2[1] + b2[2:length(b2)]) )
dt$batch <- LETTERS[1:nrow(dt)]
ggplot(dt, aes(x = batch, y = fit, ymin = lower, ymax = upper)) +
geom_rect(xmax = Inf, xmin = -Inf, ymin = dt[dt$batch == "A", "lower"],
ymax = dt[dt$batch == "A", "upper"], alpha = 0.5, fill = "grey") +
geom_errorbar(width = 0.2) + geom_point() + theme_bw()
Saya melihat bahwa semua CI tumpang tindih. Saya juga mendapatkan peringatan yang menunjukkan bahwa fungsi gagal menghitung CI yang dapat dipercaya. Contoh ini, dan set data aktual saya, membuat saya curiga bahwa effects
paket mengambil pintasan dalam perhitungan CI yang mungkin tidak sepenuhnya disetujui oleh ahli statistik. Seberapa tepercaya CI yang dikembalikan dengan effect
fungsi dari effects
paket untuk lmer
objek?
Apa yang saya coba: Melihat ke kode sumber, saya perhatikan bahwa effect
fungsi bergantung pada Effect.merMod
fungsi, yang pada gilirannya mengarahkan ke Effect.mer
fungsi, yang terlihat seperti ini:
effects:::Effect.mer
function (focal.predictors, mod, ...)
{
result <- Effect(focal.predictors, mer.to.glm(mod), ...)
result$formula <- as.formula(formula(mod))
result
}
<environment: namespace:effects>
mer.to.glm
fungsi tampaknya menghitung Variance-Covariate Matrix dari lmer
objek:
effects:::mer.to.glm
function (mod)
{
...
mod2$vcov <- as.matrix(vcov(mod))
...
mod2
}
Ini, pada gilirannya, mungkin digunakan dalam Effect.default
fungsi untuk menghitung CI (saya mungkin salah paham bagian ini):
effects:::Effect.default
...
z <- qnorm(1 - (1 - confidence.level)/2)
V <- vcov.(mod)
eff.vcov <- mod.matrix %*% V %*% t(mod.matrix)
rownames(eff.vcov) <- colnames(eff.vcov) <- NULL
var <- diag(eff.vcov)
result$vcov <- eff.vcov
result$se <- sqrt(var)
result$lower <- effect - z * result$se
result$upper <- effect + z * result$se
...
Saya tidak cukup tahu tentang LMM untuk menilai apakah ini merupakan pendekatan yang tepat, tetapi mempertimbangkan diskusi tentang perhitungan interval kepercayaan untuk LMM, pendekatan ini tampak sederhana dan mencurigakan.
Jawaban:
Semua hasilnya pada dasarnya sama ( untuk contoh khusus ini ). Beberapa perbedaan teoretis adalah:
lsmeans
,effects
,confint(.,method="Wald")
; kecuali untuklsmeans
, metode ini mengabaikan efek ukuran terbatas ("derajat kebebasan"), tetapi dalam kasus ini hampir tidak ada bedanya (df=40
praktis tidak bisa dibedakan dari tak terbatasdf
)Saya pikir semua pendekatan ini masuk akal (beberapa lebih mendekati daripada yang lain), tetapi dalam hal ini hampir tidak ada bedanya yang mana yang Anda gunakan. Jika Anda khawatir, cobalah beberapa metode kontras pada data Anda, atau pada data simulasi yang menyerupai milik Anda, dan lihat apa yang terjadi ...
(PS: Saya tidak akan terlalu menekankan fakta bahwa interval kepercayaan
A
danE
tidak tumpang tindih. Anda harus melakukan prosedur perbandingan berpasangan yang tepat untuk membuat kesimpulan yang andal tentang perbedaan antara pasangan perkiraan tertentu ini . ..)95% CI:
Kode perbandingan:
sumber
effects
paket dan CI tumpang tindih dalam kasus ini?multcomp
paket, tetapi membutuhkan setidaknya satu sedikit perawatan)Sepertinya apa yang telah Anda lakukan dalam metode kedua adalah menghitung interval kepercayaan untuk koefisien regresi, kemudian mentransformasikannya untuk mendapatkan CI untuk prediksi. Ini mengabaikan kovariansi antara koefisien regresi.
Coba pas model tanpa intersep, sehingga
batch
efeknya benar-benar akan menjadi prediksi, danconfint
akan mengembalikan interval yang Anda butuhkan.Adendum 1
Saya melakukan persis apa yang saya sarankan di atas:
Interval ini tampaknya cocok dengan hasil dari
effects
.Tambahan 2
Alternatif lain adalah paket lsmeans . Ia memperoleh derajat kebebasan dan matriks kovarians yang disesuaikan dari paket pbkrtest .
effect
effect
confint
Hasil dari
effect
danlsmeans
serupa, tetapi dengan situasi multi-faktor yang tidak seimbang,lsmeans
secara default rata-rata atas faktor-faktor yang tidak digunakan dengan bobot yang sama, sedangkaneffect
bobot dengan frekuensi yang diamati (tersedia sebagai opsi dalamlsmeans
).sumber
effects
paket dapat dipercaya untuklmer
objek. Saya mempertimbangkan untuk menggunakan hasil dalam publikasi dan ingin memastikan bahwa CI dihitung menggunakan metode yang disetujui untuk LMM..sig01
dan.sigma
menghasilkan denganconfint
, apakah interval kepercayaan untuk varian ? atau interval kepercayaan deviasi standar ?lmer
jawaban yang pasti. Namun, orang biasanya menggunakan notasisigma
untuk merujuk pada standar deviasi, dansigma.square
atausigma^2
untuk merujuk pada varian.