Я использую библиотеку R 'multcomp' ( http://cran.r-project.org/web/packages/multcomp/ ) для вычисления теста Даннетта . Я использую скрипт ниже:
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")))
Теперь, если я запускаю этот сценарий через консоль R несколько раз, я получаю очень немного разные результаты каждый раз. Вот один пример:
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)
И вот еще:
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)
Как видите, приведенные выше два результата отличаются незначительно, но этого достаточно, чтобы переместить итоговую группу (F) с двух звезд на три звезды, что меня беспокоит.
У меня есть несколько вопросов по этому поводу:
- Почему это происходит?! Конечно, если вы вводите одни и те же данные каждый раз, вы должны получать одни и те же данные.
- Есть ли какое-то случайное число, используемое где-то в расчете Даннетта?
- Является ли это небольшое изменение каждый раз на самом деле проблемой?
источник
Вы правы, речь идет о генерации случайных чисел, и это приводит к разным расчетам. Виновником на самом деле является не процедура Даннета, а многомерное распределение, необходимое для одношаговой корректировки.
Если это вызывает озабоченность, просто позвоните
set.seed
с любым аргументом перед вычислением, чтобы сделать его точно воспроизводимым.Кстати, есть подтверждение и количественное определение ошибки в выводе
glht
:источник