बहुकोशिकीयता की उपस्थिति में रैखिक प्रतिगमन गुणांक के सांख्यिकीय महत्व का निर्धारण


9

मान लीजिए कि मेरे पास अलग-अलग आबादी के आकार वाले शहरों का एक समूह है, और मैं यह देखना चाहता था कि किसी शहर में शराब की दुकानों और DUI की संख्या के बीच सकारात्मक रैखिक संबंध था या नहीं। जहां मैं यह निर्धारित कर रहा हूं कि यह संबंध महत्वपूर्ण है या नहीं, अनुमानित प्रतिगमन गुणांक के टी-परीक्षण पर आधारित है।

अब स्पष्ट रूप से पॉप। एक शहर का आकार दोनों DUIs के साथ-साथ शराब की दुकानों की संख्या के साथ सकारात्मक रूप से सहसंबद्ध होने वाला है। इस प्रकार अगर मैं सिर्फ शराब की दुकानों पर एक साधारण रेखीय प्रतिगमन को चलाता हूं और देखता हूं कि क्या इसका प्रतिगमन गुणांक सांख्यिकीय रूप से महत्वपूर्ण है, तो मैं संभवतः मल्टीकोलिनियरिटी की समस्या में चलाऊंगा, और डीयू की दुकानों पर शराब की दुकानों के प्रभाव का अनुमान लगाऊंगा।

इसके लिए सही करने के लिए मुझे किन दो तरीकों का इस्तेमाल करना चाहिए?

  1. मुझे शहर में शराब की दुकानों की संख्या को उसकी आबादी के आधार पर विभाजित करना चाहिए ताकि एक शराब की दुकान प्रति व्यक्ति मूल्य प्राप्त कर सके और फिर उस पर फिर से कब्जा कर सके।

  2. मुझे शराब की दुकानों और आकार दोनों को फिर से प्राप्त करना चाहिए, और फिर यह देखना चाहिए कि आकार को नियंत्रित करते समय शराब की दुकान गुणांक महत्वपूर्ण है या नहीं।

  3. कोई और तरीका?

मैं ईमानदारी से यह तय नहीं कर सकता कि कौन अधिक समझदार है। मैं उनके बीच टीका लगाता हूं, जिसके आधार पर मैं सोचता हूं कि मैं खुद को समझाने में सक्षम हूं कि यह सही तरीका है।

एक तरफ प्रति व्यक्ति शराब की दुकानों का उपयोग करने के लिए सही चर की तरह लगता है, क्योंकि DUI व्यक्तियों द्वारा प्रतिबद्ध हैं, लेकिन यह बहुत सांख्यिकीय रूप से कठोर नहीं लगता है। दूसरी ओर, आकार के लिए नियंत्रण सांख्यिकीय रूप से कठोर लगता है, लेकिन अप्रत्यक्ष रूप से। इसके अलावा, अगर मैं प्रति व्यक्ति चर पर शराब स्टोर की गणना के बाद पुनर्विक्रय करता हूं, तो मुझे दो विधियों के बीच बहुत समान प्रतिगमन गुणांक मिलते हैं, लेकिन विधि 1 एक छोटे पी-मूल्य का उत्पादन करता है।


3
जवाब देने के लिए एक सवाल यह है कि क्या आप दरों को मॉडल करना चाहते हैं या नहीं। इसे पढ़ने में मदद मिल सकती है: एक पॉइसन मॉडल में, कोवरिएट या ऑफसेट के रूप में समय का उपयोग करने में क्या अंतर है?
गूँग - मोनिका

2
एक महत्वपूर्ण और अच्छी तरह से तैयार किया गया प्रश्न।
रोलैंडो 2

2
वर्थ ने @ गंग के जुड़े उत्तर से इस पर जोर दिया: "क्या आपको मॉडल गिनना चाहिए या दरें वास्तव में इस बात पर निर्भर करती हैं कि आपका प्रश्न क्या है। आपको वह मॉडल तैयार करना चाहिए जो आप जानना चाहते हैं।" (यानी लक्ष्य एपी मूल्य को कम करने के लिए नहीं है, लेकिन ब्याज के एक प्रभाव का आकलन करने के लिए)
GeoMatt22

जवाबों:


5

मैं "प्रति व्यक्ति शराब स्टोर" (एक्स) और "जनसंख्या आकार" (जेड) पर "डीयूआई प्रति व्यक्ति" (वाई) को पुनः प्राप्त करूंगा। इस तरह आपका वाई शहरी लोगों के नशे में ड्राइविंग करने की प्रवृत्ति को दर्शाता है, जबकि एक्स किसी दिए गए शहर की जनसंख्या विशेषता है। Z एक कंट्रोल वैरिएबल है अगर वाई पर साइज इफेक्ट है तो मुझे नहीं लगता कि आप इस सेटअप में मल्टीकोलिनरिटी इश्यू देखने जा रहे हैं।

यह सेटअप आपके मॉडल की तुलना में अधिक दिलचस्प है। यहां, आपका आधार यह मानना ​​है कि DUI की संख्या जनसंख्या के अनुपात में है, जबकि βजेडगैर-भावात्मकता को पकड़ लेगा, उदाहरण के लिए बड़े शहरों में लोग नशे में ड्राइविंग के लिए अधिक प्रवृत्त होते हैं। इसके अलावा एक्स सीधे सांस्कृतिक और कानूनी वातावरण को दर्शाता है, पहले से ही आकार में समायोजित। आप खांसी में विभिन्न आकारों के शहरों के लिए लगभग एक ही एक्स के साथ समाप्त हो सकते हैं। यह आपको अन्य नियंत्रण चर जैसे रेड / ब्लू स्टेट, कोस्टल / कॉन्टिनेंटल आदि भी पेश करने की अनुमति देता है।


3

यदि आपके मॉडल को सामान्य कम से कम वर्गों के साथ अनुमान लगाया जाता है, तो आपका दूसरा प्रतिगमन समस्याग्रस्त है।

और आप यह सोचना चाह सकते हैं कि शहर के आकार के साथ आपकी त्रुटि अवधि का परिवर्तन कैसे होता है।

प्रतिगमन (2) आपके प्रतिगमन (1) के समतुल्य है जहां शहर की आबादी के वर्ग द्वारा अवलोकन किए जाते हैं :

प्रत्येक शहर के लिए मैं, चलो yमैं प्रति व्यक्ति ड्रंक ड्राइविंग की घटनाओं को होने दें एक्समैं प्रति व्यक्ति शराब की दुकान हो, और चलो nमैं शहर की आबादी हो।

प्रतिगमन (1) है:

yमैं=+एक्समैं+εमैं
यदि आप एक निरंतरता के बिना प्रतिगमन (2) चलाते हैं, तो आपने अनिवार्य रूप से जनसंख्या द्वारा प्रतिगमन (1) के प्रत्येक अवलोकन को बढ़ाया है, अर्थात, आप दौड़ रहे हैं:

nमैंyमैं=nमैं+nमैंएक्समैं+यूमैं

यह कम से कम वर्ग है , और आपके द्वारा लगाए जा रहे वजन शहर की आबादी का वर्ग है। कि तुम सबसे बड़े शहरों दे रहे हैं वजन का एक बहुत है ?!

ध्यान दें कि यदि आपने किसी शहर में प्रत्येक व्यक्ति के लिए अवलोकन किया है और प्रत्येक व्यक्ति को शहर के लिए औसत मूल्य दिया है, तो यह एक प्रतिगमन को चलाने के बराबर होगा जहां आप प्रत्येक शहर को जनसंख्या (जनसंख्या वर्ग नहीं) से भारित कर रहे हैं।


1

मैंने नकली डेटा पर कुछ प्रयोग किए, यह देखने के लिए कि कौन सी विधि सबसे अच्छी है। कृपया नीचे मेरे निष्कर्ष पढ़ें।

आइए हम दो अलग-अलग परिदृश्यों को देखें - पहला जहां DUI और शराब की दुकानों के बीच कोई सीधा संबंध नहीं है और दूसरा जहां हमारा सीधा संबंध है। फिर प्रत्येक विधि की जांच करें कि कौन सी विधि सबसे अच्छी है।

केस 1: कोई प्रत्यक्ष संबंध नहीं है लेकिन दोनों जनसंख्या से संबंधित हैं

library(rmutil)
############
## Simulating Data

set.seed(111)  
# Simulating city populations 
popln <- rpareto(n=10000,m=10000,s=1.2)

# Simulating DUI numbers
e1 <- rnorm(10000,mean=0,sd=15)
DUI = 100 + popln * 0.04 + e1
summary(DUI)
truehist(log(DUI))

# Simulating Nbr of Liquor stores
e2 <- rnorm(100,mean=0,sd=5)
Nbr_Liquor_Stores = 20 + popln * 0.009 + e2
summary(Nbr_Liquor_Stores)
truehist(log(Nbr_Liquor_Stores))

dat <- data.frame(popln,DUI,Nbr_Liquor_Stores)

अब जब डेटा सिम्युलेटेड है, तो देखते हैं कि प्रत्येक विधि कैसे किराया करती है।

## Method 0: Simple OLS
fit0 <- lm(DUI~Nbr_Liquor_Stores,data=dat)
summary(fit0)

Coefficients:
                   Estimate Std. Error  t value Pr(>|t|)    
(Intercept)       9.4353630  0.2801544    33.68   <2e-16 ***
Nbr_Liquor_Stores 4.4444207  0.0001609 27617.49   <2e-16 ***

अपेक्षानुसार Nbr_Liquor_Stores अत्यधिक महत्वपूर्ण है। हालांकि संबंध अप्रत्यक्ष है।

## Method 1: Divide Liquor Stores by population and then regress
fit1 <- lm( I(DUI/popln) ~ Nbr_Liquor_Stores, data=dat)
summary(fit1)

                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)        4.981e-01  4.143e-02  12.022   <2e-16 ***
Nbr_Liquor_Stores -1.325e-05  2.380e-05  -0.557    0.578    

Nbr_Liquor_Stores का कोई महत्व नहीं है। काम करने लगता है, लेकिन अभी तक निष्कर्ष पर नहीं कूदता है।

## Method 2: Divide Liquor Stores by population and then regress
fit2 <- lm( DUI ~ Nbr_Liquor_Stores + popln, data=dat)
summary(fit2)

                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)        1.003e+02  6.022e-01 166.569   <2e-16 ***
Nbr_Liquor_Stores -1.603e-02  3.042e-02  -0.527    0.598    
popln              4.014e-02  2.738e-04 146.618   <2e-16 ***

Nbr_Liquor_Stores महत्वपूर्ण नहीं है, पी-वैल्यू भी विधि 1 के काफी करीब है।

## Method 3: "DUI per capita" on "liquer stores per capita" and "population size" 
fit3 <- lm( I(DUI/popln) ~ I(Nbr_Liquor_Stores/popln) + popln, data=dat)
summary(fit3)

                             Estimate Std. Error t value Pr(>|t|)    
(Intercept)                 2.841e-02  1.300e-02   2.187   0.0288 *  
I(Nbr_Liquor_Stores/popln)  4.886e+00  1.603e-02 304.867   <2e-16 ***
popln                      -8.426e-09  6.675e-08  -0.126   0.8996    

(Nbr_Liquor_Stores / popln) अत्यधिक महत्वपूर्ण! उम्मीद नहीं की थी, शायद यह विधि आपके समस्या बयान के लिए सबसे अच्छा नहीं है।

केस 2: जनसंख्या और Nbr_Liquor_Stores दोनों के साथ सीधा संबंध

### Simulating Data    

set.seed(111)  
# Simulating city populations 
popln <- rpareto(n=10000,m=10000,s=1.2)

# Simulating Nbr of Liquor stores
e2 <- rnorm(100,mean=0,sd=5)
Nbr_Liquor_Stores = 20 + popln * 0.009 + e2
summary(Nbr_Liquor_Stores)
truehist(log(Nbr_Liquor_Stores))

# Simulating DUI numbers
e1 <- rnorm(10000,mean=0,sd=15)
DUI = 100 + popln * 0.021 + Nbr_Liquor_Stores * 0.01 + e1
summary(DUI)
truehist(log(DUI))

dat <- data.frame(popln,DUI,Nbr_Liquor_Stores)

आइए इस परिदृश्य में प्रत्येक विधियों का प्रदर्शन देखें।

## Method 0: Simple OLS
fit0 <- lm(DUI~Nbr_Liquor_Stores,data=dat)
summary(fit0)

                   Estimate Std. Error t value Pr(>|t|)    
(Intercept)       5.244e+01  1.951e-01   268.8   <2e-16 ***
Nbr_Liquor_Stores 2.343e+00  1.121e-04 20908.9   <2e-16 ***

उम्मीद है, लेकिन कारण निष्कर्ष बनाने के लिए एक महान विधि नहीं है।

## Method 1: Divide Liquor Stores by population and then regress
fit1 <- lm( I(DUI/popln) ~ Nbr_Liquor_Stores, data=dat)
summary(fit1)

                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)        4.705e-01  4.005e-02  11.747   <2e-16 ***
Nbr_Liquor_Stores -1.294e-05  2.301e-05  -0.562    0.574    

यह मेरे लिए एक आश्चर्य की बात है, मैं इस विधि से रिश्ते को पकड़ने की उम्मीद कर रहा था, लेकिन यह इसे नहीं उठाता है। तो इस परिदृश्य में यह विधि विफल हो जाती है!

## Method 2: Divide Liquor Stores by population and then regress
fit2 <- lm( DUI ~ Nbr_Liquor_Stores + popln, data=dat)
summary(fit2)

                    Estimate Std. Error t value Pr(>|t|)    
(Intercept)        1.013e+02  5.945e-01 170.391   <2e-16 ***
Nbr_Liquor_Stores -5.484e-02  2.825e-02  -1.941   0.0523 .  
popln              2.158e-02  2.543e-04  84.875   <2e-16 ***

Nbr_Liquor_Stores महत्वपूर्ण है, पी-मूल्य बहुत मायने रखता है। मेरे लिए एक स्पष्ट विजेता।

## Method 3: "DUI per capita" on "liquer stores per capita" and "population size" 
fit3 <- lm( I(DUI/popln) ~ I(Nbr_Liquor_Stores/popln) + popln, data=dat)
summary(fit3)

                             Estimate Std. Error t value Pr(>|t|)    
(Intercept)                 6.540e-02  1.485e-02   4.405 1.07e-05 ***
I(Nbr_Liquor_Stores/popln)  3.915e+00  1.553e-02 252.063  < 2e-16 ***
popln                      -2.056e-08  7.635e-08  -0.269    0.788    

TLDR; विधि 2 विभिन्न परिदृश्यों में सबसे सटीक पी-मान पैदा करता है।

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