Aov modelindeki değişkenlerin sırasını değiştirirken p değerleri neden önemli?


10

482 gözlemden oluşan bir veri setim var.

data=Populationfull

3 SNP için bir genotip ilişkilendirme analizi yapacağım. Benim analiz için bir model oluşturmak için çalışıyorum ve aov (y ~ x, veri = ...) kullanarak Im. Bir özellik için, modele dahil ettiğim birkaç sabit efekt ve ortak değişkenim var, şöyle:

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

Modeldeki değişkenlerin sırasını değiştirirsem farklı p değerlerine sahip olduğumu keşfettim, lütfen aşağıya bakın.

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

Neden değişkenlerin / faktörlerin / değişkenlerin / fixedeffects'in (?) Hangi sırayla kodlandığına bağlı olarak farklı p değerleri alıyorum? Bunun için "düzeltmenin" bir yolu var mı? Yanlış model kullanıyorum olabilir mi? R'de hala oldukça yeniyim, bu yüzden bana bu konuda yardımcı olabilirseniz, cevabı hehe anlayabilmek için lütfen gerçekten basit tutun ... Teşekkür ederim, umarım birisi bunu anlamama yardımcı olabilir!


3
PopulationfullSorununuzu tekrarlanabilir hale getirmek için lütfen bazı örnek veriler sağlayın . aov()Yardım sayfasındaki örnekte bu gerçekleşmez . summary(aov(yield ~ block + N + P + K, npk)); summary(aov(yield ~ K + P + block + N , npk))
MrFlick

Tüm değerler alanı değiştiği için p değerleri değişiyor. ilk koşun Earnings 1 109.01 109.01 782.838 < 2e-16 ***, ikinci koşun Earnings 1 46.64 46.64 334.903 < 2e-16 ***. Sonuçlarınız aynı değil. Değişkenleri yeniden sıralamaktan daha fazlasını yapmadığınızı kontrol ederek başlayın.

1
AYRICA: ikinci modelde, Kazanç değil Kazanç kullanın ... farklı adların iki değişkeni varsa, bu, SO soru alanına kopyalamada bir yazım hatası değilse bir sorun olabilir.

Evet, değerler değişiyor ama neden? Her iki modelde de aynı veri çerçevesinden tam olarak aynı sütunları kullandım (ikinci modelde Kazançlar vs Kazanmak şey sadece yanlış yazdım, şimdi düzelttim).
Rbeginner

1
Bu oluyor çünkü dengesiz bir tasarıma sahipsiniz. Bu forumda veya yalnızca Google "dengesiz ANOVA in R" için arama yaparsanız bu konuda çok yardım bulacaksınız. carPakete bakmanızı tavsiye ederim - değişkenlerin sırasına bağlı olmayan Tip II ve Tip III ANOVA uygularken Tip I ANOVA da uygular aov.
Yavaş loris

Yanıtlar:


15

Sorun aov(), varsayılan önem testini gerçekleştirme biçiminden kaynaklanmaktadır . Testin değişkenlerin modelinizde belirtildiği sırayla yapıldığı "Tip I" ANOVA analizini kullanır. Bu nedenle ilk örnekte, ne kadar varyansın açıklanacağını belirler sexve önemini test eder, ardından kalan varyansın hangi kısmı tarafından açıklanır DMRT3ve kalan varyans açısından önemini test eder vb. İkinci örnekte, DMRT3sonra değerlendirilir Voltsec, Autosecve sexbu sırayla, yani, kalan az varyansı, orada DMRT3açıklamak.

İki tahmin değişkeni ilişkilendirilirse, modele girilen ilk tam "kredi" alır, ikincisi "ile" açıklanmak için daha az sapma bırakır, bu da birinci olsa bile "istatistiksel olarak anlamlı" görünebilir. değil, işlevsel olarak. Bu soru ve cevabı farklı ANOVA analiz türlerini açıklamaktadır.

Bunu aşmanın bir yolu, kendinizi klasik ANOVA'nın darlıklarından çıkarmak ve lm()R yerine , basit bir doğrusal model kullanmaktır aov(). Bu, tüm tahmin edicileri bir kerede "düzeltmek" için paralel olarak etkili bir şekilde analiz eder. Bu durumda, iki ilişkili öngörücü, tahmini regresyon katsayılarında büyük standart hatalara sahip olabilir ve katsayıları popülasyondan farklı örnekler arasında farklılık gösterebilir, ancak en azından değişkenleri model spesifikasyonuna girme sırası önemli olmayacaktır.

Yanıt değişkeniniz adından da Startsanlaşılacağı gibi bir tür sayım değişkeni ise, p- değeri yorumunun gerektirdiği gibi artıkların normal olarak dağılması olası olmadığından muhtemelen ANOVA kullanmamalısınız . Sayım değişkenleri, diğer artık hata yapıları için glm()genelleme olarak düşünülebilen genelleştirilmiş doğrusal modellerle (örneğin, R'de) daha iyi ele alınmaktadır lm().

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.