Estoy usando la biblioteca R 'multcomp' ( http://cran.r-project.org/web/packages/multcomp/ ) para calcular la prueba de Dunnett. Estoy usando el script a continuación:
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")))
Ahora, si ejecuto este script a través de la Consola R varias veces, obtengo resultados muy diferentes cada vez. Aquí hay un ejemplo:
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)
Y aquí hay otro:
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)
Como puede ver, los dos resultados anteriores difieren ligeramente, pero es suficiente para mover el grupo final (F) de dos estrellas a tres estrellas, lo que me preocupa.
Tengo varias preguntas con respecto a esto:
- ¡¿Por qué está pasando esto?! Seguramente, si coloca los mismos datos cada vez, debería obtener los mismos datos.
- ¿Hay algún tipo de número aleatorio utilizado en algún lugar del cálculo de Dunnett?
- ¿Es esta ligera variación cada vez realmente un problema?
fuente
Tiene razón, hay una generación de números aleatorios involucrados, y hace que los cálculos varíen de una ejecución a otra. El culpable no es en realidad el procedimiento de Dunnett, sino la distribución t multivariada requerida para el ajuste de un solo paso.
El siguiente código muestra un ejemplo de cálculoPAG( X< 0 ) con un vector de 5 dimensiones X tener multivariante T5 5 distribución con correlación intercambiable:
Si esto le preocupa, simplemente llame
set.seed
con cualquier argumento antes del cálculo para que sea exactamente reproducible.Por cierto, hay un reconocimiento y cuantificación del error en la salida de
glht
:fuente