J'utilise la bibliothèque R 'multcomp' ( http://cran.r-project.org/web/packages/multcomp/ ) pour calculer le test de Dunnett. J'utilise le script ci-dessous:
Group <- factor(c("A","A","B","B","B","C","C","C","D","D","D","E","E","F","F","F"))
Value <- c(5,5.09901951359278,4.69041575982343,4.58257569495584,4.79583152331272,5,5.09901951359278,4.24264068711928,5.09901951359278,5.19615242270663,4.58257569495584,6.16441400296898,6.85565460040104,7.68114574786861,7.07106781186548,6.48074069840786)
data <- data.frame(Group, Value)
aov <- aov(Value ~ Group, data)
summary(glht(aov, linfct=mcp(Group="Dunnett")))
Maintenant, si j'exécute ce script plusieurs fois dans la console R, j'obtiens à chaque fois des résultats très légèrement différents. Voici un exemple:
Simultaneous Tests for General Linear Hypotheses
Multiple Comparisons of Means: Dunnett Contrasts
Fit: aov(formula = Value ~ Group, data = data)
Linear Hypotheses:
Estimate Std. Error t value Pr(>|t|)
B - A == 0 -0.35990 0.37009 -0.972 0.76545
C - A == 0 -0.26896 0.37009 -0.727 0.90019
D - A == 0 -0.09026 0.37009 -0.244 0.99894
E - A == 0 1.46052 0.40541 3.603 0.01710 *
F - A == 0 2.02814 0.37009 5.480 0.00104 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)
Et voici un autre:
Simultaneous Tests for General Linear Hypotheses
Multiple Comparisons of Means: Dunnett Contrasts
Fit: aov(formula = Value ~ Group, data = data)
Linear Hypotheses:
Estimate Std. Error t value Pr(>|t|)
B - A == 0 -0.35990 0.37009 -0.972 0.7654
C - A == 0 -0.26896 0.37009 -0.727 0.9001
D - A == 0 -0.09026 0.37009 -0.244 0.9989
E - A == 0 1.46052 0.40541 3.603 0.0173 *
F - A == 0 2.02814 0.37009 5.480 <0.001 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)
Comme vous pouvez le voir, les deux résultats ci-dessus diffèrent très légèrement, mais il suffit de déplacer le groupe final (F) de deux étoiles à trois étoiles, ce que je trouve inquiétant.
J'ai plusieurs questions à ce sujet:
- Pourquoi cela arrive-t-il?! Sûrement, si vous mettez les mêmes données à chaque fois, vous devriez obtenir les mêmes données.
- Y a-t-il une sorte de nombre aléatoire utilisé quelque part dans le calcul de Dunnett?
- Cette légère variation à chaque fois est-elle réellement un problème?
la source
Vous avez raison, une génération de nombres aléatoires est impliquée et les calculs varient d'une exécution à l'autre. Le coupable n'est en fait pas la procédure de Dunnett, mais la distribution t à plusieurs variables requise pour l'ajustement en une seule étape.
Le code suivant montre un exemple de calculP( X< 0 ) avec un vecteur à 5 dimensions X avoir plusieurs variables T5 distribution avec corrélation échangeable:
Si cela vous inquiète, appelez simplement
set.seed
avec n'importe quel argument avant le calcul pour le rendre exactement reproductible.Soit dit en passant, il y a un accusé de réception et une quantification de l'erreur dans la sortie de
glht
:la source