我一直在阅读有关在混合模型中计算值的信息,在阅读了R-sig常见问题解答之后,该论坛上的其他帖子(我会链接一些但我没有足够的声誉)以及其他一些参考资料,我知道使用在混合模型的上下文中,值很复杂。
但是,我最近在下面看到了这两篇论文。尽管这些方法对我来说确实很有希望,但我不是统计学家,因此我想知道其他人是否会对他们提出的方法以及与其他提出的方法进行比较有任何见解。
Nakagawa,Shinichi和Holger Schielzeth。“从广义线性混合效应模型获得R2的通用且简单的方法。” 《生态与进化中的方法》 4.2(2013):133-142。
约翰逊,保罗CD。“将Nakagawa&Schielzeth的R2GLMM扩展到随机斜率模型。” 《生态与进化中的方法》(2014年)。
也可以使用MuMIn包中的r.squaredGLMM函数来实现is方法,该方法提供了对该方法的以下描述。
对于混合效应模型,可以分为两种类型。边际代表用固定因子解释的方差,并定义为: 条件R ^ 2被解释为由固定和随机因素(即整个模型)解释的方差,并根据以下公式计算: R_ {GLMM}(c)^ 2 = \ frac {(σ_f ^ 2 + \ sum(σ_l^ 2))} {(σ_f^ 2 + \ sum(σ_l^ 2)+σ_e^ 2 +σ_d^ 2} 其中σ_f^ 2是固定效应分量的方差,并且\ sum (σ_l^ 2)是所有方差分量(组,个体等)的总和,σ_l^ 2
是由于添加剂分散引起的方差,而是特定于分布的方差。
在分析中,我查看的是纵向数据,并且我主要对模型中固定效应所解释的方差感兴趣
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