Dans les modèles lm
et glm
, j'utilise les fonctions coef
et confint
pour atteindre l'objectif:
m = lm(resp ~ 0 + var1 + var1:var2) # var1 categorical, var2 continuous
coef(m)
confint(m)
Maintenant, j'ai ajouté un effet aléatoire au modèle - utilisé des modèles à effets mixtes en utilisant la fonction lmer
du paquetage lme4. Mais alors, les fonctions coef
et confint
ne fonctionnent plus pour moi!
> mix1 = lmer(resp ~ 0 + var1 + var1:var2 + (1|var3))
# var1, var3 categorical, var2 continuous
> coef(mix1)
Error in coef(mix1) : unable to align random and fixed effects
> confint(mix1)
Error: $ operator not defined for this S4 class
J'ai essayé de google et d'utiliser la documentation mais sans résultat. S'il te plait, oriente moi dans la bonne direction.
EDIT: Je me demandais aussi si cette question s’inscrivait mieux dans https://stats.stackexchange.com/ mais j’estime qu’elle est plus technique que statistique, j’en ai donc conclu qu’elle convenait mieux ici (SO) ... que faire? tu penses?
Deux nouveaux packages, lmerTest et lsmeans , permettent de calculer des limites de confiance de 95% pour les sorties lmer
et glmer
. Peut-être que vous pouvez examiner ces? Et coefplot2 , je pense pouvoir le faire aussi (bien que, comme le souligne Ben, ci-dessous, de manière peu sophistiquée, à partir des erreurs standard sur les statistiques de Wald, par opposition aux approximations de Kenward-Roger et/ou Satterthwaite df dans lmerTest
et lsmeans
) ... Dommage qu'il n'y ait toujours pas de fonctions de traçage intégrées dans le package lsmeans
(comme dans le package effects()
, qui renvoie également des limites de confiance de 95% sur les objets lmer
et glmer
mais le fait en remettant en place un modèle sans aucun des facteurs aléatoires, ce qui est évidemment pas correct).
Je suggère que vous utilisiez le bon vieux temps (dans le paquet nlme). Il a une configuration, et si vous avez besoin d’une configuration des contrastes, il existe une série de choix (estimable dans les modèles généraux, contraste dans les contrastes, total dans Multcomp).
Pourquoi les valeurs p et la confint sont absentes dans lmer: voir http://finzi.psych.upenn.edu/R/Rhelp02a/archive/76742.html .
En supposant une approximation normale pour les effets fixes (ce que confint aurait également fait), nous pouvons obtenir des intervalles de confiance de 95% en
estimation + 1,96 * erreur type.
Ce qui suit ne s'applique pas aux composantes de la variance/effets aléatoires.
library("lme4")
mylm <- lmer(Reaction ~ Days + (Days|Subject), data =sleepstudy)
# standard error of coefficient
days_se <- sqrt(diag(vcov(mylm)))[2]
# estimated coefficient
days_coef <- fixef(mylm)[2]
upperCI <- days_coef + 1.96*days_se
lowerCI <- days_coef - 1.96*days_se
Vous ne savez pas exactement quand il a été ajouté, mais maintenant, confint () est implémenté dans lme4 . Par exemple, l'exemple suivant fonctionne:
library(lme4)
m = lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
confint(m)
Pour trouver le coefficient, vous pouvez simplement utiliser la fonction de résumé de lme4
m = lm(resp ~ 0 + var1 + var1:var2) # var1 categorical, var2 continuous
m_summary <- summary(m)
avoir tous les coefficients:
m_summary$coefficient
Si vous voulez l'intervalle de confiance, multipliez l'erreur standard par 1.96:
CI <- m_summary$coefficient[,"Std. Error"]*1.96
print(CI)