У меня есть набор данных 482 наблюдений.
data=Populationfull
Я собираюсь сделать анализ ассоциации генотипа для 3 SNP. Я пытаюсь построить модель для моего анализа, и я использую AOV (у ~ х, данные = ...). Для одной черты у меня есть несколько фиксированных эффектов и ковариат, которые я включил в модель, например так:
Starts <- aov(Starts~Sex+DMRT3+Birthyear+Country+Earnings+Voltsec+Autosec, data=Populationfull) summary(Starts) Df Sum Sq Mean Sq F value Pr(>F) Sex 3 17.90 5.97 42.844 < 2e-16 *** DMRT3 2 1.14 0.57 4.110 0.017 * Birthyear 9 5.59 0.62 4.461 1.26e-05 *** Country 1 11.28 11.28 81.005 < 2e-16 *** Earnings 1 109.01 109.01 782.838 < 2e-16 *** Voltsec 1 12.27 12.27 88.086 < 2e-16 *** Autosec 1 8.97 8.97 64.443 8.27e-15 *** Residuals 463 64.48 0.14 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Я обнаружил, что если я изменил порядок переменных в модели, я получил разные значения p, см. Ниже.
Starts2 <- aov(Starts~Voltsec+Autosec+Sex+DMRT3+Birthyear+Country+Earnings, data=Populationfull) summary(Starts2) Df Sum Sq Mean Sq F value Pr(>F) Voltsec 1 2.18 2.18 15.627 8.92e-05 *** Autosec 1 100.60 100.60 722.443 < 2e-16 *** Sex 3 10.43 3.48 24.962 5.50e-15 *** DMRT3 2 0.82 0.41 2.957 0.05294 . Birthyear 9 3.25 0.36 2.591 0.00638 ** Country 1 2.25 2.25 16.183 6.72e-05 *** Earnings 1 46.64 46.64 334.903 < 2e-16 *** Residuals 463 64.48 0.14 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Почему я получаю разные p-значения в зависимости от того, в каком порядке кодируются переменные / факторы / ковариаты / фиксированные эффекты (?)? Есть ли способ «исправить» это? Может быть, я использую не ту модель? Я все еще новичок в R, поэтому, если вы можете помочь мне с этим, пожалуйста, сделайте это по-настоящему простым, чтобы я мог понять ответ, хе-хе ... Спасибо, надеюсь, кто-то может помочь мне понять это!
Earnings 1 109.01 109.01 782.838 < 2e-16 ***
ваш второй запуск Earnings 1 46.64 46.64 334.903 < 2e-16 ***
. Ваши результаты не совпадают. Начните с проверки, чтобы убедиться, что вы сделали не только переупорядочивание переменных.
car
изучить пакет - он реализует ANOVA типа II и типа III, которые не зависят от порядка переменных, в то время aov
как ANOVA типа I.
Populationfull
чтобы сделать вашу проблему воспроизводимой . Этого не происходит с примером соaov()
страницы справки.summary(aov(yield ~ block + N + P + K, npk)); summary(aov(yield ~ K + P + block + N , npk))