LASSO सहसंबद्ध भविष्यवक्ताओं का चयन कब करता है?


13

मैं निम्नलिखित कोड के साथ R में पैकेज 'लार्स' का उपयोग कर रहा हूं:

> library(lars)
> set.seed(3)
> n <- 1000
> x1 <- rnorm(n)
> x2 <- x1+rnorm(n)*0.5
> x3 <- rnorm(n)
> x4 <- rnorm(n)
> x5 <- rexp(n)
> y <- 5*x1 + 4*x2 + 2*x3 + 7*x4 + rnorm(n)
> x <- cbind(x1,x2,x3,x4,x5)
> cor(cbind(y,x))
            y          x1           x2           x3          x4          x5
y  1.00000000  0.74678534  0.743536093  0.210757777  0.59218321  0.03943133
x1 0.74678534  1.00000000  0.892113559  0.015302566 -0.03040464  0.04952222
x2 0.74353609  0.89211356  1.000000000 -0.003146131 -0.02172854  0.05703270
x3 0.21075778  0.01530257 -0.003146131  1.000000000  0.05437726  0.01449142
x4 0.59218321 -0.03040464 -0.021728535  0.054377256  1.00000000 -0.02166716
x5 0.03943133  0.04952222  0.057032700  0.014491422 -0.02166716  1.00000000
> m <- lars(x,y,"step",trace=T)
Forward Stepwise sequence
Computing X'X .....
LARS Step 1 :    Variable 1     added
LARS Step 2 :    Variable 4     added
LARS Step 3 :    Variable 3     added
LARS Step 4 :    Variable 2     added
LARS Step 5 :    Variable 5     added
Computing residuals, RSS etc .....

मुझे 5 निरंतर चर के साथ एक डाटासेट मिला है और मैं एक एकल (निर्भर) चर y के लिए एक मॉडल फिट करने की कोशिश कर रहा हूं। मेरे दो भविष्यवक्ता एक-दूसरे (X1, x2) के साथ अत्यधिक सहसंबद्ध हैं।

जैसा कि आप ऊपर के उदाहरण में देख सकते हैं कि 'स्टेप वाइज' विकल्प के साथ लार्स फ़ंक्शन पहले उस चर को चुनता है जो y के साथ सबसे अधिक सहसंबद्ध है। मॉडल में प्रवेश करने के लिए अगला चर वह है जो अवशिष्ट के साथ सबसे अधिक सहसंबद्ध है। वास्तव में, यह x4 है:

> round((cor(cbind(resid(lm(y~x1)),x))[1,3:6]),4)
    x2     x3     x4     x5 
0.1163 0.2997 0.9246 0.0037  

अब, अगर मैं 'लैस्सो' विकल्प करता हूं:

> m <- lars(x,y,"lasso",trace=T)
LASSO sequence
Computing X'X ....
LARS Step 1 :    Variable 1     added
LARS Step 2 :    Variable 2     added
LARS Step 3 :    Variable 4     added
LARS Step 4 :    Variable 3     added
LARS Step 5 :    Variable 5     added

यह पहले दो चरणों में मॉडल के सहसंबंधित चर को जोड़ता है। कई पत्र-पत्रिकाओं में मैंने जो पढ़ा है, उसके विपरीत है। तब अधिकांश का कहना है कि यदि चर का एक समूह है, जिसके बीच सहसंबंध बहुत अधिक हैं, तो 'लास्सो' समूह से केवल एक चर का चयन यादृच्छिक रूप से करता है।

क्या कोई इस व्यवहार का उदाहरण दे सकता है? या समझाएं, मेरे चर X1, x2 को एक के बाद एक (एक साथ) मॉडल में क्यों जोड़ा जाता है?


यह कम से कम कोण प्रतिगमन है जो लैस्सो चरणों का स्पष्टीकरण देता है।
माइकल आर। चेरनिक

@MichaelChernick: यदि आप उस Rकॉल को देखते हैं जिसे ओपी बना रहा है और संबंधित आउटपुट वह प्रदान करता है, तो आप देखेंगे कि वह वास्तव में, लासो का उपयोग कर रहा है। जैसा कि मुझे यकीन है कि आप जानते हैं, लार्स एल्गोरिथ्म का एक छोटा सा गला लसो के नियमितीकरण पथ को जन्म देता है।
कार्डिनल

मेरा "अनुमान" यह है कि, चूंकि x2 में X1, X1 और x2 की 4 इकाइयां शामिल हैं, वास्तव में सबसे अधिक विचरण (9 इकाइयां) हैं। यदि आप x2 से 2 के गुणांक को कम करते हैं, तो आपको यह देखना चाहिए कि x4 को X1 और x2 से पहले चुना गया है।

क्या आप उस "यादृच्छिकता" के प्रमाण के लिए कुछ संदर्भ प्रदान कर सकते हैं? धन्यवाद।
ज़ियायुंग

मैं तुम्हें इस पत्र पर अपना उत्तर मिल सकता है लगता है: arxiv.org/pdf/1204.1605.pdf
TPArrow

जवाबों:


15

संपार्श्विकता की समस्या का रास्ता खत्म हो गया है!

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

Collinearity एक कम जानकारी वाली समस्या है। डेव जाइल्स के ब्लॉग पर आर्ट गोल्डबर्गर द्वारा कोलिनियरिटी के इस पैरोडी पर एक नज़र है । जिस तरह से हम संपार्श्विकता के बारे में बात करते हैं वह एक आंशिक प्रतिगमन गुणांक के बजाय एक मतलब के लिए लागू होने पर मूर्खतापूर्ण ध्वनि करेगा।

अभी भी यकीन नहीं हुआ? यह कुछ कोड के लिए समय है।

set.seed(34234)

N <- 1000
x1 <- rnorm(N)
x2 <- 2*x1 + .7 * rnorm(N)
cor(x1, x2) # correlation is .94
plot(x2 ~ x1)

मैंने अत्यधिक सहसंबद्ध चर X1 और x2 बनाए हैं, लेकिन आप नीचे दिए गए कथानक में देख सकते हैं कि जब X1 -1 के पास है, तब भी हम x2 में परिवर्तनशीलता देखते हैं। यहाँ छवि विवरण दर्ज करें

अब "सत्य" को जोड़ने का समय आ गया है:

y <- .5 * x1 - .7 * x2 + rnorm(N) # Data Generating Process

क्या ताकतवर कोलिनियरिटी समस्या के बीच साधारण प्रतिगमन सफल हो सकता है?

summary(lm(y ~ x1 + x2))

अरे हाँ, यह हो सकता है:

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.0005334  0.0312637  -0.017    0.986    
x1           0.6376689  0.0927472   6.875 1.09e-11 ***
x2          -0.7530805  0.0444443 -16.944  < 2e-16 ***

अब मैंने LASSO के बारे में बात नहीं की, जिस पर आपका प्रश्न केंद्रित था। लेकिन मुझे आपसे यह पूछना चाहिए। यदि पुराने स्कूल प्रतिगमन w / पिछड़े उन्मूलन को मिलीभगत से मूर्ख नहीं बनाया जाता है, तो आप अत्याधुनिक LASSO क्यों सोचेंगे?


L1

विचार यह था कि ओपी की वर्णित घटना की व्याख्या करने के लिए सरल अवधारणाओं का उपयोग किया जा सकता है, और यह कि इन अवधारणाओं को मौलिक रूप से डेटा-संचालित नियमितीकरण शब्द के अतिरिक्त नहीं बदला गया है।
बेन ओगोरक

7

बेन के जवाब ने मुझे प्रेरित किया कि वह उनके बताए रास्ते पर एक कदम और आगे बढ़ेगा, अगर "सच्चाई", वाई, अन्य स्थितियों में क्या होगा।

मूल उदाहरण में, y दो अत्यधिक सहसंबद्ध चर X1 और x2 पर निर्भर है। यह मानते हुए कि एक और चर है, x3, कहते हैं

x3 = c (1: N) / 250 # N को इससे पहले परिभाषित किया गया है, N = 1000, x3 समान पैमाने पर X1 के रूप में है, और x3 के पैमाने के नीचे रेखीय प्रतिगमन परिणामों पर प्रभाव है।

"सत्य" y को अब अनुसरण के रूप में परिभाषित किया गया है

y = .5 * X1 - .7 * x3 + rnorm (N) # डेटा जनरेट करने की प्रक्रिया

रिग्रेशन का क्या होगा?

सारांश (lm (y ~ X1 + x2))

मजबूत कोलीनियरिटी प्रभाव मौजूद है। X2 की मानक त्रुटि बहुत बड़ी है। हालाँकि, रैखिक प्रतिगमन x2 को एक गैर-महत्वपूर्ण चर के रूप में पहचानता है।

     Coefficients:
        Estimate Std. Error t value Pr(>|t|)    
(Intercept) -1.39164    0.04172 -33.354  < 2e-16 ***
x1           0.65329    0.12550   5.205 2.35e-07 ***
x2          -0.07878    0.05848  -1.347    0.178 

vif (lm (y ~ X1 + x2))

x1       x2 
9.167429 9.167429 

एक और प्रतिगमन मामले के बारे में क्या?

सारांश (lm (y ~ X1 + x2 + x3))

Coefficients:
        Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.02100    0.06573   0.319    0.749    
x1           0.55398    0.09880   5.607 2.67e-08 ***
x2          -0.02966    0.04604  -0.644    0.520    
x3          -0.70562    0.02845 -24.805  < 2e-16 ***

चर x2 महत्वपूर्ण नहीं है, और रैखिक प्रतिगमन द्वारा हटाने की सिफारिश की गई है।

vif (lm (y ~ X1 + x2 + x3))

x1       x2       x3 
9.067865 9.067884 1.000105 

उपरोक्त परिणामों से, कोलीनियरिटी रैखिक प्रतिगमन में कोई समस्या नहीं है, और वीआईएफ की जांच करना बहुत मददगार नहीं है।

आइए एक और स्थिति देखें। x3 = c (1: N) # N से पहले परिभाषित किया गया है, N = 1000, x3 उसी पैमाने में नहीं है जैसा कि X1 है।

"सत्य" y को ऊपर के रूप में परिभाषित किया गया है

y = .5 * X1 - .7 * x3 + rnorm (N) # डेटा जनरेट करने की प्रक्रिया

रिग्रेशन का क्या होगा?

सारांश (lm (y ~ X1 + x2))

मजबूत कोलीनियरिटी प्रभाव मौजूद है। एक्स 1, एक्स 2 की मानक त्रुटियां बहुत बड़ी हैं। रैखिक प्रतिगमन महत्वपूर्ण चर X1 की पहचान करने में विफल रहता है।

   Coefficients:
        Estimate Std. Error t value Pr(>|t|)    
(Intercept) -350.347      6.395 -54.783   <2e-16 ***
x1            25.207     19.237   1.310    0.190    
x2           -12.212      8.963  -1.362    0.173  

vif (lm (y ~ X1 + x2))

    x1       x2 
9.167429 9.167429 

एक और प्रतिगमन मामले के बारे में क्या?

सारांश (lm (y ~ X1 + x2 + x3))

Coefficients:
          Estimate Std. Error   t value Pr(>|t|)    
(Intercept)  0.0360104  0.0610405     0.590    0.555    
x1           0.5742955  0.0917555     6.259 5.75e-10 ***
x2          -0.0277623  0.0427585    -0.649    0.516    
x3          -0.7000676  0.0001057 -6625.170  < 2e-16 ***

चर x2 महत्वपूर्ण नहीं है, और रैखिक प्रतिगमन द्वारा हटाने की सिफारिश की गई है।

vif (lm (y ~ X1 + x2 + x3))

x1       x2       x3 
9.182507 9.184419 1.001853 

नोट: X1 और x3 पर y का प्रतिगमन। ध्यान दें कि X1 की मानक त्रुटि केवल 0.03 है।

सारांश (lm (y ~ X1 + x3))

Coefficients:
              Estimate Std. Error   t value Pr(>|t|)    
(Intercept) -0.1595528  0.0647908    -2.463    0.014 *  
x1           0.4871557  0.0321623    15.147   <2e-16 ***
x3          -0.6997853  0.0001121 -6240.617   <2e-16 ***

उपरोक्त परिणामों के आधार पर, मेरा निष्कर्ष यह है कि

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

दिलचस्प है, हालांकि ये परिणाम भविष्यवक्ताओं / सुविधाओं और y के बीच रैखिक संबंधों को मानते हैं। वे व्यापक से बहुत दूर हैं। यदि आपके भविष्यवाणियों में मजबूत गैर रेखीय संबंध हैं (उदाहरण के लिए बातचीत की शर्तें X1 * x2, चरण फ़ंक्शन की विशेषताएं / डमी vars (1 यदि X1 कुछ निरंतर के लिए c), आदि)? यदि आप शोर अनुपात डेटा के लिए कम सिग्नल के साथ काम करते हैं, जैसे कि एल्गोरिदमिक ट्रेडिंग के लिए फीचर निर्माण में, आप ओवरसाइटिंग को कम करने के लिए हमेशा परमानेंट मॉडल बनाते हैं (क्योंकि आपके सिग्नल कमजोर हैं) इसलिए डब्ल्यू
मल्टीकोलिनरिटी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.