R में बार-बार उपाय ANOVA के लिए lme और aov अलग-अलग परिणाम क्यों देते हैं?


24

मैं बार-बार उपायों एनोवा के लिए ezपैकेज का उपयोग करने से आगे बढ़ने की कोशिश कर lmeरहा हूं (जैसा कि मुझे आशा है कि मैं इसके साथ कस्टम विरोधाभासों का उपयोग करने में सक्षम होऊंगा lme)।

इस ब्लॉग पोस्ट की सलाह के बाद मैं दोनों का उपयोग करके एक ही मॉडल स्थापित करने में सक्षम था aov(जैसा ezकि अनुरोध किया जाता है) और lme। हालांकि, में दिए गए उदाहरण में, जबकि उस पोस्ट एफ -values पूरी तरह से के बीच सहमत हैं aovऔर lme(मैं इसे जाँच की, और वे करते हैं), यह अपने डेटा के लिए ऐसा नहीं है। यद्यपि F -values ​​समान हैं, वे समान नहीं हैं।

aov1.3399 का एफ-वैल्यू lmeदेता है , 1.36264 रिटर्न देता है। मैं aovपरिणाम को "सही" के रूप में स्वीकार करने के लिए तैयार हूं क्योंकि यह वह भी है जो एसपीएसएस रिटर्न देता है (और यही मेरे क्षेत्र / पर्यवेक्षक के लिए मायने रखता है)।

प्रशन:

  1. यह बहुत अच्छा होगा अगर कोई यह समझा सके कि यह अंतर क्यों मौजूद है और मैं lmeविश्वसनीय परिणाम प्रदान करने के लिए कैसे उपयोग कर सकता हूं । (मैं इस प्रकार के सामान के lmerबजाय उपयोग करने के lmeलिए भी तैयार होऊंगा, अगर यह "सही" परिणाम देता है। हालांकि, मैंने अब तक इसका उपयोग नहीं किया है।)

  2. इस समस्या को हल करने के बाद मैं एक विपरीत विश्लेषण चलाना चाहूंगा। विशेष रूप से मैं कारक के पहले दो स्तरों (अर्थात c("MP", "MT")) के पूलिंग के विपरीत में रुचि रखता हूं और कारक के तीसरे स्तर (यानी "AC") के साथ इसकी तुलना करता हूं । इसके अलावा, कारक के चौथे बनाम तीसरे स्तर का परीक्षण (यानी, "AC"बनाम "DA")।

डेटा:

tau.base <- structure(list(id = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 
9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 
22L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 
14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 1L, 2L, 3L, 4L, 
5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 
19L, 20L, 21L, 22L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 
11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L), .Label = c("A18K", 
"D21C", "F25E", "G25D", "H05M", "H07A", "H08H", "H25C", "H28E", 
"H30D", "J10G", "J22J", "K20U", "M09M", "P20E", "P26G", "P28G", 
"R03C", "U21S", "W08A", "W15V", "W18R"), class = "factor"), factor = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("MP", "MT", "AC", "DA"
), class = "factor"), value = c(0.9648092876, 0.2128662077, 1, 
0.0607615485, 0.9912814024, 3.22e-08, 0.8073856412, 0.1465590332, 
0.9981672618, 1, 1, 1, 0.9794401938, 0.6102546108, 0.428651501, 
1, 0.1710644881, 1, 0.7639763913, 1, 0.5298989196, 1, 1, 0.7162733447, 
0.7871177434, 1, 1, 1, 0.8560509327, 0.3096989662, 1, 8.51e-08, 
0.3278862311, 0.0953598576, 1, 1.38e-08, 1.07e-08, 0.545290432, 
0.1305621416, 2.61e-08, 1, 0.9834051136, 0.8044114935, 0.7938839461, 
0.9910112678, 2.58e-08, 0.5762677121, 0.4750002288, 1e-08, 0.8584252623, 
1, 1, 0.6020385797, 8.51e-08, 0.7964935271, 0.2238374288, 0.263377904, 
1, 1.07e-08, 0.3160751898, 5.8e-08, 0.3460325565, 0.6842217296, 
1.01e-08, 0.9438301877, 0.5578367224, 2.18e-08, 1, 0.9161424562, 
0.2924856039, 1e-08, 0.8672987992, 0.9266688748, 0.8356425464, 
0.9988463913, 0.2960361777, 0.0285680426, 0.0969063841, 0.6947998266, 
0.0138254805, 1, 0.3494775301, 1, 2.61e-08, 1.52e-08, 0.5393467752, 
1, 0.9069223275)), .Names = c("id", "factor", "value"), class = "data.frame", row.names = c(1L, 
6L, 10L, 13L, 16L, 17L, 18L, 22L, 23L, 24L, 27L, 29L, 31L, 33L, 
42L, 43L, 44L, 45L, 54L, 56L, 58L, 61L, 64L, 69L, 73L, 76L, 79L, 
80L, 81L, 85L, 86L, 87L, 90L, 92L, 94L, 96L, 105L, 106L, 107L, 
108L, 117L, 119L, 121L, 124L, 127L, 132L, 136L, 139L, 142L, 143L, 
144L, 148L, 149L, 150L, 153L, 155L, 157L, 159L, 168L, 169L, 170L, 
171L, 180L, 182L, 184L, 187L, 190L, 195L, 199L, 202L, 205L, 206L, 
207L, 211L, 212L, 213L, 216L, 218L, 220L, 222L, 231L, 232L, 233L, 
234L, 243L, 245L, 247L, 250L))

और कोड:

require(nlme)

summary(aov(value ~ factor+Error(id/factor), data = tau.base))

anova(lme(value ~ factor, data = tau.base, random = ~1|id))

ऐसा लगता है कि आपने अपने जवाब में खुद के विपरीत भाग के बारे में जवाब दिया है ; यदि नहीं, तो कृपया इस प्रश्न को संपादित करें ताकि हम जान सकें कि कठिनाई क्या है।
हारून -

2
@ एरन, जब तक lmeमानक पाठ्यपुस्तक एनोवा (द्वारा दी गई aovऔर जो मुझे चाहिए,) के परिणामों में अंतर हैं , यह मेरे लिए कोई विकल्प नहीं है। अपने पेपर में मैं एक एनोवा की रिपोर्ट करना चाहता हूं, एनोवा की तरह कुछ नहीं। दिलचस्प रूप से वेनेबल्स और रिप्ले (2002, पी। 285) बताते हैं कि दोनों दृष्टिकोण समान अनुमानों को जन्म देते हैं। लेकिन एफ मूल्यों में अंतर मुझे एक बुरी भावना के साथ छोड़ देता है। इसके अलावा, Anova()(से car) lmeवस्तुओं के लिए केवल ची-मान लौटाता है । इसलिए मेरे लिए, मेरे पहले प्रश्न का उत्तर अभी तक नहीं दिया गया है।
हेनरिक

मैं समझता हूँ (लेकिन शेयर नहीं करते हैं) अपने की सावधानी lme; लेकिन विरोधाभासों के लिए, फिट glhtपर lmभी काम करता है, न केवल lmeफिट बैठता है। (इसके अलावा, lmeपरिणाम मानक पाठ्यपुस्तक परिणाम भी हैं।)
हारून - मोनिका

दुर्भाग्य से आप lmएक दोहराया माप विश्लेषण के लिए निर्दिष्ट नहीं कर सकते । केवल aovबार-बार किए गए उपायों से ही निपट सकते हैं, लेकिन कक्षा की एक ऐसी वस्तु लौटाएंगे, aovlistजो दुर्भाग्य से हाथ नहीं लगी glht
हेनरिक

3
lmसभी प्रभावों के लिए त्रुटि शब्द के रूप में अवशिष्ट त्रुटि का उपयोग करता है; जब ऐसे प्रभाव होते हैं जो एक अलग त्रुटि शब्द का उपयोग करना चाहिए, aovतो आवश्यक है (या इसके बजाय, lmमैन्युअल रूप से एफ-आँकड़े की गणना के परिणामों का उपयोग करके )। अपने उदाहरण में, के लिए त्रुटि अवधि factorहै id:factorबातचीत है, जो एक additive मॉडल में अवशिष्ट त्रुटि शब्द है। करने के लिए अपने परिणामों की तुलना करें anova(lm(value~factor+id))
आरोन -

जवाबों:


28

वे भिन्न हैं क्योंकि lme मॉडल विचरण घटक को idशून्य से अधिक होने के लिए मजबूर कर रहा है। सभी शर्तों के लिए कच्ची एनोवा तालिका को देखते हुए, हम देखते हैं कि आईडी के लिए औसत चुकता त्रुटि अवशिष्टों की तुलना में कम है।

> anova(lm1 <- lm(value~ factor+id, data=tau.base))

          Df  Sum Sq Mean Sq F value Pr(>F)
factor     3  0.6484 0.21614  1.3399 0.2694
id        21  3.1609 0.15052  0.9331 0.5526
Residuals 63 10.1628 0.16131   

जब हम विचरण घटकों की गणना करते हैं, तो इसका मतलब है कि आईडी के कारण विचरण नकारात्मक होगा। अपेक्षित औसत वर्ग स्मृति की मेरी स्मृति अस्थिर है, लेकिन गणना कुछ इस तरह है

(0.15052-0.16131)/3 = -0.003597.

यह अजीब लगता है लेकिन हो सकता है। इसका मतलब यह है कि प्रत्येक आईडी के लिए औसत एक-दूसरे के करीब हैं, जब आप मॉडल में अवशिष्ट भिन्नता की मात्रा को देखते हुए एक-दूसरे से अपेक्षा करेंगे।

इसके विपरीत, lme के प्रयोग से यह भिन्नता शून्य से अधिक हो जाती है।

> summary(lme1 <- lme(value ~ factor, data = tau.base, random = ~1|id))
...
Random effects:
 Formula: ~1 | id
        (Intercept)  Residual
StdDev: 3.09076e-05 0.3982667

यह मानक विचलन की रिपोर्ट करता 9.553e-10है, आईडी विचरण के 0.1586164लिए और अवशिष्ट विचरण के लिए विचरण पैदावार प्राप्त करने के लिए चुकता करता है ।

अब, आपको पता होना चाहिए कि aovदोहराया उपायों का उपयोग करना केवल तभी उचित है जब आप मानते हैं कि दोहराया उपायों के सभी जोड़े के बीच संबंध समान है; इसे यौगिक समरूपता कहा जाता है। (तकनीकी तौर पर, गोलाई की आवश्यकता है, लेकिन यह अब के लिए पर्याप्त है।) का उपयोग करने का एक कारण lmeसे अधिक aovहै कि यह सहसंबंध संरचनाओं के विभिन्न प्रकार संभाल कर सकते हैं।

इस विशेष डेटा सेट में, इस सहसंबंध का अनुमान नकारात्मक है; यह समझाने में मदद करता है कि कैसे आईडी के लिए माध्य चुकता त्रुटि अवशिष्ट चुकता त्रुटि से कम थी। एक नकारात्मक सहसंबंध का मतलब है कि अगर किसी व्यक्ति का पहला माप औसत से कम था, तो औसतन उनका दूसरा औसत से ऊपर होगा, व्यक्तियों के लिए कुल औसत कम चर की तुलना में हम उम्मीद करेंगे कि अगर कोई शून्य सहसंबंध या सकारात्मक सहसंबंध है।

lmeएक यादृच्छिक प्रभाव के साथ उपयोग करना एक समरूप समरूपता मॉडल को फिट करने के बराबर है जहां उस सहसंबंध को गैर-नकारात्मक होने के लिए मजबूर किया जाता है; हम एक मॉडल फिट कर सकते हैं जहां सहसंबंध का उपयोग करके नकारात्मक होने की अनुमति है gls:

> anova(gls1 <- gls(value ~ factor, correlation=corCompSymm(form=~1|id),
                    data=tau.base))
Denom. DF: 84 
            numDF   F-value p-value
(Intercept)     1 199.55223  <.0001
factor          3   1.33985   0.267

यह एनोवा तालिका aovफिट और फिट से तालिका से सहमत lmहै।

ठीक है तो क्या हुआ? वैसे, यदि आप मानते हैं कि idप्रेक्षणों के बीच का अंतर और सहसंबंध गैर-नकारात्मक होना चाहिए, तो lmeवास्तव में फिट का उपयोग करने की तुलना में फिट अधिक उपयुक्त है aovया lmइसके अवशिष्ट विचरण का अनुमान थोड़ा बेहतर है। हालांकि, अगर आपको लगता है कि टिप्पणियों के बीच संबंध नकारात्मक हो सकता है, aovया lmया glsबेहतर है।

आप सहसंबंध संरचना को आगे बढ़ाने में भी रुचि रख सकते हैं; एक सामान्य सहसंबंध संरचना को देखने के लिए, आप कुछ ऐसा करेंगे

gls2 <- gls(value ~ factor, correlation=corSymm(form=~unclass(factor)|id),
data=tau.base)

यहां मैं केवल आउटपुट को सहसंबंध संरचना तक सीमित करता हूं। 1 से 4 के मान चार स्तरों का प्रतिनिधित्व करते हैं factor; हम देखते हैं कि कारक 1 और कारक 4 में काफी मजबूत नकारात्मक सहसंबंध है:

> summary(gls2)
...
Correlation Structure: General
 Formula: ~unclass(factor) | id 
 Parameter estimate(s):
 Correlation: 
  1      2      3     
2  0.049              
3 -0.127  0.208       
4 -0.400  0.146 -0.024

इन मॉडलों के बीच चयन करने का एक तरीका संभावना अनुपात परीक्षण के साथ है; यह दर्शाता है कि यादृच्छिक प्रभाव मॉडल और सामान्य सहसंबंध संरचना मॉडल सांख्यिकीय रूप से काफी भिन्न नहीं हैं; जब ऐसा होता है तो सरल मॉडल आमतौर पर पसंद किया जाता है।

> anova(lme1, gls2)
     Model df      AIC      BIC    logLik   Test  L.Ratio p-value
lme1     1  6 108.0794 122.6643 -48.03972                        
gls2     2 11 111.9787 138.7177 -44.98936 1 vs 2 6.100725  0.2965

2
यह वास्तव में संभव है कि कॉल के lmeसाथ aov(और इस तरह lmeसभी ANOVAs के लिए सक्षम ) के रूप में एक ही परिणाम प्राप्त करने के लिए यौगिक समरूपता का उपयोग करें , अर्थात् कॉल में सहसंबंध तर्क का उपयोग करते हुए lme:anova(lme(value ~ factor, data = tau.base, random = ~1|id, correlation = corCompSymm(form = ~1|id)))
हेनरिक

1
अच्छा लगा। लेकिन वहाँ फिट में एक अतिरिक्त पैरामीटर नहीं है? इसके तीन प्रसरण पैरामीटर हैं; आईडी, अवशिष्ट विचरण और सहसंबंध के लिए विचरण, जबकि gls में केवल एक अवशिष्ट विचरण और एक सहसंबंध है।
हारून -

1
आपका तर्क प्रशंसनीय लगता है, हालाँकि, परिणाम सहमत नहीं हैं। सभी ऐवा टेबल ( aov, lmeयौगिक समरूपता के बिना, और lmeयौगिक समरूपता के साथ) बिल्कुल dfs की संख्या है।
हेनरिक

1
आपको मुझे विश्वास दिलाना होगा कि वे तीन पैरामीटर वास्तव में पहले दो के एक ओवरपैरेमेट्रीज़ेशन हैं। क्या आपने काम किया है कि वे कैसे संबंधित हैं?
हारून -

1
नहीं, मैं के उत्पादन पर भरोसा कर रहा हूँ anova.lme()। आपके उत्तर से मुझे पता चला कि एनोवा और मिश्रित मॉडल के बीच संबंध उनके सहसंबंध संरचना में निहित है। मैंने तब पढ़ा कि एक सममित सममिति संरचना को लागू करने से दोनों दृष्टिकोणों के बीच समानता आती है। इसलिए मैंने इसे लगाया। मुझे नहीं पता कि यह एक और डीएफ खाती है। हालांकि आउटपुट इस व्याख्या से असहमत है।
हेनरिक

2

aov()lm()कम से कम वर्गों का उपयोग करके मॉडल को फिट करता है, lmeअधिकतम संभावना के माध्यम से फिट बैठता है। रेखीय मॉडल के मापदंडों का अनुमान है कि आपके एफ-वैल्यू में अंतर (बहुत कम) के अंतर के बारे में कितना अंतर है।

व्यवहार में, (जैसे परिकल्पना परीक्षण के लिए) ये अनुमान समान हैं, इसलिए मैं यह नहीं देखता कि किसी को दूसरे की तुलना में अधिक विश्वसनीय कैसे माना जा सकता है। वे विभिन्न मॉडल फिटिंग प्रतिमानों से आते हैं।

विरोधाभासों के लिए, आपको अपने कारकों के लिए एक विपरीत मैट्रिक्स स्थापित करने की आवश्यकता है। 4 वें संस्करण के पी 143, पी .146 और पी .293-294 पर इसे करने के लिए वेनेर्बल्स और रिप्ले दिखाते हैं।


हम्म, लेकिन फिर कभी-कभी मतभेद क्यों होते हैं और कभी-कभी परिणाम बिल्कुल बराबर होते हैं? Furthemrore, तो इसका उपयोग करना असंभव प्रतीत होता हैlmelmer एक ANOVA (कड़ाई से बोलना) या उसकी गणना क्योंकि यह एक ऐसी विधि का उपयोग करता है जो समान है लेकिन समान नहीं है। तो क्या R में बार-बार ANOVAs को मापने के लिए विरोधाभासों की गणना करने का कोई तरीका नहीं है?
हेनरिक

यदि सिस्टम आपकी मॉडलिंग वास्तव में कम से कम वर्गों से रैखिक है और एमएल को समान एफ आंकड़े देना चाहिए। इसका केवल तभी जब डेटा में अन्य संरचना है कि दो तरीके अलग-अलग परिणाम देंगे। पिनहेइरो और बेट्स ने अपने मिश्रित प्रभाव वाले मॉडल बुक में इसे शामिल किया है। इसके अलावा, वे 'बिल्कुल' समान नहीं हैं, यदि आप सिग अंकों में काफी दूर तक जाते हैं तो मुझे यकीन है कि आपको कुछ अंतर मिलेगा। लेकिन सभी व्यावहारिक उद्देश्यों के लिए वे समान हैं।
क्रिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.