एलएम में इंटरैक्शन शब्द लिखने के विभिन्न तरीके?


42

मेरे पास एक सवाल है जिसके बारे में एक प्रतिगमन मॉडल में बातचीत को निर्दिष्ट करने का सबसे अच्छा तरीका है। निम्नलिखित आंकड़ों पर विचार करें:

d <- structure(list(r = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
     1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("r1","r2"),
     class = "factor"), s = structure(c(1L, 1L, 1L, 1L, 1L, 
     2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L), 
    .Label = c("s1","s2"), class = "factor"), rs = structure(c(1L, 1L,
     1L,1L, 1L,2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L),
    .Label = c("r1s1","r1s2", "r2s1", "r2s2"), class = "factor"), 
     y = c(19.3788027518437, 23.832287726332, 26.2533235300492,
     15.962906892112, 24.2873740664331, 28.5181676764727, 25.2757801195961,
     25.3601044326474, 25.3066440027202, 24.3298865128677, 32.5684219007394,
     31.0048406654209, 31.671238316086, 34.1933764518288, 36.8784821769123,
     41.6691435168277, 40.4669714825801, 39.2664137501106, 39.4884849591932,
     49.247505535468)), .Names = c("r","s", "rs", "y"), 
     row.names = c(NA, -20L), class = "data.frame")

बातचीत के साथ मॉडल को निर्दिष्ट करने के दो समकक्ष तरीके हैं:

lm0 <- lm(y ~ r*s, data=d)
lm1 <- lm(y ~ r + s + r:s, data=d)

मेरा प्रश्न यह है कि क्या मैं बातचीत के समान स्तरों के साथ एक नए चर (rs) पर विचार कर बातचीत को निर्दिष्ट कर सकता हूं:

lm2 <- lm(y ~ r + s + rs, data=d)

इस दृष्टिकोण के क्या फायदे / नुकसान हैं? और इन दोनों दृष्टिकोणों के परिणाम अलग-अलग क्यों हैं?

summary(lm1)

lm(formula = y ~ r + s + r:s, data = d, x = TRUE)
            coef.est coef.se
(Intercept) 21.94     1.46  
rr2         11.32     2.07  
ss2          3.82     2.07  
rr2:ss2      4.95     2.92  
---
n = 20, k = 4
residual sd = 3.27, R-Squared = 0.87


summary(lm2)

lm(formula = y ~ r + s + rs, data = d, x = TRUE)
            coef.est coef.se
(Intercept) 21.94     1.46  
rr2         11.32     2.07  
ss2          8.76     2.07   # ss2 coef is different from lm1
rsr1s2      -4.95     2.92  
---
n = 20, k = 4
residual sd = 3.27, R-Squared = 0.87

आप मतलब है कि rsके रूप में परिभाषित किया गया है interaction(r, s)?
CHL

शायद आप हमें rsr1s2 बनाने वाला कोड दिखा सकते हैं?
२१

Rs फैक्टर को मैनुअल (बस फैक्टर r और s पेस्ट करें) परिभाषित किया गया था। डेटा सेट देखें।
मैनुअल रामोन

1
मुझे लगता है कि चर में जिस तरह से संबंधित हैं देखने से संबंधित है attr(terms(lm1),"factors")औरattr(terms(lm2),"factors")
Galled

जवाबों:


8

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

यदि आप अपने इंटरैक्शन को परिभाषित करते paste(d$s, d$r)हैं तो paste(d$r, d$s)आपके पैरामीटर के बजाय अनुमान फिर से दिलचस्प तरीकों से बदल जाएगा।

ध्यान दें कि lm1 के लिए आपके मॉडल सारांश में ss2 के लिए गुणांक अनुमान lm2 के लिए सारांश की तुलना में 4.94 कम है, rr2 के लिए गुणांक के साथ: ss2 4.95 (यदि आप 3 दशमलव स्थानों पर प्रिंट करते हैं, तो अंतर दूर हो जाता है)। यह एक और संकेत है कि शब्दों की एक आंतरिक पुनर्व्यवस्था हुई है।

मैं इसे स्वयं करने के किसी भी फ़ायदे के बारे में नहीं सोच सकता, लेकिन ऐसे और भी जटिल मॉडल हो सकते हैं, जहाँ आपको पूर्ण इंटरैक्शन शब्द नहीं चाहिए, बल्कि दो या दो से अधिक कारकों के बीच "क्रॉस" की कुछ शर्तें हैं।


केवल लाभ मुझे lm2 के रूप में इंटरैक्शन को परिभाषित करने के लिए दिखाई देता है, यह है कि इंटरैक्शन शब्द के लिए कई तुलनाओं को निष्पादित करना आसान है। मुझे समझ में नहीं आता है कि क्यों अलग-अलग परिणाम प्राप्त होते हैं यदि, सिद्धांत रूप में, ऐसा लगता है कि 2 दृष्टिकोण समान हैं।
मैनुअल रमोन

5
दृष्टिकोण समान हैं, लेकिन मॉडल के सटीक मापदंडों का अनुमान लगाया जा रहा है, इसलिए परिणाम भिन्न दिखाई देते हैं। दो बाइनरी साथ एक मॉडल पर विचार करें और एक इंटरैक्शन। आपके पास चार श्रेणियां हैं, लेकिन आप मॉडल को कई अलग-अलग तरीकों से लिख सकते हैं, उदाहरण के लिए, 1 को एक स्थिर शब्द होने दें, जिसमें चर या , या अन्य। चर केवल एक-दूसरे के रैखिक संयोजन हैं। गुणांक अनुमान अलग-अलग होंगे, लेकिन मॉडल वास्तव में एक ही है।x1,x2(1,x1,x2,x1x2)(x1,x2,x1x2,(1x1)(1x2)
जुम्मन

इसलिए, हालांकि अलग-अलग, दोनों दृष्टिकोण सही हैं, है ना?
मैनुअल रामोन

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

9

यदि आप मॉडल मैट्रिस को देखते हैं तो आप इस व्यवहार को बेहतर समझ सकते हैं।

 model.matrix(lm1 <- lm(y ~ r*s, data=d))
 model.matrix(lm2 <- lm(y ~ r + s + rs, data=d))

जब आप इन मैट्रिसेस को देखते हैं, तो आप s2=1दूसरे वेरिएबल्स के तारामंडल की तुलना कर सकते हैं (यानी कब s2=1, कौन से वैल्यू दूसरे वेरिएबल लेते हैं?)। आप देखेंगे कि ये तारामंडल थोड़े अलग हैं, जिसका मतलब है कि आधार श्रेणी अलग है। बाकी सब कुछ समान रूप से है। विशेष रूप से, ध्यान दें कि आपके में lm1, गुणांक ss2बराबर गुणांक ss2+rsr1s2के बराबर है lm2, अर्थात 3.82 = 8.76-4.95, गोलाई त्रुटियों की कमी।

उदाहरण के लिए, निम्नलिखित कोड को निष्पादित करने से आपको आर के स्वचालित सेटिंग का उपयोग करने के समान ही आउटपुट मिलता है:

  d$rs <- relevel(d$rs, "r1s1")
  summary(lm1 <- lm(y~ factor(r) + factor(s) + factor(rs), data=d))

यह आपके प्रश्न का एक त्वरित उत्तर भी प्रदान करता है: कारकों को स्थापित करने के तरीके को बदलने का वास्तव में एकमात्र कारण व्यय स्पष्टता प्रदान करना है। निम्नलिखित उदाहरण पर विचार करें: मान लीजिए कि आप हाई स्कूल की पढ़ाई पूरी करने के लिए किसी डमी पर मजदूरी प्राप्त करते हैं, जो यह दर्शाता है कि आप अल्पसंख्यक हैं या नहीं।

वह है:wage=α+β edu+γ eduminority+ϵ

यदि कहा जाता है कि अल्पसंख्यक कारक 1 मान लेता है यदि आप अल्पसंख्यक हैं, तो गुणांक को गैर-अल्पसंख्यक व्यक्तियों के लिए मजदूरी अंतर के रूप में व्याख्या किया जा सकता है जिन्होंने हाई स्कूल पूरा कर लिया है। यदि यह आपकी रुचि का गुणांक है, तो आपको इसे इस तरह से कोडित करना चाहिए। अन्यथा, मान लीजिए कि अल्पसंख्यक कारक 1 का मूल्य लेता है यदि आप अल्पसंख्यक से संबंधित नहीं हैं। फिर, यह देखने के लिए कि जब वे उच्च विद्यालय पूरा करते हैं, तो कितने अधिक गैर-अल्पसंख्यक व्यक्ति कमाते हैं, आपको " को "मैन्युअल रूप से" बनाना होगा । ध्यान दें कि हालांकि सभी जानकारी अनुमानों में निहित है, और पर्याप्त परिणाम कारकों को अलग तरीके से सेट करके नहीं बदलते हैं!बीटा + γββ+γ

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.