N-1 चर का उपयोग करके डमी चर को कैसे लागू किया जाए?


9

अगर मेरे पास 4 स्तरों वाला एक चर है, तो सिद्धांत रूप में मुझे 3 डमी चर का उपयोग करने की आवश्यकता है। व्यवहार में, यह वास्तव में कैसे किया जाता है? क्या मैं 0-3 का उपयोग करता हूं, क्या मैं 1-3 का उपयोग करता हूं और 4 के खाली छोड़ देता हूं? कोई सुझाव?

नोट: मैं R में काम करने जा रहा हूं।

अद्यतन करें: क्या होगा यदि मैं केवल एक कॉलम का उपयोग करता हूं जो 1-4 एडी का उपयोग करता है? क्या वह काम करेगा या समस्याओं को पेश करेगा?


3
मुझे लगता है कि यूसीएलए एटीएस का यह पृष्ठ इसे अच्छी तरह समझाता है।
काराकाल

4
बस स्पष्ट होना, ध्यान दें कि पूर्णांकों 0-3 या 1-4 या 1-3 के रूप में इस चर कोडन है नहीं एक डमी कोडिंग और होगा नहीं तीन डमी चर के रूप में एक ही प्रभाव है। हालांकि, इस तरह एक गलत कोडिंग इच्छा प्रतिगमन सूत्र और सॉफ्टवेयर में काम करते हैं और वहाँ होगा प्रशंसनीय उत्पादन हो: यह सिर्फ इरादा मॉडल के साथ संगत नहीं होगा। (ध्यान दें: इस सवाल का हाल ही में अद्यतन जवाब देता है। )
whuber

जवाबों:


11

व्यवहार में, आमतौर पर किसी को पसंद के सॉफ़्टवेयर को डमी चर बनाने और हेरफेर करने की सुविधा देता है। ऐसे कई तरीके हैं जिन्हें संभाला जा सकता है; चार अवलोकनों के साथ सेट किए गए डेटा के लिए यहां कई सामान्य संभावनाएं हैं, ए, बी, सी, और डी के प्रत्येक स्तर पर ये अलग-अलग पैरामीटर हैं; वे बिल्कुल उसी मॉडल में फिट होते हैं, लेकिन मापदंडों के लिए अलग-अलग व्याख्याओं के साथ। बुनियादी बीजगणित का उपयोग करके आसानी से एक से दूसरे में परिवर्तित किया जा सकता है; ध्यान दें कि वे एक दूसरे के सभी रैखिक संयोजन हैं; वास्तव में, किसी भी रैखिक संयोजन का उपयोग किया जा सकता है।

पहले स्तर से अंतर का उपयोग करें (R में डिफ़ॉल्ट):

A 0 0 0
B 1 0 0
C 0 1 0
D 0 0 1

अंतिम स्तर से अंतर का उपयोग करें (एसएएस में डिफ़ॉल्ट):

A 1 0 0
B 0 1 0
C 0 0 1
D 0 0 0

"योग" विरोधाभासों का उपयोग करें:

A    1    0    0
B    0    1    0
C    0    0    1
D   -1   -1   -1

"हेल्मर्ट" विरोधाभासों का उपयोग करें:

A   -1   -1   -1
B    1   -1   -1
C    0    2   -1
D    0    0    3

1
मैं कहता हूँ, पवित्रता के लिए, उस डमी चरों को, सख्त सेंस में, केवल 1 और दूसरा आपके उदाहरण हैं। डमी वैरिएबल को इंडिकेटर कंट्रास्ट वैरिएबल के रूप में भी जाना जाता है । हेल्मर्ट , विचलन और अन्य वैकल्पिक प्रकार के कंट्रास्ट वैरिएबल को मेरे लिए डमी नहीं कहा जाना चाहिए ।
tnnphns

1
@ttnphns मैं सहमत हूं कि हेल्मर्ट विरोधाभास तकनीकी दृष्टि से डमी कोडिंग का गठन नहीं करता है, लेकिन मुझे लगता है कि यह उनके लिए पूरी तरह से उचित है, फिर भी यहां शामिल किया जाना चाहिए। मैं नहीं बता सकता कि क्या आप इसे स्पष्टता के लिए इंगित कर रहे हैं या सुझाव दे रहे हैं कि उत्तर को बदल दिया जाए। @ हारून +1, यह उत्तर और भी बेहतर होगा यदि आपको संक्षेप में समझाया जाए कि इन विभिन्न कोडिंग योजनाओं की व्याख्या कैसे भिन्न होगी।
गूँग - मोनिका

7

मान लें कि आपके परिवर्तनशील स्तर A, B, C, और D. हैं। यदि आपके पास प्रतिगमन में एक निरंतर अवधि है, तो आपको तीन डमी चर का उपयोग करने की आवश्यकता है, अन्यथा, आपको सभी चार की आवश्यकता होगी।

कई गणितीय समकक्ष तरीके हैं जिनसे आप डमी चर को लागू कर सकते हैं। यदि आपके पास प्रतिगमन में एक निरंतर शब्द है, तो एक तरीका "बेसलाइन" स्तर के रूप में स्तरों में से एक को चुनना है और अन्य तीन की तुलना करना है। हम कहते हैं, समवर्ती के लिए, कि आधार रेखा स्तर ए है। तब आपका पहला डमी वैरिएबल मान 1 पर ले जाता है जब भी स्तर बी और 0 अन्यथा होता है; दूसरा जब भी स्तर C और 0 अन्यथा होता है, तो मान 1 पर ले जाता है, और तीसरा मान 1 पर ले जाता है जब भी स्तर D और 0 अन्यथा होता है। क्योंकि आपका निरंतर कार्यकाल हर समय 1 के बराबर है, पहले डमी चर का अनुमानित गुणांक स्तर बी और ए के बीच अंतर का अनुमान होगा, और इसी तरह अन्य डमी चर के लिए।

यदि आपके पास एक स्थिर शब्द नहीं है, तो आप केवल चार डमी चर का उपयोग कर सकते हैं, जो पिछले उदाहरण में निर्मित है, बस ए स्तर के लिए एक जोड़ना।


प्रतिगमन मामलों में एक निरंतर अवधि होने पर अच्छा ध्यान दें।
हारून ने

5

आर में, चर को एक कारक के रूप में परिभाषित करें और यह आपके लिए इसे लागू करेगा:

x <- as.factor(sample(LETTERS[1:4], 20, replace = TRUE))
y <- rnorm(20)
lm (y ~ x)

जो लौटता है

Call:
lm(formula = y ~ x)

Coefficients:
(Intercept)           xB           xC           xD  
     1.0236      -0.6462      -0.9466      -0.4234  

आर में 'एलएम', 'फैक्टर' और 'फॉर्मूला' के लिए डॉक्यूमेंटेशन कुछ डिटेल्स में भरे जाते हैं।


1
+1 यह पहले से सूचीबद्ध उत्तरों का एक अच्छा पूरक है। हम यह भी नोट कर सकते हैं कि यदि आपके पास पहले से ही समूह के नाम (जैसे AD) के साथ एक चर है, तो यह बिना किसी अतिरिक्त कदम के विश्लेषण फ़ंक्शन कॉल में किया जा सकता है: lm(y ~ as.factor(x))
गूँज - मोनिका

मुख्य कारण जो मैं डमी चर का उपयोग कर रहा हूं, वह यह है कि मैं एक बड़े डेटा सेट के साथ काम कर रहा हूं जिसमें कई कारक स्तर (> 32) हैं और आर में कुछ पैकेज (यानी रैंडमटेस्टेस्ट) कई स्तरों वाले कारकों को संभाल नहीं सकते हैं, इसलिए मैं कोशिश कर रहा था यह देखने के लिए कि क्या डमी आसपास काम कर रहे थे।
screechOwl

1
आप 'model.matrix' का उपयोग करके प्रतिगमन डिज़ाइन मैट्रिक्स का निर्माण कर सकते हैं: model.matrix (y ~ x) (x अभी भी एक कारक है) आपको डमी चर के साथ एक मैट्रिक्स देगा। मैं randomforest पैकेज से परिचित नहीं हूं, लेकिन मुझे संदेह है कि आप किसी भी फ़ंक्शन को एक स्पष्ट डिज़ाइन मैट्रिक्स दे सकते हैं जो आपको model.matrix से मिलता है, और model.matrix कई (यानी सैकड़ों) स्तरों के साथ काम करने लगता है।
ग्रे

पीएस: आप यह स्पष्ट करने के लिए प्रश्न को संपादित करना चाह सकते हैं कि आप उन समाधानों की परवाह करते हैं जो बहुत सारे स्तरों के साथ काम करते हैं। सवाल 4. के बारे में पूछता है
ग्रे

4

whuber ने आपको टिप्पणियों में बताया कि डमी वैरिएबल बनाने के बजाय 0-3 या 1-4 कोडिंग कोडिंग वह नहीं है जो आप चाहते हैं। यह कोशिश है - मैं उम्मीद कर रहा हूं कि आप बताएं कि आप उस मॉडल के साथ क्या कर रहे हैं और यह गलत क्यों है।

यदि आप एक चर X को कोड करते हैं जैसे कि यदि A तब X = 1, यदि B तो X = 2, यदि C तो X = 3, यदि D तब X = 4 हो तो जब आप प्रतिगमन करते हैं तो आपको केवल एक पैरामीटर मिलेगा। मान लें कि यह समाप्त हो गया है कि एक्स से जुड़ा अनुमानित पैरामीटर 2 था। यह आपको बताएगा कि बी के मतलब और ए के बीच का अपेक्षित अंतर 2 है। यह भी आपको बताता है कि सी के मतलब के बीच अपेक्षित अंतर। और बी का मतलब 2. डी और सी के लिए कुछ है। आप इन समूहों के लिए इस बहुत ही सख्त पैटर्न का पालन करने के लिए साधनों में अंतर के लिए मजबूर होंगे। वह एक पैरामीटर आपको बताता है कि आपके सभी समूह का अर्थ एक दूसरे से कैसे संबंधित है।

इसलिए यदि आपने इस तरह की कोडिंग की है, तो आपको यह मान लेना होगा कि न केवल आपको ऑर्डरिंग सही मिली है (क्योंकि इस मामले में यदि आप A से B तक वृद्धि की उम्मीद करते हैं, तो आपको B से C और C से वृद्धि की अपेक्षा करनी होगी। डी) लेकिन आपको यह मानने की भी जरूरत है कि यह अंतर समान है!

यदि इसके बजाय आप डमी कोडिंग करते हैं जो सुझाया गया है कि आप प्रत्येक समूह को अपना मतलब रखने की अनुमति दे रहे हैं - कोई प्रतिबंध नहीं। यह मॉडल बहुत अधिक समझदार है और आपके इच्छित प्रश्नों का उत्तर देता है।

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