Gruplanmış çiftleri gösteren bir tabloda Tukey HSD post-hoc testinin sonuçları nasıl elde edilir?


13

R ile iki yönlü Anova'mdan sonra TukeyHSD post-hoc testi yapmak istiyorum, önemli bir farkla gruplandırılmış sıralanmış çiftleri içeren bir tablo elde etmek istiyorum. (İfadeler için üzgünüm, istatistikler konusunda hala yeniyim.)

Ben böyle bir şey istiyorum:

resim açıklamasını buraya girin

Yani, yıldızlar veya harflerle gruplandırılmış.

Herhangi bir fikir? Ben fonksiyonunu test HSD.test()gelen agricolaepaketin, ama buna iki yönlü tablo işlemez görünüyor.

Yanıtlar:


22

agricolae::HSD.testFonksiyon tam olarak bunu yapar, ancak bunu bildirmek gerekir Eğer bir etkileşim vadede ilgilendi . Stata veri kümesine sahip bir örnek:

library(foreign)
yield <- read.dta("http://www.stata-press.com/data/r12/yield.dta")
tx <- with(yield, interaction(fertilizer, irrigation))
amod <- aov(yield ~ tx, data=yield)
library(agricolae)
HSD.test(amod, "tx", group=TRUE)

Bu, aşağıda gösterilen sonuçları verir:

Groups, Treatments and means
a        2.1     51.17547 
ab       4.1     50.7529 
abc      3.1     47.36229 
 bcd     1.1     45.81229 
  cd     5.1     44.55313 
   de    4.0     41.81757 
    ef   2.0     38.79482 
    ef   1.0     36.91257 
     f   3.0     36.34383 
     f   5.0     35.69507 

Aşağıdaki komutlarla elde edebileceğimizle eşleşiyorlar:

. webuse yield
. regress yield fertilizer##irrigation
. pwcompare fertilizer#irrigation, group mcompare(tukey)

-------------------------------------------------------
                      |                           Tukey
                      |     Margin   Std. Err.   Groups
----------------------+--------------------------------
fertilizer#irrigation |
                 1 0  |   36.91257   1.116571    AB    
                 1 1  |   45.81229   1.116571      CDE 
                 2 0  |   38.79482   1.116571    AB    
                 2 1  |   51.17547   1.116571         F
                 3 0  |   36.34383   1.116571    A     
                 3 1  |   47.36229   1.116571       DEF
                 4 0  |   41.81757   1.116571     BC   
                 4 1  |    50.7529   1.116571        EF
                 5 0  |   35.69507   1.116571    A     
                 5 1  |   44.55313   1.116571      CD  
-------------------------------------------------------
Note: Margins sharing a letter in the group label are
      not significantly different at the 5% level.

Multcomp Pakette ayrıca ( 'kompakt mektup görüntüler', bakınız sembolik görselleştirilmeleri : Karşılaştırma ve Değerlendirme Kompakt Harf Ekranlar için Algoritmalar önemli kili karşılaştırmalar nedeniyle, tablo biçiminde teşkil etmiyor olsa da daha fazla ayrıntı için). Bununla birlikte, sonuçları kutu grafikleri kullanarak rahatça görüntülemeye izin veren bir çizim yöntemine sahiptir. Sunum sırası da değiştirilebilir (seçenek decreasing=) ve çoklu karşılaştırmalar için çok daha fazla seçeneği vardır. Bu işlevleri genişleten multcompView paketi de vardır .

İşte aynı analiz örneği glht:

library(multcomp)
tuk <- glht(amod, linfct = mcp(tx = "Tukey"))
summary(tuk)          # standard display
tuk.cld <- cld(tuk)   # letter-based display
opar <- par(mai=c(1,1,1.5,1))
plot(tuk.cld)
par(opar)

Aynı mektubu paylaşan tedavi, seçilen düzeyde önemli ölçüde farklı değildir (varsayılan,% 5).

resim açıklamasını buraya girin

Bu arada, şu anda R-Forge'da barındırılan ve umut verici görünen yeni bir proje var: factorplot . Satır ve harf tabanlı ekranların yanı sıra tüm çift karşılaştırmalar için bir matris genel görünümü (seviye grafiği ile) içerir. Bir çalışma belgesi burada bulunabilir: factorplot: GLM'lerde Basit Kontrastların Sunumunun Geliştirilmesi


Bu kapsamlı cevap için çok teşekkür ederim! Birkaç dakika alır almaz bu farklı yöntemleri deneyeceğim. Şerefe!
stragu

'Cld ()' işlevini kullandığımda koymak multcomp package işlevini denedim Hatayı alıyorum 'Hata: sapply (split_names, length) == 2 hepsi DOĞRU değil' Herhangi bir fikir neden?
stragu

1
@chtfn Değişken etiketlerle ilgili bir sorun var gibi görünüyor. Kaynak koduna hızlı bir bakış, bu hata mesajının, bir insert_absorb()çift ​​tedavi çıkarmaya çalıştığını gösterir. Etkileşim teriminizin kodlama düzeyleri için kullandığınız ayırıcıyı değiştirmeye çalışabilirsiniz. Çalışan bir örnek olmadan, ne olduğunu söylemek zor.
chl

Anladım: Genotiplerim ve tedavilerimin isimlerinde puanlarım vardı ve qlht () çift isimlerini bölmek için bir nokta kullandığından, çıldırdı. Tüm yardımlarınız için çok teşekkür ederim, chl! :)
stragu

3
Ben şimdi eklemek zorunda olduğunu bugün fark console=TRUEiçinde HSD.test()dava birisi bu çalışır ve hiçbir sonuç görür de, tabloları almak için. Muhtemelen bir güncellemesi agricolae.
stragu

2

TukeyHSDYardım dosyasına göre, bir faktörün düzeylerinin ortalamaları ile ailede belirtilen kapsama olasılığı arasındaki farklar üzerindeki bir dizi güven aralığını hesaplayan bir işlev vardır . Aralıklar, Studentized range istatistiği Tukey'in "Dürüst Anlamlı Fark" yöntemine dayanmaktadır. Bu istediğini yapıyor mu?

http://stat.ethz.ch/R-manual/R-patched/library/stats/html/TukeyHSD.html


Cevabınız için teşekkürler. Evet, bu işlevi denedim, ama bana karşılaştırmalar için ham listeler veriyor. İstediğim, onları sorumun görüntüsünde gruplandırılmış olarak görmek, hangi grubun hangi gruba göre farklı olduğunu net bir şekilde görmek ve sonunda grafiklerime grup isimlerini eklemek (örneğin: a, ab, abc, bc) , c)
stragu
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.