Estou usando a biblioteca R 'multcomp' ( http://cran.r-project.org/web/packages/multcomp/ ) para calcular o teste de Dunnett. Estou usando o script abaixo:
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")))
Agora, se eu executar esse script pelo R Console várias vezes, obterá resultados ligeiramente diferentes a cada vez. Aqui está um exemplo:
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)
E aqui está outra:
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 você pode ver, os dois resultados acima diferem um pouco, mas é suficiente mover o grupo final (F) de duas estrelas para três estrelas, o que acho preocupante.
Eu tenho várias perguntas sobre isso:
- Por que isso está acontecendo?! Certamente, se você colocar os mesmos dados a cada vez, deverá obtê-los.
- Existe algum tipo de número aleatório sendo usado em algum lugar no cálculo de Dunnett?
- Essa pequena variação de cada vez é realmente um problema?
fonte
Você está correto, há uma geração de número aleatório envolvida e os cálculos variam de execução para execução. O culpado, na verdade, não é o procedimento de Dunnett, mas a distribuição multivariada necessária para o ajuste em uma única etapa.
O código a seguir mostra um exemplo de cálculoP( X< 0 ) com um vetor tridimensional X tendo multivariada T5 distribuição com correlação permutável:
Se isso for motivo de preocupação, basta ligar
set.seed
com qualquer argumento antes do cálculo para torná-lo exatamente reprodutível.A propósito, há um reconhecimento e quantificação do erro na saída de
glht
:fonte