혼합 모델에서 값 계산에 대해 읽었으며 R-sig FAQ,이 포럼의 다른 게시물 (몇몇 링크하지만 평판이 충분하지 않음) 및 R 을 사용하는 것으로 이해하는 몇 가지 다른 참조를 읽었습니다. 혼합 모델의 맥락에서 2 개의 값은 복잡합니다.
그러나 최근에이 두 논문을 접했습니다. 이 방법들이 유망한 것처럼 보이지만 (나는) 통계학자가 아니므로 다른 사람이 제안한 방법과 제안 된 다른 방법과 비교할 수있는 방법에 대해 다른 사람이 궁금 할 것입니다.
나카가와, 신이치, 홀거 샤이 체스 "일반화 된 선형 혼합 효과 모델에서 R2를 얻는 일반적이고 간단한 방법입니다." 생태와 진화의 방법 4.2 (2013) : 133-142.
존슨, 폴 CD. "나카가와 & Schielzeth의 R2GLMM을 임의의 경사 모델로 확장." 생태와 진화의 방법 (2014).
is 메소드는 MuMIn 패키지 의 r.squaredGLMM 함수를 사용하여 구현할 수 있으며 다음 메소드에 대한 설명을 제공합니다.
혼합 효과 모델의 경우 는 두 가지 유형으로 분류 할 수 있습니다. 한계 R 2 는 고정 인수로 설명 된 분산을 나타내며 다음과 같이 정의됩니다. R G L M M ( m ) 2 = σ 2 f 조건부R2는 고정 및 랜덤 인자 (즉, 전체 모델)로 설명 된 분산으로 해석되며 방정식에 따라 계산됩니다. RGLMM(c)2=(σ 2 f +∑(σ 2 l ))
여기서σ 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