obtenir des degrés de liberté de lmer

11

J'ai adapté un modèle lmer avec les éléments suivants (bien que la sortie soit composée):

Random effects:
 Groups        Name        Std.Dev.
 day:sample (Intercept)    0.09
 sample        (Intercept) 0.42
 Residual                  0.023 

J'aimerais vraiment construire un intervalle de confiance pour chaque effet en utilisant la formule suivante:

(n-1)s2χα/2,n-12,(n-1)s2χ1-α/2,n-12

Existe-t-il un moyen de sortir facilement les degrés de liberté?

user1357015
la source
1
Je pense que vous voulez vérifier lmerTest . Il existe un certain nombre d'approximations pour approximer le df dans un modèle à effets mixtes pour les effets fixes (par exemple , Satterthwaite , Kenward-Roger, etc.) Pour votre cas, il me semble que vous compliquez votre vie de manière excessive. Vous supposez que chaque effet est gaussien. Utilisez simplement l'écart-type pour obtenir l'intervalle de confiance de votre choix.
usεr11852
3
@ usεr11852 Dans un modèle à effets mixtes, vous supposez que chaque effet est gaussien, mais le paramètre est la variance de la distribution gaussienne, pas la moyenne. La distribution de son estimateur sera donc très biaisée, et l'intervalle de confiance normal ± ~ 2 écarts-types ne sera pas approprié.
Karl Ove Hufthammer
1
@KarlOveHufthammer: Vous avez raison de le souligner; Je vois ce que vous (et probablement l'OP) voulez dire. Je pensais qu'il était préoccupé par les moyens et / ou les réalisations des effets aléatoires en mentionnant les degrés de liberté.
usεr11852
les degrés de liberté sont "problématiques" pour les modèles mixtes, voir: stat.ethz.ch/pipermail/r-help/2006-May/094765.html et stats.stackexchange.com/questions/84268/…
Tim

Réponses:

17

Je préfère simplement créer des intervalles de confiance de vraisemblance de profil . Ils sont fiables et très faciles à calculer à l'aide du package 'lme4'. Exemple:

> library(lme4)
> fm = lmer(Reaction ~ Days + (Days | Subject),
            data=sleepstudy)
> summary(fm)
[]
Random effects:
 Groups   Name        Variance Std.Dev. Corr
 Subject  (Intercept) 612.09   24.740       
          Days         35.07    5.922   0.07
 Residual             654.94   25.592       

Vous pouvez maintenant calculer les intervalles de confiance de vraisemblance du profil avec la confint()fonction:

> confint(fm, oldNames=FALSE)
Computing profile confidence intervals ...
                               2.5 %  97.5 %
sd_(Intercept)|Subject        14.381  37.716
cor_Days.(Intercept)|Subject  -0.482   0.685
sd_Days|Subject                3.801   8.753
sigma                         22.898  28.858
(Intercept)                  237.681 265.130
Days                           7.359  13.576

Vous pouvez également utiliser le bootstrap paramétrique pour calculer les intervalles de confiance. Voici la syntaxe R (en utilisant l' parmargument pour restreindre les paramètres pour lesquels nous voulons des intervalles de confiance):

> confint(fm, method="boot", nsim=1000, parm=1:3)
Computing bootstrap confidence intervals ...
                              2.5 % 97.5 %
sd_(Intercept)|Subject       11.886 35.390
cor_Days.(Intercept)|Subject -0.504  0.929
sd_Days|Subject               3.347  8.283

Les résultats varient naturellement quelque peu pour chaque cycle. Vous pouvez augmenter nsimpour diminuer cette variation, mais cela augmentera également le temps nécessaire pour estimer les intervalles de confiance.

Karl Ove Hufthammer
la source
1
Bonne réponse (+1). Je mentionnerais également le fait que l'on peut également obtenir des CI à partir du bootstrap paramétrique dans ce cas. Ce fil contient une discussion très intéressante sur la question.
usεr11852
@ usεr11852 Merci pour la suggestion. J'ai maintenant ajouté un exemple utilisant le bootstrap paramétrique.
Karl Ove Hufthammer
6

Les degrés de liberté pour les modèles mixtes sont "problématiques". Pour en savoir plus, vous pouvez consulter le lmer, les valeurs p et tout ce post de Douglas Bates. La FAQ r-sig-mixed-models résume également les raisons pour lesquelles elle est gênante:

  • En général, il n'est pas clair que la distribution nulle du rapport calculé des sommes des carrés soit vraiment une distribution F, pour tout choix de degrés de liberté dénominateurs. Bien que cela soit vrai pour des cas spéciaux qui correspondent à des plans expérimentaux classiques (imbriqués, split-plot, bloc randomisé, etc.), cela n'est apparemment pas vrai pour des plans plus complexes (déséquilibrés, GLMM, corrélation temporelle ou spatiale, etc.).
  • Pour chaque recette simple de degrés de liberté qui a été suggérée (trace de la matrice du chapeau, etc.), il semble y avoir au moins un contre-exemple assez simple où la recette échoue gravement.
  • D'autres schémas d'approximation df qui ont été suggérés (Satterthwaite, Kenward-Roger, etc.) seraient apparemment assez difficiles à implémenter dans lme4 / nlme,
    (...)
  • Parce que les principaux auteurs de lme4 ne sont pas convaincus de l'utilité de l'approche générale du test en référence à une distribution nulle approximative, et à cause de la surcharge de quiconque fouille dans le code pour activer la fonctionnalité pertinente (comme un correctif ou un ajout -on), cette situation est peu susceptible de changer à l'avenir.

La FAQ donne également quelques alternatives

  • utiliser MASS :: glmmPQL (utilise les anciennes règles nlme approximativement équivalentes aux règles SAS «interne-externe») pour les GLMM, ou (n) lme pour les LMM
  • Devinez le dénominateur df à partir des règles standard (pour les conceptions standard) et appliquez-les aux tests t ou F
  • Exécutez le modèle dans lme (si possible) et utilisez le dénominateur df indiqué ici (qui suit une règle simple `` intérieur-extérieur '' qui devrait correspondre à la réponse canonique pour les plans simples / orthogonaux), appliqué aux tests t ou F. Pour la spécification explicite des règles que lme utilise, voir page 91 de Pinheiro et Bates - cette page est disponible sur Google Books
  • utiliser SAS, Genstat (AS-REML), Stata?
  • Supposons que le dénominateur infini df (c.-à-d. Test Z / chi carré plutôt que t / F) si le nombre de groupes est grand (> 45? Diverses règles empiriques concernant la taille "approximativement infinie" ont été posées, y compris [dans Angrist et Pischke's '' Mostly Harmless Econometrics ''], 42 (en hommage à Douglas Adams)

Mais si vous êtes intéressé par les intervalles de confiance, il existe de meilleures approches, par exemple basées sur le bootstrap comme suggéré par Karl Ove Hufthammer dans sa réponse, ou celles proposées dans la FAQ.

Tim
la source
"Devinez le dénominateur df à partir des règles standard (pour les conceptions standard) et appliquez-les aux tests t ou F"; J'aimerais vraiment que quelqu'un puisse développer cela. Par exemple, pour un plan imbriqué (p. Ex. Patients vs témoins, plusieurs échantillons par sujet; l'ID du sujet étant l'effet aléatoire), comment obtenir les degrés de liberté pour un tel plan?
Arnaud A