यह थोड़ा आत्म-प्रचार की तरह लग सकता है (और मुझे लगता है कि यह है)। लेकिन मैंने आर (सीआरएएन पर उपलब्ध) के लिए एक लेसेन्स पैकेज विकसित किया जो इस तरह की स्थिति को ठीक से संभालने के लिए बनाया गया है। यहां बताया गया है कि यह आपके उदाहरण के लिए कैसे काम करता है:
> sample.data <- data.frame(IV=rep(1:4,each=20),DV=rep(c(-3,-3,1,3),each=20)+rnorm(80))
> sample.aov <- aov(DV ~ factor(IV), data = sample.data)
> library("lsmeans")
> (sample.lsm <- lsmeans(sample.aov, "IV"))
IV lsmean SE df lower.CL upper.CL
1 -3.009669 0.2237448 76 -3.4552957 -2.564043
2 -3.046072 0.2237448 76 -3.4916980 -2.600445
3 1.147080 0.2237448 76 0.7014539 1.592707
4 3.049153 0.2237448 76 2.6035264 3.494779
> contrast(sample.lsm, list(mycon = c(-3,-1,1,3)))
contrast estimate SE df t.ratio p.value
mycon 22.36962 1.000617 76 22.356 <.0001
यदि आप चाहें तो आप सूची में अतिरिक्त विरोधाभासों को निर्दिष्ट कर सकते हैं। इस उदाहरण के लिए, आपको बिल्ट-इन लीनियर बहुपद के विपरीत परिणाम प्राप्त होंगे।
> con <- contrast(sample.lsm, "poly")
> con
contrast estimate SE df t.ratio p.value
linear 22.369618 1.0006172 76 22.356 <.0001
quadratic 1.938475 0.4474896 76 4.332 <.0001
cubic -6.520633 1.0006172 76 -6.517 <.0001
इसकी पुष्टि करने के लिए, ध्यान दें कि "poly"
विनिर्देश इसे कॉल करने के लिए निर्देशित poly.lsmc
करता है, जो इन परिणामों का उत्पादन करता है:
> poly.lsmc(1:4)
linear quadratic cubic
1 -3 1 -1
2 -1 -1 3
3 1 -1 -3
4 3 1 1
यदि आप कई विरोधाभासों का संयुक्त परीक्षण करना चाहते हैं, तो test
फ़ंक्शन का उपयोग करें joint = TRUE
। उदाहरण के लिए,
> test(con, joint = TRUE)
यह "टाइप III" परीक्षण का उत्पादन करेगा। इसके विपरीत car::Anova()
, यह मॉडल-फिटिंग चरण में उपयोग किए गए कंट्रास्ट कोडिंग की परवाह किए बिना सही ढंग से करेगा। ऐसा इसलिए है क्योंकि परीक्षण किए जा रहे रैखिक कार्यों को मॉडल में कमी के माध्यम से सीधे निर्दिष्ट किया जाता है। एक अतिरिक्त विशेषता यह है कि ऐसा मामला जहां परीक्षण किए जा रहे विरोधाभास रैखिक रूप से निर्भर होते हैं, और सही परीक्षण सांख्यिकीय और स्वतंत्रता की डिग्री का उत्पादन किया जाता है।