समूहीकृत जोड़े को दर्शाने वाली तालिका में एक Tukey HSD पोस्ट-हॉक टेस्ट के परिणाम कैसे प्राप्त करें?


13

मैं आर के साथ अपने दो-तरफ़ा अनोवा के बाद एक तुकेशएचएसडी पोस्ट-हॉक टेस्ट करना पसंद करूंगा, एक तालिका प्राप्त करना जिसमें महत्वपूर्ण अंतर द्वारा समूहीकृत जोड़े शामिल हैं। (शब्दों के बारे में क्षमा करें, मैं अभी भी आँकड़ों के साथ नया हूँ।)

मैं इस तरह से कुछ करना चाहूंगा:

यहाँ छवि विवरण दर्ज करें

तो, सितारों या अक्षरों के साथ समूहीकृत।

कोई उपाय? मैंने पैकेज HSD.test()से फ़ंक्शन का परीक्षण किया agricolae, लेकिन ऐसा लगता है कि यह दो-तरफ़ा तालिकाओं को संभालता नहीं है।

जवाबों:


22

agricolae::HSD.testसमारोह ठीक करता है, लेकिन आप जानते हैं कि यह बताने के लिए की आवश्यकता होगी आप एक बातचीत अवधि में रुचि रखने वाले रहे हैं । यहाँ एक स्टैटा डेटासेट के साथ एक उदाहरण दिया गया है:

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)

यह नीचे दिखाए गए परिणाम देता है:

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 

वे मिलते हैं जो हम निम्नलिखित आदेशों के साथ प्राप्त करेंगे:

. 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 पैकेज भी प्रतीकात्मक दृश्य प्रदान करता है ( 'कॉम्पैक्ट पत्र प्रदर्शित करता है', को देखने के कॉम्पैक्ट पत्र प्रदर्शित करता है के लिए एल्गोरिदम: तुलना और मूल्यांकन अधिक जानकारी के लिए) महत्वपूर्ण जोड़ो में तुलना की है, हालांकि यह उन्हें एक तालिका प्रारूप में प्रस्तुत नहीं करती। हालांकि, इसमें एक प्लॉटिंग विधि है जो बॉक्सप्लेट का उपयोग करके आसानी से परिणाम प्रदर्शित करने की अनुमति देता है। प्रस्तुति आदेश को भी बदला जा सकता है (विकल्प decreasing=), और इसमें कई तुलनाओं के लिए बहुत अधिक विकल्प हैं। मल्टीकॉम्प्यू पैकेज भी है जो उन फंक्शंस को बढ़ाता है।

यहाँ उसी उदाहरण का विश्लेषण किया गया है 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)

एक ही पत्र को साझा करने वाले उपचार चुने हुए स्तर (डिफ़ॉल्ट, 5%) पर काफी भिन्न नहीं होते हैं।

यहाँ छवि विवरण दर्ज करें

संयोग से, एक नई परियोजना है, वर्तमान में आर-फोर्ज पर होस्ट की गई है, जो आशाजनक दिखती है: फैक्टप्लॉट । इसमें लाइन और पत्र-आधारित डिस्प्ले शामिल हैं, साथ ही सभी जोड़ीदार तुलनाओं का एक मैट्रिक्स अवलोकन (एक स्तर साजिश के माध्यम से) शामिल है। एक वर्किंग पेपर यहां पाया जा सकता है: फैक्टप्लॉट: जीएलएम में सरल कंट्रास्ट की प्रस्तुति में सुधार


इस संपूर्ण उत्तर के लिए बहुत बहुत धन्यवाद! जैसे ही मुझे कुछ मिनट मिलते हैं मैं उन विभिन्न तरीकों की कोशिश करूंगा। चीयर्स!
स्ट्रैगु जूल

मैंने मल्टीपैक पैकेज फ़ंक्शन की कोशिश की, जब मैंने 'cld ()' फ़ंक्शन का उपयोग किया तो मुझे त्रुटि मिली 'त्रुटि: sapply (विभाजित_नाम, लंबाई) == 2 सभी TRUE नहीं है' कोई भी विचार क्यों?
स्ट्रैगु जूल

1
@chtfn चर लेबल के साथ कोई समस्या प्रतीत होती है। स्रोत कोड पर एक त्वरित नज़र इंगित करता है कि यह त्रुटि संदेश आता है insert_absorb()जिसमें से उपचार के जोड़े को निकालने की कोशिश की जाती है। आप शायद अपने इंटरैक्शन अवधि के कोडिंग स्तरों के लिए उपयोग किए गए विभाजक को बदलने का प्रयास कर सकते हैं? काम के उदाहरण के बिना, यह बताना मुश्किल है कि क्या हुआ।
CHL

मुझे यह समझ में आया: मेरे जीनोटाइप और उपचार के नामों में मेरे अंक थे, और जैसा कि qlht () जोड़ी के नामों को विभाजित करने के लिए एक बिंदु का उपयोग करता है, यह पता चला। आपकी सभी मदद के लिए बहुत बहुत धन्यवाद, chl! :)
स्ट्रैगु जूल 11'12

3
मैंने आज देखा कि मुझे अब तालिकाओं को जोड़ने के लिए जोड़ना console=TRUEहै HSD.test(), अगर कोई ऐसा करने की कोशिश करता है और कोई परिणाम नहीं देखता है। शायद का एक अद्यतन agricolae
स्ट्रोगो

2

एक फ़ंक्शन कहा जाता TukeyHSDहै, जो मदद फ़ाइल के अनुसार, कवरेज के निर्दिष्ट परिवार-वार संभावना के साथ एक कारक के स्तरों के बीच अंतर पर विश्वास अंतराल के एक सेट की गणना करता है। अंतराल स्टूडेंटाइज्ड रेंज स्टैटिस्टिक, टुकी के "ईमानदार महत्वपूर्ण अंतर" पद्धति पर आधारित हैं। क्या यह वही है जो आप चाहते हैं?

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


आपकी प्रतिक्रिया के लिए धन्यवाद। हां, मैंने इस फ़ंक्शन की कोशिश की, लेकिन यह मुझे तुलनाओं की कच्ची सूची देता है। मैं उन्हें अपने प्रश्न में छवि की तरह समूहीकृत देखना चाहता हूं, यह स्पष्ट देखने के लिए कि कौन सा समूह किस समूह से भिन्न है, और आखिरकार मेरे ग्राफ पर समूह के नाम जोड़ें (उदाहरण के लिए: a, ab, abc, bc , c)
स्ट्रैगु जूल 5'12
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.