Lme4 का उपयोग करके मिश्रित प्रभाव वाले मॉडल में इंटरैक्शन टर्म के लिए P मान


10

मैं का उपयोग कर कुछ व्यवहार डेटा का विश्लेषण कर रहा हूँ lme4में R, ज्यादातर निम्नलिखित बोडो विंटर्स उत्कृष्ट ट्यूटोरियल है, लेकिन मुझे समझ नहीं आता कि अगर मैं बातचीत से निपटने कर रहा हूँ ठीक से। इससे भी बदतर, इस शोध में शामिल कोई भी मिश्रित मॉडल का उपयोग नहीं करता है, इसलिए जब मैं यह सुनिश्चित करने के लिए थोड़ा सा सही काम करता हूं, तो मैं थोड़ा आडम्बर करता हूं।

मदद के लिए सिर्फ एक रोना पोस्ट करने के बजाय, मैंने सोचा कि मुझे समस्या की व्याख्या करने में अपना सर्वश्रेष्ठ प्रयास करना चाहिए, और फिर अपने सामूहिक सुधारों की भीख माँगनी चाहिए। कुछ अन्य सहायक हैं:

  • लिखते समय, मैंने यह प्रश्न पाया है, यह दर्शाता है कि nlmeअधिक सीधे बातचीत की शर्तों के लिए p मान देते हैं, लेकिन मुझे लगता है कि यह अभी भी संबंध के साथ पूछने के लिए वैध है lme4
  • Livius'इस प्रश्न का उत्तर बहुत अधिक अतिरिक्त पढ़ने के लिए लिंक प्रदान करता है, जिसे मैं अगले कुछ दिनों में प्राप्त करने की कोशिश करूंगा, इसलिए मैं किसी भी प्रगति के साथ टिप्पणी करूंगा जो लाता है।

मेरे डेटा में, मेरे पास एक आश्रित चर dv, एक conditionहेरफेर (0 = नियंत्रण, 1 = प्रायोगिक स्थिति है, जिसका परिणाम अधिक होना चाहिए dv), और एक पूर्वापेक्षित, लेबल भी appropriate: इसके लिए परीक्षण किए गए परीक्षणों 1को प्रभाव दिखाना चाहिए, लेकिन परीक्षण कोडित 0हो सकते हैं नहीं, क्योंकि एक महत्वपूर्ण कारक गायब है।

मैंने प्रत्येक विषय के भीतर सहसंबद्ध मूल्यों को दर्शाते हुए subjectऔर इसके लिए target, dv14 यादृच्छिक समस्याओं को दर्शाते हुए , (प्रत्येक प्रतिभागी ने एक नियंत्रण और प्रत्येक समस्या का एक प्रयोगात्मक संस्करण दोनों) को शामिल करते हुए दो यादृच्छिक अंतरापृष्ठ भी शामिल किए हैं ।

library(lme4)
data = read.csv("data.csv")

null_model        = lmer(dv ~ (1 | subject) + (1 | target), data = data)
mainfx_model      = lmer(dv ~ condition + appropriate + (1 | subject) + (1 | target),
                         data = data)
interaction_model = lmer(dv ~ condition + appropriate + condition*appropriate +
                              (1 | subject) + (1 | target), data = data)
summary(interaction_model)

आउटपुट:

## Linear mixed model fit by REML ['lmerMod']
## ...excluded for brevity....
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  subject  (Intercept) 0.006594 0.0812  
##  target   (Intercept) 0.000557 0.0236  
##  Residual             0.210172 0.4584  
## Number of obs: 690, groups: subject, 38; target, 14
## 
## Fixed effects:
##                                Estimate Std. Error t value
## (Intercept)                    0.2518     0.0501    5.03
## conditioncontrol               0.0579     0.0588    0.98
## appropriate                   -0.0358     0.0595   -0.60
## conditioncontrol:appropriate  -0.1553     0.0740   -2.10
## 
## Correlation of Fixed Effects:
## ...excluded for brevity.

एनोवा तब interaction_modelसे काफी बेहतर फिट दिखाई देती है mainfx_model, जिससे मैं यह निष्कर्ष निकालता हूं कि एक महत्वपूर्ण बातचीत मौजूद है (पी = .035)।

anova(mainfx_model, interaction_model)

आउटपुट:

## ...excluded for brevity....
##                   Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)  
## mainfx_model       6 913 940   -450      901                          
## interaction_model  7 910 942   -448      896  4.44      1      0.035 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

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

good_data = data[data$appropriate == 1, ]
good_null_model   = lmer(dv ~ (1 | subject) + (1 | target), data = good_data)
good_mainfx_model = lmer(dv ~ condition + (1 | subject) + (1 | target), data = good_data)

anova(good_null_model, good_mainfx_model)

आउटपुट:

## Data: good_data
## models:
## good_null_model: dv ~ (1 | subject) + (1 | target)
## good_mainfx_model: dv ~ condition + (1 | subject) + (1 | target)
##                   Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)  
## good_null_model    4 491 507   -241      483                          
## good_mainfx_model  5 487 507   -238      477  5.55      1      0.018 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

में पी-मूल्यों के बारे में अधिक जानकारी के लिए इस सवाल की जाँच करें lme4: stats.stackexchange.com/questions/118416/...
टिम

LmerTest का उपयोग :: aova () आपको प्रत्येक पद के लिए p-मानों के साथ aova सारणी देगा। यह आपको समग्र मॉडल की तुलना करने के बजाय सीधे इंटरैक्शन की जांच करने की अनुमति देगा। इस सवाल का जवाब देखिए @Tim
Kayle Sawyer

जवाबों:


3

मैं यहाँ कहने के लिए बहुत ज्यादा नहीं देखता। मुझे लगता है कि आपने अच्छा काम किया है।

ऐसे कई तरीके हैं जिनसे लोगों ने प्रभावों का परीक्षण करने और जटिल मिश्रित प्रभाव वाले मॉडल के लिए पी-मान प्राप्त करने के लिए चर्चा की है। यहां एक अच्छा अवलोकन है । सबसे अच्छा यह है कि कम्प्यूटेशनल रूप से गहन तरीकों (बूटस्ट्रैपिंग या बायेसियन विधियों) का उपयोग किया जाए, लेकिन यह ज्यादातर लोगों के लिए अधिक उन्नत है। दूसरा सबसे अच्छा (और सबसे अच्छा सुविधाजनक) विधि एक संभावना अनुपात परीक्षण का उपयोग करना है। यही anova()(तकनीकी रूप से ? Anova.merMod () ) कर रहा है। यह महत्वपूर्ण है केवल मॉडल की संभावना अनुपात परीक्षण है कि पूरा साथ फिट थे उपयोग करने के लिए अधिक से अधिक संभावना है, बजाय प्रतिबंधित अधिकतम संभावना(REML)। दूसरी ओर, अपने अंतिम मॉडल के लिए, और व्याख्या के लिए, आप REML का उपयोग करना चाहते हैं। यह कई लोगों के लिए भ्रामक है। आपके आउटपुट में, हम देखते हैं कि आप अपने मॉडल को REML के साथ फिट करते हैं (इसका कारण यह है कि विकल्प TRUEडिफ़ॉल्ट रूप से सेट है lmer()। इसका मतलब यह होगा कि आपका परीक्षण अमान्य है, हालाँकि, यह एक ऐसी सामान्य गलती है, anova.merMod()जिसमें एक refitतर्क होता है जिसके द्वारा डिफ़ॉल्ट पर सेट है TRUE, और आपने इसे नहीं बदला है। इसलिए पैकेज डेवलपर्स की दूरदर्शिता ने आपको वहां बचा लिया है।

बातचीत को अनपैक करने की आपकी रणनीति के बारे में, आपने जो किया वह ठीक है। बस ध्यान रखें कि इंटरैक्शन अपने परीक्षण के लिए सभी डेटा का उपयोग करता है। एक महत्वपूर्ण बातचीत करना संभव है, लेकिन न तो स्तरीकृत परीक्षणों में महत्वपूर्ण है, जो कुछ लोगों को भ्रमित करता है। (ऐसा प्रतीत नहीं होता है कि आपके साथ हुआ है, हालांकि)


0

मैं खुद एक नौसिखिया हूं, और ज़ुआर एट अल से सलाह का पालन करता हूं .. मैं पैकेज lmeसे उपयोग करता हूं जब मुझे एक अन्यथा रैखिक मॉडल में एक पदानुक्रमित त्रुटि संरचना को जोड़ने की आवश्यकता होती है। मेरी प्रतिक्रिया रास्ता बंद हो सकता है।nlmelme4

दो टिप्पणियाँ:

(1) मुझे यकीन नहीं है कि यह conditionसबसेट में परीक्षण करने के लिए समझ में आता है appropriate==1। यदि आप मुख्य प्रभावों के लिए पी-मान प्राप्त करना चाहते हैं, तो आप Anova'कार' पैकेज से उपयोग कर सकते हैं :

require(car)
Anova(M,type="III")# type III Sum of Squares. M was fitted using method=REML

यदि आप इंटरैक्शन को हल करना चाहते हैं, तो आप सीधे युग्मित तुलनाओं को चला सकते हैं (?) या आपने जो किया, लेकिन दोनों सबसेट पर (यानी जहां सबसेट भी है appropriate==0)।

(२) आप अपनी त्रुटि संरचना का चयन करना चाह सकते हैं मानने के बजाय (1 | subject) + (1 | target)सबसे पहले त्रुटि संरचना है। आपने जो लिखा है, उससे मैं conditionएक विषय-कारक के रूप में एकत्रित होता हूं , जबकि appropriateया तो एक विषय-वस्तु या एक लक्ष्य-लक्षित कारक होता है। आप विषय-वस्तु और / या भीतर-लक्ष्य कारकों के लिए ढलान जोड़ना चाह सकते हैं, उदाहरण के लिए: dv ~ condition + appropriate + (1+condition | subject) + (1 | target)भीतर-विषय कारक के लिए एक यादृच्छिक ढलान जोड़ता है condition। विषयों / लक्ष्य कारकों के बीच कोई ढलान की आवश्यकता नहीं है।

चियर्स


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