Я читал о расчете значений в смешанных моделях и после прочтения FAQ по R-sig, других постов на этом форуме (я бы связал несколько, но мне не хватает репутации) и нескольких других ссылок, которые я понимаю, используя Значения в контексте смешанных моделей сложны.R 2
Однако недавно я наткнулся на эти две статьи ниже. Хотя эти методы выглядят многообещающе (для меня), я не являюсь статистиком, и поэтому мне было интересно, будет ли кто-либо еще иметь представление о методах, которые они предлагают, и о том, как они будут сравниваться с другими методами, которые были предложены.
Накагава, Шиничи и Хольгер Шилзет. «Общий и простой метод получения R2 из обобщенных линейных моделей со смешанными эффектами». Методы в экологии и эволюции 4.2 (2013): 133-142.
Джонсон, Пол CD. «Расширение модели R2GLMM компании Nakagawa & Schielzeth для моделей со случайными уклонами». Методы в экологии и эволюции (2014).
Метод is также может быть реализован с использованием функции r.squaredGLMM в пакете MuMIn, которая дает следующее описание метода.
Для моделей со смешанными эффектами можно разделить на два типа. Маргинальное число представляет дисперсию, объясняемую фиксированными коэффициентами, и определяется как: Условное интерпретируется как дисперсия, объясняемая как постоянными, так и случайными факторами (т. е. всей моделью), и рассчитывается по уравнению: где - дисперсия фиксированных компонентов эффекта, а - сумма всех компонент дисперсии (группы, отдельных и т. д.),R 2 R2RGLММ(с)2=( σ 2 F +Е( σ 2 л ))
σ 2 f ∑(σ 2 l )σ 2 l σ 2 d- дисперсия, обусловленная аддитивной дисперсией, а - дисперсия, от распределения.
В своем анализе я смотрю на продольные данные и меня в первую очередь интересует дисперсия, объясняемая фиксированными эффектами в модели
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