Neden ANOVA da Bir Yığın T-Testi Değil
Bir t-testi iki ortalamayı karşılaştırır. Üç veya daha fazla grupla cazip hamle her çifti t-testinden geçirmektir - ve tuzak tam da budur. 0,05 düzeyinde çalıştırılan her test %5 yanlış pozitif riski taşır ve riskler birikir: 4 grupla bu 6 ikili test ve en az bir sahte "anlamlı" sonuç için kabaca %26 olasılık demektir; 5 grupla (10 test) kabaca %40. Saf gürültüden keşifler imal edersiniz.
ANOVA (ANalysis Of VAriance), tek bir p değeriyle tek bir soru sorarak bunu düzeltir: tüm grup ortalamaları aynı mı, yoksa en az biri farklı mı? Adına rağmen ortalamaları karşılaştırır - bunu yalnızca varyansı analiz ederek yapar: grup ortalamaları, grupların içindeki gürültünün açıklayabileceğinden daha fazla yayılmışsa gerçek bir şey oluyor demektir.
aov() ile Tek Yönlü ANOVA
PlantGrowth bunun için yapılmıştır: bir kontrol ve iki tedavi koşulu altındaki bitki ağırlıkları. aov() ile uydurun, sonra - önemli - tabloyu summary() ile yazdırın:
Formülü "weight değişkeni group değişkenine bağlı mı?" diye okuyun. Gruplama değişkeni bir faktör olmalıdır - PlantGrowth$group zaten öyledir, ama gruplarınız sayı olarak kodlanmışsa (dozlar, parti kimlikleri) onları sarın: aov(y ~ factor(dose), ...). Aksi hâlde aov(), grup ortalamalarını karşılaştırmak yerine grup kodları boyunca sessizce bir regresyon çizgisi uydurur - yanlış model, hata mesajı yok.
ANOVA Tablosunu Okumak
Tablo iki satırdır - faktör ve artıklar - ve beş sütundur. Hücre hücre:
Df Sum Sq Mean Sq F value Pr(>F)
group 2 3.766 1.8832 4.846 0.0159
Residuals 27 10.492 0.3886
- Df - serbestlik derecesi. Faktör satırı gruplar − 1 alır (3 grup → 2); artık satırı gözlemler − gruplar alır (30 − 3 = 27). R'nin kastettiğiniz tasarımı gördüğüne dair hızlı bir sağlama kontrolü.
- Sum Sq - iki yığına bölünmüş değişim.
groupsatırı gruplar arası yığındır: grup ortalamalarının genel ortalamadan ne kadar uzakta durduğu.Residualsgrup içi yığındır: bitkilerin kendi grup ortalamaları etrafında ne kadar değiştiği. İkisi birlikte verideki toplam değişimi verir. - Mean Sq - her Sum Sq değerinin kendi Df değerine bölünmesi; değişim yığınlarını karşılaştırılabilir, serbestlik derecesi başına oranlara çevirir. Artık Mean Sq değeri (0.389) gürültü düzeyidir.
- F value - oran:
groupdeğerinin Mean Sq değeri bölüResidualsdeğerinin Mean Sq değeri (1.8832 / 0.3886 ≈ 4.85). Tüm grup ortalamaları gerçekten eşit olsaydı bu oran 1 civarında gezinirdi. F büyüdükçe gruplar arası farklar gürültünün açıklayabileceğini o kadar aşar. - Pr(>F) - p değeri: üç gerçek ortalamanın hepsi özdeş olsaydı bu kadar büyük bir F görme olasılığı. Burada 0.016 - alışıldık 0,05 düzeyinde "hepsi eşit" hipotezini reddetmeye yetecek kadar küçük. Her zamanki gibi bu, sıfır hipotezinin doğru olma olasılığı değildir ve hangi grupların ne kadar farklı olduğu hakkında hiçbir şey söylemez.
Son nokta kritik sınırlamadır: anlamlı bir F, "bir yerde bir fark var" der. Fazlası değil.
Hangi Gruplar Farklı? TukeyHSD()
Takip sorusu bir post-hoc test ister. Tukey'in Honest Significant Difference testi, tüm karşılaştırmalar genelinde aile bazında hata oranını %5'te tutarken her çifti test eder:
Çift başına bir satır, satır başına dört sayı:
- diff - ortalamalardaki tahmini fark (ikinci adı geçen grup eksi birincisi).
- lwr, upr - o fark için %95'lik aile bazında güven aralığı.
- p adj - üç karşılaştırma yapıldığı için zaten düzeltilmiş p değeri.
PlantGrowth için: trt2-trt1 yaklaşık 0.87 fark, p adj ≈ 0.012 ve sıfırdan uzak bir aralık gösterir - tedavi 2, tedavi 1'i geride bırakır. Her iki tedavi-karşı-kontrol satırının (trt1-ctrl, trt2-ctrl) aralıkları sıfırı kapsar ve p adj değerleri 0,05'in epey üstündedir - bu örneklemde hiçbir tedavi kontrolden ayırt edilemez. Genel kural, her yerdeki güven aralıklarını yansıtır: aralık sıfırı dışlıyorsa ⇔ p adj 0,05'in altındadır.
Genel F'in "bir fark var" derken Tukey'in onu tam olarak tek bir çiftte konumlandırdığına dikkat edin - iki adımlı yapı tasarımın tamamıdır: önce dürüst bir genel test, sonra düzgün düzeltilmiş ikili dedektiflik.
İki Yönlü ANOVA: İki Faktör ve Etkileşimleri
İki gruplama değişkeniyle tek bir çağrı ikisini de test eder - artı etkileşip etkileşmediklerini. ToothGrowth, takviye türünü (supp) dozla (0.5, 1, 2 mg - sayısal, dolayısıyla factor() gerekir) çaprazlar:
supp * factor(dose), her biri bir tablo satırı olan üç etkiye açılır:
- supp - dozlar üzerinden ortalandığında takviye türü önemli mi? (Evet: p ≈ 0.0002.)
- factor(dose) - takviyeler üzerinden ortalandığında doz önemli mi? (Kesinlikle: p minicik.)
- supp:factor(dose) - etkileşim: takviyenin etkisi doza bağlı olarak değişiyor mu? Burada p ≈ 0.022 - değişiyor. Portakal suyu düşük dozlarda askorbik asidi geçiyor, ama 2 mg dozunda fark kapanıyor.
Anlamlı bir etkileşim, ana etkilerin üzerindeki bir uyarı etiketidir: "takviye türü önemli" yalnızca ortalamada doğrudur ve ortalama doza bağlı bir hikâyeyi gizler. Etkileşim anlamlı olduğunda, ana etkileri tek başına raporlamak yerine kombinasyonları betimleyin (bir TukeyHSD(fit2, "supp:factor(dose)") ya da grup bazlı özetler üzerinden bir grup ortalamaları tablosu). * yerine + kullanmayı yalnızca bilinçli olarak etkileşimsiz bir model istediğinizde tercih edin.
Varsayımlar - ve Sıralamaya Dayalı Yedek
ANOVA'nın matematiği, pazarlık edilebilirliği azalan sırada üç varsayıma yaslanır:
- Bağımsızlık - gözlemler birbirini etkilemez. Bir ihlali sonradan hiçbir şey düzeltmez; bu, çalışma tasarımının bir özelliğidir.
- Gruplar arasında eşit varyans - artık Mean Sq değeri tek bir havuzlanmış gürültü tahminidir, dolayısıyla grupların yaklaşık olarak eşit derecede gürültülü olması gerekir. Tek satırlık kontrol:
bartlett.test(weight ~ group, data = PlantGrowth)(büyük bir p değeri, eşit olmayan varyansa dair kanıt olmadığı anlamına gelir). - Kabaca normal artıklar - dengeli tasarımlarda ve makul grup büyüklüklerinde en az önem taşıyandır;
residuals(fit)üzerinden artıkların bir histogramına ya da kutu grafiğine göz atın.
Veri ağır çarpık, sıralı ya da aykırı değerlerle dolu olduğunda tek yönlü ANOVA'nın sıralamaya dayalı alternatifi kruskal.test(weight ~ group, data = PlantGrowth) çağrısıdır - wilcox.test() fonksiyonunun çok gruplu kardeşi. Tek satırdır ve sağlamlık karşılığında bir miktar güçten feragat eder.
Buradan Ne Çıkarıyorsunuz
- ANOVA, 3+ grup ortalaması hakkında tek bir p değeriyle tek bir soru sorar - t-testi çokluğunun çözümü.
fit <- aov(y ~ group, data = df); summary(fit)- ve gruplama değişkeni bir faktör olmalıdır.- F değeri gruplar arası sinyalin grup içi gürültüye oranıdır; küçük
Pr(>F)"bir yerde bir fark var" demektir, fazlası değil. TukeyHSD(fit), hangi çiftlerin farklı olduğunu, çoklu karşılaştırma düzeltmesi yerleşik hâlde bulur.a * biki faktörü artı etkileşimlerini uydurur; anlamlı bir etkileşim, ana etkilerin hikâyeyi tek başına anlatmadığı anlamına gelir.- Eşit varyansı (
bartlett.test) ve artık normalliğini kontrol edin;kruskal.test()sıralamaya dayalı yedektir.
Sırada: grup ortalamalarını karşılaştırmaktan bir ilişkiyi modellemeye - lm() ile doğrusal regresyon.
Sıkça Sorulan Sorular
R'de ANOVA nasıl çalıştırılır?
Modeli bir formülle aov() kullanarak uydurun, sonra tabloyu summary() ile yazdırın: fit <- aov(weight ~ group, data = PlantGrowth); summary(fit). Gruplama değişkeni bir faktör olmalıdır - sayı olarak saklanıyorsa formülün içinde factor() ile sarın.
R'de ANOVA tablosu nasıl yorumlanır?
F değeri, gruplar arası değişimin (faktörün Mean Sq değeri) grup içi değişime (artıkların Mean Sq değeri) oranıdır. Pr(>F) p değeridir: küçükse en az bir grup ortalaması diğerlerinden farklıdır - ama tablo hangisi olduğunu söylemez. Öğrenmek için TukeyHSD(fit) çalıştırın.
R'de Tukey HSD ne yapar?
TukeyHSD(fit), çok sayıda karşılaştırma yaptığınız gerçeğini düzelterek her grup çiftini test eder. Her satır tahmini farkı (diff), aile bazında bir güven aralığını (lwr, upr) ve düzeltilmiş bir p değerini (p adj) verir. Aralığı sıfırı dışlayan çiftler anlamlı biçimde farklıdır.
ANOVA yerine neden birden çok t-testi çalıştırmayalım?
Her t-testi kendi yanlış pozitif riskini taşır ve riskler birikir. 5 grupla 10 ikili t-testine ihtiyaç duyardınız ve her birinde 0,05 eşiğiyle en az bir yanlış pozitif olasılığı kabaca %40'a tırmanır. ANOVA önce tek bir genel soru sorar, sonra Tukey HSD ikili karşılaştırmaları hata oranı düzgün denetlenmiş hâlde yapar.