Eu tenho lido sobre o cálculo de valores de em modelos mistos e depois de ler as perguntas frequentes do R-sig, outras postagens neste fórum (eu vincularia algumas, mas não tenho reputação suficiente) e várias outras referências que eu entendo que usando valores no contexto de modelos mistos é complicado.
No entanto, recentemente me deparei com esses dois documentos abaixo. Embora esses métodos pareçam promissores (para mim), eu não sou um estatístico e, como tal, fiquei imaginando se alguém teria alguma idéia sobre os métodos que eles propõem e como eles se comparariam a outros métodos que foram propostos.
Nakagawa, Shinichi e Holger Schielzeth. "Um método geral e simples para obter R2 a partir de modelos lineares generalizados de efeitos mistos". Métodos em Ecologia e Evolução 4.2 (2013): 133-142.
Johnson, Paul CD. "Extensão do R2GLMM de Nakagawa & Schielzeth para modelos de declives aleatórios." Métodos em Ecologia e Evolução (2014).
O método is também pode ser implementado usando a função r.squaredGLMM no pacote MuMIn, que fornece a seguinte descrição do método.
Para modelos de efeitos mistos, pode ser categorizado em dois tipos. A marginal representa a variação explicada por fatores fixos e é definida como: condicional é interpretado como variância explicada por fatores fixos e aleatórios (ou seja, o modelo inteiro) e é calculado de acordo com a equação: onde é a variação dos componentes do efeito fixo e é a soma de todos os componentes de variação (grupo, indivíduo, etc.),R 2 R G L M M ( m ) 2 = σ 2 f R2RGLMM(c)2=(σ 2 f +∑(σ 2 l ))
é a variação devido à dispersão aditiva e é a variação específica da distribuição.
Na minha análise, estou analisando dados longitudinais e estou interessado principalmente na variação explicada pelos efeitos fixos no modelo
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