Question:
Valeurs p par paires non corrigées pour une ANOVA unidirectionnelle?
scw
2011-06-02 15:45:22 UTC
view on stackexchange narkive permalink

J'effectue une ANOVA unidirectionnelle relativement simple dans le cadre d'un exercice en classe. Je voudrais obtenir des valeurs p non corrigées par paires de R, afin de pouvoir faire un test FDR séquentiel dans un autre package (je me rends compte qu'il existe également des packages FDR dans R). J'ai configuré mon ANOVA comme indiqué ci-dessous, et cela fonctionne bien, produit des résultats, mais je n'arrive pas à comprendre comment récupérer les valeurs p brutes et non corrigées. En fin de compte, j'aimerais faire les tests par paires pour FDR et Bonferroni séquentiel dans R, mais cela semble être une première étape.

Cela ressemble à pairwiseCI ou multcomp pourrait m'amener là où j'essaie d'aller, mais j'ai du mal à déterminer lequel fera ce que je cherche.

  R> head (d10 ) temps race1 27.4 type.A2 18.3 type.A3 24.3 type.B4 19.6 type.B5 21.6 type.C6 30.3 type.Da10 <- aov (temps ~ race, données = d10) # rapporte la signification globale, mais rien sur les paires summary (a10) # signale uniquement les valeurs corrigéesTukeyHSD (a10)  
Trois réponses:
#1
+8
Aaron left Stack Overflow
2011-06-02 19:57:17 UTC
view on stackexchange narkive permalink

Pour le package multcomp , consultez la page d'aide de glht ; vous souhaitez utiliser l'option "Tukey" ; cela n'utilise pas réellement la correction de Tukey, il configure simplement toutes les comparaisons par paires. Dans la section d'exemple, il y a un exemple qui fait exactement ce que vous voulez.

Ceci calcule les estimations et les SE pour chaque comparaison mais ne fait pas les p-values; pour cela, vous avez besoin de summary.glht ; sur la page d'aide pour cela, notez en particulier le paramètre test , qui vous permet de définir le test réel qui est exécuté. Pour faire des p-values ​​multi-ajustées, vous utilisez la fonction ajusté pour ce paramètre, et pour ne pas multiplier-ajuster, vous utilisez test = ajusté ("aucun") ( ce qui n'est pas mentionné spécifiquement dans la page d'aide, bien qu'il indique que cela prend l'une des méthodes de p.adjust , où vous trouverez none .)

Vous pouvez également calculer les estimations et les SE à la main en utilisant la multiplication matricielle, puis obtenir les valeurs p comme vous le souhaitez; c'est ce que fait la fonction glht dans les coulisses. Pour obtenir les matrices dont vous avez besoin pour commencer, vous utiliseriez coef et vcov.

Je n'ai pas mis le code complet comme vous dites que c'est pour un projet de classe (merci d'être honnête, au fait!) et la politique ici est de fournir des conseils utiles mais pas des solutions.

Merci pour la réponse détaillée! Re: devoirs; il s'agit d'un cours d'études supérieures et ce travail n'est pas rendu, je sais comment faire la même chose dans le JMP utilisé par la classe, mais je voudrais m'en tenir à R autant que possible.
Merci pour la mise à jour sur le statut des devoirs. Si vous avez besoin d'une aide plus spécifique, faites-le nous savoir.
#2
+7
chl
2011-06-02 16:06:53 UTC
view on stackexchange narkive permalink

Vous pouvez utiliser pairwise.t.test () avec l'une des options disponibles pour la correction de comparaisons multiples dans l'argument p.adjust.method = ; voir help (p.adjust) pour plus d'informations sur l'option disponible pour les méthodes en une seule étape et en descente (par exemple, BH pour FDR ou bonf pour Bonferroni). À noter, vous pouvez directement donner à p.adjust () un vecteur de p-values ​​brutes et cela vous donnera les p-values ​​corrigées.

Donc, je suggérerais de lancez quelque chose comme

  pairwise.t.test (time, race, p.adjust.method = "none") # non corrigé p-valuepairwise.t.test (time, race, p.adjust .method = "bonf") # Bonferroni p-value  

La première commande vous donne des valeurs p basées sur des tests t sans contrôler FWER ou FDR. Vous pouvez ensuite utiliser la commande de votre choix pour obtenir des valeurs p corrigées.

Par son nom, on pourrait penser qu'il calcule chaque test t par paire séparément (je l'ai fait, de toute façon), mais il utilise en fait le SD poolé par défaut, donc le résultat est le même que l'utilisation du résultat anova.
@Aaron Vous avez raison, il utilise le pool SD par défaut, mais il peut être désactivé. Nous pourrions également construire chaque contraste que nous voulons avec une algèbre simple. J'aime votre réponse btw (+1).
#3
+2
tim
2015-08-17 02:59:59 UTC
view on stackexchange narkive permalink
  bibliothèque (multcomp) df = mtcarsdf $ am = as.factor (df $ am) m1 <- aov (mpg ~ am, data = df) ht = glht (m1, linfct = mcp (am = " Tukey ")) summary (ht, test = ajusté (" aucun ")) # Hypothèses linéaires: # Estimation Std. Valeur d'erreur t Pr (> | t |) # 1 - 0 == 0 7.245 1.764 4.106 0.000285 ***  


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...