ऑरो () कमांड एक लैमर मॉडल ऑब्जेक्ट के साथ क्या करता है?


30

उम्मीद है कि यह एक ऐसा सवाल है जो यहाँ कोई मेरे लिए जवाब दे सकता है, जो कि मिश्रित प्रभाव वाले मॉडल से वर्गों lmerके डिकम्पोजिंग योगों की प्रकृति पर ( lme4 R पैकेज से) फिट हो सकता है ।

सबसे पहले मुझे यह कहना चाहिए कि मैं इस दृष्टिकोण का उपयोग करने के साथ विवाद से अवगत हूं, और व्यवहार में मैं मॉडल की तुलना करने के लिए बूटस्ट्रैप्ड LRT का उपयोग करने की अधिक संभावना होगी (जैसा कि फ़रावे, 2006 द्वारा सुझाया गया है)। हालांकि, मैं परिणामों को दोहराने के तरीके पर हैरान हूं, और इसलिए अपनी खुद की पवित्रता के लिए मैंने सोचा कि मैं यहां पूछूंगा।

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

मुझे पता है कि मैं एक विशेष मॉडल (उपयोग coef()) से अनुमानित मान ले सकता हूं , मान लें कि वे तय हो गए हैं, और फिर ब्याज के कारकों के साथ और बिना मॉडल अवशेषों के वर्गों के योगों का उपयोग करके परीक्षण करें। यह एक मॉडल के लिए ठीक है जिसमें एकल-विषय कारक है। हालाँकि, विभाजन-प्लॉट डिज़ाइन को लागू करते समय मुझे मिलने वाले वर्गों के मूल्य aov()एक उपयुक्त Error()पदनाम के साथ आर द्वारा उत्पादित मूल्य के बराबर हैं । हालांकि, यह मॉडल ऑब्जेक्ट पर कमांड द्वारा उत्पादित वर्गों के योग के समान नहीं है, इस anova()तथ्य के बावजूद कि एफ-अनुपात समान हैं।

बेशक यह पूरी तरह से समझ में आता है क्योंकि Error()मिश्रित-मॉडल में स्ट्रैट की कोई आवश्यकता नहीं है । हालांकि, इसका मतलब यह होना चाहिए कि उचित एफ-अनुपात प्रदान करने के लिए वर्गों के योगों को किसी मिश्रित-मॉडल में दंडित किया गया है। यह कैसे प्राप्त किया जाता है? और कैसे मॉडल किसी तरह वर्गों के बीच-प्लॉट योग को सही करता है, लेकिन वर्गों के भीतर-प्लॉट योग को सही नहीं करता है। जाहिर तौर पर यह एक ऐसी चीज है जो एक क्लासिकल स्प्लिट-प्लॉट एनोवा के लिए आवश्यक है जो विभिन्न प्रभावों के लिए अलग-अलग त्रुटि मानों को निर्दिष्ट करके प्राप्त की गई थी, इसलिए एक मिश्रित-प्रभाव मॉडल इसके लिए कैसे अनुमति देता है?

मूल रूप से, मैं anova()परिणाम और मेरी समझ को सत्यापित करने के लिए एक lmer मॉडल ऑब्जेक्ट पर लागू कमांड से परिणामों को दोहराने में सक्षम होना चाहता हूं, हालांकि, वर्तमान में मैं इसे सामान्य विषय के डिजाइन के लिए प्राप्त कर सकता हूं लेकिन विभाजन के लिए नहीं- प्लॉट डिज़ाइन और मैं यह पता नहीं लगा सकता कि ऐसा क्यों है।

उदहारण के लिए:

library(faraway)
library(lme4)
data(irrigation)

anova(lmer(yield ~ irrigation + variety + (1|field), data = irrigation))

Analysis of Variance Table
           Df Sum Sq Mean Sq F value
irrigation  3 1.6605  0.5535  0.3882
variety     1 2.2500  2.2500  1.5782

summary(aov(yield ~ irrigation + variety + Error(field/irrigation), data = irrigation))

Error: field
           Df Sum Sq Mean Sq F value Pr(>F)
irrigation  3  40.19   13.40   0.388  0.769
Residuals   4 138.03   34.51               

Error: Within
          Df Sum Sq Mean Sq F value Pr(>F)
variety    1   2.25   2.250   1.578  0.249
Residuals  7   9.98   1.426               

जैसा कि सभी एफ-अनुपात सहमत ऊपर देखा जा सकता है। विविधता के लिए वर्गों के योग भी सहमत हैं। हालांकि, सिंचाई के लिए वर्गों की रकम सहमत नहीं हैं, हालांकि यह प्रतीत होता है कि लैमर का उत्पादन कम है। तो एनोवा () कमांड वास्तव में क्या करता है?


1
आप फ़ंक्शन mixed()से एक नज़र रखना चाहते हैं , afexजिसमें से आप क्या चाहते हैं (के माध्यम से method = "PB")। और जैसा कि आपने स्पष्ट रूप से खिलौना डेटा के साथ कुछ परीक्षण किया है, यह निश्चित रूप से उपयोगी होगा यदि आप डेटा और कोड के साथ उन समकक्षों को दिखा सकते हैं (इसलिए, कोई +1)।
हेनरिक

@ हेनरिक कठिन भीड़ ... मार्टिन, क्या आप फ़ारवे (2006) के लिए संदर्भ दे सकते हैं?
पैट्रिक कूलोमेबे


@PatrickCoulombe हेहे, आप सही हैं। लेकिन कभी-कभी कुछ अनुकूल बल बेहतर प्रश्न प्राप्त करने में मदद करता है।
हेनरिक

1
हारून पुस्तक संदर्भ में सही है, इसे मूल रूप से प्रदान नहीं करने के लिए माफी!
मार्टिन

जवाबों:


31

स्रोत, ल्यूक का उपयोग करें। हम कर के एनोवा समारोह के अंदर झांक सकते हैं getAnywhere(anova.Mermod)। उस फ़ंक्शन का पहला भाग दो अलग-अलग मॉडलों की तुलना करने के लिए है। निश्चित प्रभावों पर एनोवा elseदूसरी छमाही में बड़े ब्लॉक में आता है :

 dc <- getME(object, "devcomp")
        X <- getME(object, "X")
        asgn <- attr(X, "assign")
        stopifnot(length(asgn) == (p <- dc$dims[["p"]]))
            ss <- as.vector(object@pp$RX() %*% object@beta)^2
        names(ss) <- colnames(X)
        terms <- terms(object)
        nmeffects <- attr(terms, "term.labels")[unique(asgn)]
        if ("(Intercept)" %in% names(ss)) 
            nmeffects <- c("(Intercept)", nmeffects)
        ss <- unlist(lapply(split(ss, asgn), sum))
        stopifnot(length(ss) == length(nmeffects))
        df <- vapply(split(asgn, asgn), length, 1L)
        ms <- ss/df
        f <- ms/(sigma(object)^2)
        table <- data.frame(df, ss, ms, f)
        dimnames(table) <- list(nmeffects, c("Df", "Sum Sq", 
            "Mean Sq", "F value"))
        if ("(Intercept)" %in% nmeffects) 
            table <- table[-match("(Intercept)", nmeffects), 
                ]
        attr(table, "heading") <- "Analysis of Variance Table"
        class(table) <- c("anova", "data.frame")
        table

objectlmer आउटपुट है। हम पंक्ति 5 में वर्गों की राशि की गणना करना शुरू करते हैं: ss <- as.vector ...कोड betaएक ऊपरी त्रिकोणीय मैट्रिक्स द्वारा निर्धारित मापदंडों (में ) को गुणा करता है ; फिर प्रत्येक शब्द को वर्ग। यहाँ सिंचाई के उदाहरण के लिए ऊपरी त्रिकोणीय मैट्रिक्स है। प्रत्येक पंक्ति पांच निश्चित प्रभाव मापदंडों (अवरोधन, सिंचाई के लिए स्वतंत्रता की 3 डिग्री, विविधता के लिए 1 डीएफ) से मेल खाती है।

zapsmall(irrigation.lmer@pp$RX(), digits = 3)
      [,1]  [,2]   [,3]   [,4]  [,5]
[1,] 0.813 0.203  0.203  0.203 0.407
[2,] 0.000 0.352 -0.117 -0.117 0.000
[3,] 0.000 0.000  0.332 -0.166 0.000
[4,] 0.000 0.000  0.000  0.287 0.000
[5,] 0.000 0.000  0.000  0.000 2.000

पहली पंक्ति आपको इंटरसेप्ट के लिए चौकों का योग देती है और अंतिम आपको एसएस को भीतर-क्षेत्र विविधता के प्रभाव के लिए प्रदान करता है। पंक्तियों में 2-4 सिंचाई के स्तर के लिए केवल 3 पैरामीटर शामिल होते हैं, इसलिए पूर्व-गुणा आपको सिंचाई के लिए एसएस के तीन टुकड़े देता है।

ये टुकड़े अपने आप में दिलचस्प नहीं हैं क्योंकि वे आर में डिफ़ॉल्ट उपचार के विपरीत से आते हैं, लेकिन लाइन में ss <- unlist(lapply(split ....बेट्स वर्गों की संख्या के अनुसार वर्गों के टुकड़ों के बिट्स को स्कूप करते हैं और वे किन कारकों का उल्लेख करते हैं। यहां बहुत सी किताबों का संग्रह चल रहा है। हमें स्वतंत्रता की डिग्री भी मिलती है (जो कि सिंचाई के लिए 3 हैं)। फिर, उसे मीन वर्ग मिलते हैं जो प्रिंटआउट पर दिखाते हैं anova। अंत में, वह, भीतर-समूहों अवशिष्ट विचरण द्वारा अपने हर तरह वर्गों बिताते हैं sigma(object)^2

तो क्या चल रहा है? दर्शन का lmerउपयोग करने के क्षणों की पद्धति से कोई लेना-देना नहीं है aov। विचार lmerयह है कि अनदेखे यादृच्छिक प्रभावों को एकीकृत करके एक सीमांत संभावना को अधिकतम किया जाए। इस मामले में, प्रत्येक क्षेत्र का यादृच्छिक प्रजनन स्तर। पिनहेइरो और बेट्स का अध्याय 2 इस प्रक्रिया की बदसूरती का वर्णन करता है। RXवर्गों का योग प्राप्त करने के लिए उपयोग किया जाने वाला मैट्रिक्स समीकरण 2.17, पाठ के पृष्ठ 70 से उनका मैट्रिक्स है। यह मैट्रिक्स यादृच्छिक प्रभावों और , जहां ) के डिजाइन मैट्रिक्स पर (अन्य चीजों के बीच) से प्राप्त होता है , जहां क्षेत्र प्रभाव का विचरण होता है। । यह वह गायब कारक हैR00σ2/σf2σf2 आप के बारे में पूछ रहे थे, लेकिन यह पारदर्शी या सरल तरीके से समाधान में प्रवेश नहीं करता है।

समान रूप से, निश्चित प्रभावों के अनुमानों में वितरण है:

β^N(β,σ2[R001R00T])

जिसका अर्थ है कि के घटक स्वतंत्र रूप से वितरित किए जाते हैं। यदि , उन शर्तों के वर्ग ( विभाजित ) एक ची-चुकता वितरण का पालन करते हैं। के अनुमान से के माध्यम से डिवाइडिंग (एक और ची-चुकता जब से विभाजित ) एक एफ आंकड़ा देता है। हम मध्य-समूह विश्लेषण के लिए माध्य वर्ग त्रुटि से विभाजित नहीं करते हैं क्योंकि इसका यहां क्या हो रहा है, इससे कोई लेना-देना नहीं है। हमें माध्यम से प्राप्त वर्गों के योगों की तुलना एक अनुमान से करने की आवश्यकता है ।R00β^β=0σ2σ2σ2R00σ2

ध्यान दें कि आपको वही F आँकड़े नहीं मिले होंगे जो डेटा असंतुलित थे। यदि आपने REML के स्थान पर ML का उपयोग किया है, तो न ही आपको समान F आँकड़े प्राप्त होंगे।

इसके पीछे विचार aovयह है कि सिंचाई के लिए अपेक्षित माध्य वर्ग , और सिंचाई प्रभाव का कार्य है। फ़ील्ड अवशिष्ट के लिए अपेक्षित माध्य वर्ग और का एक कार्य है । जब सिंचाई प्रभाव 0 होता है, तो ये दोनों मात्राएं एक ही चीज का अनुमान लगाती हैं और उनका अनुपात F वितरण के बाद होता है।σ2σf2σ2σf2

दिलचस्प बात यह है कि बेट्स और पिनेहिरो ने दो मॉडलों की फिटिंग और एक संभावना अनुपात परीक्षण करने पर एनोवा का उपयोग करने की सलाह दी है। उत्तरार्द्ध विरोधी रूढ़िवादी हो जाता है।

बेशक, यदि डेटा असंतुलित हैं, तो यह अब बिल्कुल स्पष्ट नहीं है कि एनोवा किस परिकल्पना का परीक्षण कर रहा है। मैंने सिंचाई के आंकड़ों में से पहला अवलोकन हटा दिया और रिफिट कर दिया। यहाँ फिर से मैट्रिक्स है:R00

zapsmall(fit2@pp$RX(), digits = 3)
      [,1]  [,2]   [,3]   [,4]   [,5]
[1,] 0.816 0.205  0.205  0.205  0.457
[2,] 0.000 0.354 -0.119 -0.119 -0.029
[3,] 0.000 0.000  0.334 -0.168 -0.040
[4,] 0.000 0.000  0.000  0.288 -0.071
[5,] 0.000 0.000  0.000  0.000  1.874

जैसा कि आप देख सकते हैं, सिंचाई मापदंडों के लिए वर्गों के योगों में अब कुछ varietyप्रभाव भी हैं।


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