Saya telah membaca tentang menghitung nilai dalam model campuran dan setelah membaca FAQ R-sig, posting lain di forum ini (saya akan menghubungkan beberapa tetapi saya tidak memiliki reputasi yang cukup) dan beberapa referensi lain yang saya pahami menggunakan dalam konteks model campuran rumit.R 2
Namun, saya baru saja menemukan dua makalah ini di bawah ini. Sementara metode ini memang terlihat menjanjikan (bagi saya) saya bukan ahli statistik, dan karena itu saya bertanya-tanya apakah ada orang lain yang memiliki wawasan tentang metode yang mereka usulkan dan bagaimana mereka akan membandingkan dengan metode lain yang telah diusulkan.
Nakagawa, Shinichi, dan Holger Schielzeth. "Metode umum dan sederhana untuk mendapatkan R2 dari model efek campuran linier umum." Metode dalam Ekologi dan Evolusi 4.2 (2013): 133-142.
Johnson, Paul CD. "Perpanjangan R2GLMM Nakagawa & Schielzeth ke model lereng acak." Metode dalam Ekologi dan Evolusi (2014).
Metode is juga dapat diimplementasikan menggunakan fungsi r.squaredGLMM dalam paket MuMIn yang memberikan deskripsi metode berikut.
Untuk model efek campuran, dapat dikategorikan menjadi dua jenis. Marginal mewakili varians yang dijelaskan oleh faktor-faktor tetap, dan didefinisikan sebagai: Kondisional ditafsirkan sebagai varians yang dijelaskan oleh faktor tetap dan acak (yaitu seluruh model), dan dihitung sesuai dengan persamaan: mana adalah varian dari komponen efek tetap, dan adalah jumlah dari semua komponen varians (grup, individu, dll.),R 2 R2RGLMM(c)2=(σ 2 f +∑(σ 2 l ))
σ 2 f ∑(σ 2 l )σ 2 l σ 2 dadalah varians karena dispersi aditif dan adalah varians distribusi-spesifik.
Dalam analisis saya, saya melihat data longitudinal dan saya terutama tertarik pada varian dijelaskan oleh efek tetap dalam model
library(MuMIn)
library(lme4)
fm1 <- lmer(zglobcog ~ age_c + gender_R2 + ibphdtdep + iyeareducc + apoegeno + age_c*apoegeno + (age_c | pathid), data = dat, REML = FALSE, control = lmerControl(optimizer = "Nelder_Mead"))
# Jarret Byrnes (correlation between the fitted and the observed values)
r2.corr.mer <- function(m) {
lmfit <- lm(model.response(model.frame(m)) ~ fitted(m))
summary(lmfit)$r.squared
}
r2.corr.mer(fm1)
[1] 0.8857005
# Xu 2003
1-var(residuals(fm1))/(var(model.response(model.frame(fm1))))
[1] 0.8783479
# Nakagawa & Schielzeth's (2013)
r.squaredGLMM(fm1)
R2m R2c
0.1778225 0.8099395