Estoy tratando de analizar el efecto del año en el registro variable para un grupo particular de individuos (tengo 3 grupos). El modelo más simple:
> fix1 = lm(logInd ~ 0 + Group + Year:Group, data = mydata)
> summary(fix1)
Call:
lm(formula = logInd ~ 0 + Group + Year:Group, data = mydata)
Residuals:
Min 1Q Median 3Q Max
-5.5835 -0.3543 -0.0024 0.3944 4.7294
Coefficients:
Estimate Std. Error t value Pr(>|t|)
Group1 4.6395740 0.0466217 99.515 < 2e-16 ***
Group2 4.8094268 0.0534118 90.044 < 2e-16 ***
Group3 4.5607287 0.0561066 81.287 < 2e-16 ***
Group1:Year -0.0084165 0.0027144 -3.101 0.00195 **
Group2:Year 0.0032369 0.0031098 1.041 0.29802
Group3:Year 0.0006081 0.0032666 0.186 0.85235
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.7926 on 2981 degrees of freedom
Multiple R-squared: 0.9717, Adjusted R-squared: 0.9716
F-statistic: 1.705e+04 on 6 and 2981 DF, p-value: < 2.2e-16
Podemos ver que el Grupo 1 está disminuyendo significativamente, los Grupos 2 y 3 aumentan, pero no significativamente.
Claramente, el individuo debe ser un efecto aleatorio, por lo que presento un efecto de intercepción aleatoria para cada individuo:
> mix1a = lmer(logInd ~ 0 + Group + Year:Group + (1|Individual), data = mydata)
> summary(mix1a)
Linear mixed model fit by REML
Formula: logInd ~ 0 + Group + Year:Group + (1 | Individual)
Data: mydata
AIC BIC logLik deviance REMLdev
4727 4775 -2356 4671 4711
Random effects:
Groups Name Variance Std.Dev.
Individual (Intercept) 0.39357 0.62735
Residual 0.24532 0.49530
Number of obs: 2987, groups: Individual, 103
Fixed effects:
Estimate Std. Error t value
Group1 4.6395740 0.1010868 45.90
Group2 4.8094268 0.1158095 41.53
Group3 4.5607287 0.1216522 37.49
Group1:Year -0.0084165 0.0016963 -4.96
Group2:Year 0.0032369 0.0019433 1.67
Group3:Year 0.0006081 0.0020414 0.30
Correlation of Fixed Effects:
Group1 Group2 Group3 Grp1:Y Grp2:Y
Group2 0.000
Group3 0.000 0.000
Group1:Year -0.252 0.000 0.000
Group2:Year 0.000 -0.252 0.000 0.000
Group3:Year 0.000 0.000 -0.252 0.000 0.000
Tuvo un efecto esperado: el SE de las pendientes (coeficientes Grupo 1-3: Año) ahora es más bajo y el SE residual también es más bajo.
Los individuos también son diferentes en pendiente, así que también introduje el efecto de pendiente aleatorio:
> mix1c = lmer(logInd ~ 0 + Group + Year:Group + (1 + Year|Individual), data = mydata)
> summary(mix1c)
Linear mixed model fit by REML
Formula: logInd ~ 0 + Group + Year:Group + (1 + Year | Individual)
Data: mydata
AIC BIC logLik deviance REMLdev
2941 3001 -1461 2885 2921
Random effects:
Groups Name Variance Std.Dev. Corr
Individual (Intercept) 0.1054790 0.324775
Year 0.0017447 0.041769 -0.246
Residual 0.1223920 0.349846
Number of obs: 2987, groups: Individual, 103
Fixed effects:
Estimate Std. Error t value
Group1 4.6395740 0.0541746 85.64
Group2 4.8094268 0.0620648 77.49
Group3 4.5607287 0.0651960 69.95
Group1:Year -0.0084165 0.0065557 -1.28
Group2:Year 0.0032369 0.0075105 0.43
Group3:Year 0.0006081 0.0078894 0.08
Correlation of Fixed Effects:
Group1 Group2 Group3 Grp1:Y Grp2:Y
Group2 0.000
Group3 0.000 0.000
Group1:Year -0.285 0.000 0.000
Group2:Year 0.000 -0.285 0.000 0.000
Group3:Year 0.000 0.000 -0.285 0.000 0.000
Pero ahora, al contrario de lo esperado, el SE de las pendientes (coeficientes Grupo 1-3: Año) ahora es mucho más alto, ¡incluso más alto que sin ningún efecto aleatorio!
¿Cómo es esto posible? ¡Esperaría que el efecto aleatorio "comiera" la variabilidad inexplicada y aumente la "seguridad" de la estimación!
Sin embargo, el SE residual se comporta como se esperaba: es más bajo que en el modelo de intercepción aleatoria.
Aquí están los datos si es necesario.
Editar
Ahora me di cuenta de un hecho asombroso. Si hago la regresión lineal para cada individuo por separado y luego ejecuto ANOVA en las pendientes resultantes, ¡obtengo exactamente el mismo resultado que el modelo de pendiente aleatorio! ¿Sabrías por qué?
indivSlope = c()
for (indiv in 1:103) {
mod1 = lm(logInd ~ Year, data = mydata[mydata$Individual == indiv,])
indivSlope[indiv] = coef(mod1)['Year']
}
indivGroup = unique(mydata[,c("Individual", "Group")])[,"Group"]
anova1 = lm(indivSlope ~ 0 + indivGroup)
summary(anova1)
Call:
lm(formula = indivSlope ~ 0 + indivGroup)
Residuals:
Min 1Q Median 3Q Max
-0.176288 -0.016502 0.004692 0.020316 0.153086
Coefficients:
Estimate Std. Error t value Pr(>|t|)
indivGroup1 -0.0084165 0.0065555 -1.284 0.202
indivGroup2 0.0032369 0.0075103 0.431 0.667
indivGroup3 0.0006081 0.0078892 0.077 0.939
Residual standard error: 0.04248 on 100 degrees of freedom
Multiple R-squared: 0.01807, Adjusted R-squared: -0.01139
F-statistic: 0.6133 on 3 and 100 DF, p-value: 0.6079
Aquí están los datos si es necesario.
fuente
Group
Group
:Year
logInd ~ Year*Group
, solo los coeficientes están en forma diferente, nada más. Depende de su gusto y qué forma de coeficientes le guste, nada más. No hay exclusión del "efecto principal del año" en mi primer modelo mientras escribe ...logInd ~ Year*Group
hace exactamente lo mismo, elYear
coeficiente no es el efecto principal, sino el Grupo1: Año.Respuestas:
Creo que el problema es con sus expectativas :) Tenga en cuenta que cuando agregó una intercepción aleatoria para cada individuo, el error estándar de las intercepciones aumentó. Como cada individuo puede tener su propia intercepción, el promedio grupal es menos seguro. Lo mismo sucedió con la pendiente aleatoria: ya no está estimando una pendiente común (dentro del grupo), sino el promedio de pendientes variables.
EDITAR: ¿Por qué un modelo mejor no da una estimación más precisa?
Pensemos al revés: ¿por qué el modelo inicial subestima el error estándar? Supone la independencia de las observaciones que no son independientes. El segundo modelo relaja esa suposición (de una manera que afecta las intersecciones), y el tercero la relaja aún más.
EDIT 2: relación con muchos modelos específicos del paciente
Su observación es una propiedad conocida (y si tuviera solo dos años, entonces el modelo de efectos aleatorios sería equivalente a una prueba t pareada). No creo que pueda manejar una prueba real, pero tal vez escribir los dos modelos aclarará la relación. Ignoremos la variable de agrupación, ya que solo complicaría la notación. Usaré letras griegas para efectos aleatorios y letras latinas para efectos fijos.
El modelo de efectos aleatorios es ( - subject, - replicate dentro de subject): donde y .yo j
Cuando ajusta modelos separados para cada sujeto, entonces donde .ϵ i j ∼ N ( 0 , σ 2 i )
[Nota: lo siguiente es realmente solo un saludo manual:]
Puede ver muchas similitudes entre estos dos modelos con correspondiente a y a . El promedio de corresponde a , porque los efectos aleatorios promedian 0. La correlación sin restricciones de la intersección aleatoria y la pendiente lleva al hecho de que los modelos solo pueden ajustarse por separado. No estoy seguro de cómo la suposición única se específico del , pero supongo que detecta la diferencia. a + α i b i b + β i b i b σ σ i α iunayo a + αyo siyo b + βyo siyo si σ σyo αyo
fuente