आर का उपयोग करते हुए लासो भविष्यवाणी के लिए मानक त्रुटियां


60

मैं भविष्यवाणी के लिए एक LASSO मॉडल का उपयोग करने की कोशिश कर रहा हूं, और मुझे मानक त्रुटियों का अनुमान लगाने की आवश्यकता है। निश्चित रूप से किसी ने पहले से ही ऐसा करने के लिए एक पैकेज लिखा है। लेकिन जहाँ तक मैं देख सकता हूँ, CRAN पर कोई भी पैकेज जो LASSO का उपयोग करके भविष्यवाणियाँ करता है, उन भविष्यवाणियों के लिए मानक त्रुटियां लौटाएगा।

तो मेरा सवाल है: क्या LASSO भविष्यवाणियों के लिए मानक त्रुटियों की गणना करने के लिए कोई पैकेज या कुछ R कोड उपलब्ध है?


3
इस प्रश्न की अंतर्निहित प्रकृति को स्पष्ट करने के लिए (क्योंकि यह आगे और पीछे बी / टी सीवी और एसओ उछल रहा है), मुझे आश्चर्य है कि क्या हम शीर्षक, रोब को संपादित कर सकते हैं। कैसे के बारे में 'क्यों LASSO मानक त्रुटियों के लिए एक पैकेज नहीं लगता है, क्या वे गणना करना मुश्किल है?' या ऐसा ही कुछ, शायद युग्मित डब्ल्यू / कुछ मामूली संपादन शरीर के अनुरूप बनाने के लिए। मुझे लगता है कि यह सीवी पर अधिक स्पष्ट रूप से विषय बना देगा ताकि यह अस्पष्टता उत्पन्न न हो और हमें आगे और पीछे न जाना पड़े।
गंग -

3
मैं सांख्यिकीय पद्धति के बारे में अधिक सवाल कर सकता था, लेकिन वास्तव में वह नहीं था जो मैं जानना चाहता था। किसी सॉफ्टवेयर को दिए गए तरीके को लागू करने के बारे में सीवी पर प्रश्नों के लिए एक जगह होनी चाहिए। Meta.stats.stackexchange.com/q/2007/159
Rob

1
आप पैकेज का उपयोग करके बायेसियन फ्रेमवर्क में आसानी से कर सकते हैं monomvn, नीचे मेरा जवाब देखें।
फाबियों

जवाबों:


46

क्यूंग एट अल। (२०१०), "दंडित प्रतिगमन, मानक त्रुटियां, और बायेसियन लासोस", बेयसियन विश्लेषण, , २ , सुझाव देते हैं कि हो सकता है कि ऋणात्मक भविष्यवाणियों के लिए मानक त्रुटियों की गणना करने के सांख्यिकीय रूप से मान्य तरीके पर सहमति न हो। तिब्शीरानी सहमत हैं (स्लाइड 43) कि मानक त्रुटियां अभी भी एक अनसुलझा मुद्दा है।


7
यही कारण है कि संकुल मानक त्रुटियों को लागू क्यों नहीं करेगा।
रोब हंडमैन

20

संबंधित नोट पर, जो सहायक हो सकता है, तिब्शीरानी और उनके सहयोगियों ने लसो के लिए एक महत्वपूर्ण परीक्षण का प्रस्ताव दिया है। कागज उपलब्ध है, और शीर्षक "लैसो के लिए एक महत्व परीक्षण"। कागज का एक मुफ्त संस्करण यहां पाया जा सकता है


आपके द्वारा उल्लिखित
mvherweg

13

संदीपन करमाकर जवाब आपको बताता है कि क्या करना है, इससे आपको "कैसे" पर मदद करनी चाहिए:

> library(monomvn)
>
> ## following the lars diabetes example
> data(diabetes)
> str(diabetes)
'data.frame':   442 obs. of  3 variables:
 $ x : AsIs [1:442, 1:10] 0.038075.... -0.00188.... 0.085298.... -0.08906.... 0.005383.... ...
      ..- attr(*, "dimnames")=List of 2
      .. ..$ : NULL
  .. ..$ : chr  "age" "sex" "bmi" "map" ...

 $ y : num  151 75 141 206 135 97 138 63 110 310 ...

[...]

> ## Bayesian Lasso regression
> reg_blas <- with(diabetes, blasso(x, y))
t=100, m=8
t=200, m=5
t=300, m=8
t=400, m=8
t=500, m=7
t=600, m=8
t=700, m=8
t=800, m=8
t=900, m=5
> 
> ## posterior mean beta (setting those with >50% mass at zero to exactly zero)
> (beta <- colMeans(reg_blas$beta) * (colMeans(reg_blas$beta != 0)  > 0.5))
      b.1       b.2       b.3       b.4       b.5       b.6       b.7       b.8 
   0.0000 -195.9795  532.7136  309.1673 -101.1288    0.0000 -196.4315    0.0000 
      b.9      b.10 
 505.4726    0.0000 
> 
> ## n x nsims matrix of realizations from the posterior predictive:
> post_pred_y <- with(reg_blas, X %*% t(beta))
> 
> ## predictions:
> y_pred <- rowMeans(post_pred_y)
> head(y_pred)
[1]  52.772443 -78.690610  24.234753   9.717777 -23.360369 -45.477199
> 
> ## sd of y:
> sd_y <- apply(post_pred_y, 1, sd)
> head(sd_y)
[1] 6.331673 6.756569 6.031290 5.236101 5.657265 6.150473
> 
> ## 90% credible intervals
> ci_y <- t(apply(post_pred_y, 1, quantile, probs=c(0.05, 0.95)))
> head(ci_y)
             5%       95%
[1,]  42.842535  62.56743
[2,] -88.877760 -68.47159
[3,]  14.933617  33.85679
[4,]   1.297094  18.01523
[5,] -32.709132 -14.13260
[6,] -55.533807 -35.77809

13

मानक त्रुटियों की गणना करने की समस्या का एकमात्र विकल्प बायेसियन LASSO है। मानक त्रुटियां स्वचालित रूप से बायेसियन LASSO में गणना की जाती हैं ... आप गिब्स नमूना योजना का उपयोग करके बायेसियन LASSO को बहुत आसानी से लागू कर सकते हैं ...

बायेसियन LASSO को मॉडल के मापदंडों को सौंपा जाने से पहले वितरण की आवश्यकता होती है। LASSO मॉडल में, हमारा वस्तुनिष्ठ कार्य है with नियमितीकरण पैरामीटर के रूप में। यहाँ के रूप में हम -norm for है, इसलिए, इसके लिए एक विशेष प्रकार के पूर्व वितरण की आवश्यकता होती है, LAPLACE वितरण घनत्व के रूप में घातीय वितरण के साथ सामान्य वितरण के पैमाने पर वितरण करता है। प्रत्येक पैरामीटर के पूर्ण सशर्त पोस्टरीयर के आधार पर कटौती की जानी है।||yXβ||22+λ||β||1λ1β

फिर एक चेन का अनुकरण करने के लिए गिब्स नमूनाकरण का उपयोग कर सकते हैं। देखें पार्क और Cassella (2008), "बायेसियन कमंद", Jasa , 103 , 482

लगातार LASSO की तीन अंतर्निहित कमियां हैं:

  1. एक को क्रॉस सत्यापन या अन्य माध्यमों से चुनना होगा ।λ

  2. मानक त्रुटियों को गणना करना मुश्किल है क्योंकि और अन्य एल्गोरिदम लिए बिंदु अनुमान उत्पन्न करते हैं ।β

  3. हाथ में समस्या की पदानुक्रमित संरचना को अक्सर मॉडल का उपयोग करके एन्कोड नहीं किया जा सकता है, जो कि बायेसियन फ्रेमवर्क में काफी आसान है।


11

ऊपर दिए गए उत्तरों को जोड़ने के लिए, यह मुद्दा प्रतीत होता है कि बूटस्ट्रैप भी अपर्याप्त है क्योंकि दंडित मॉडल से अनुमान पक्षपाती है और बूटस्ट्रैपिंग केवल विचरण से बात करेगा - अनुमान के पूर्वाग्रह की अनदेखी। यह पृष्ठ 18 पर दंडित पैकेज के लिए विगनेट में संक्षेप में प्रस्तुत किया गया है ।

यदि भविष्यवाणी के लिए उपयोग किया जा रहा है, लेकिन मॉडल से एक मानक त्रुटि क्यों आवश्यक है? क्या आप उचित या बूटस्ट्रैप को उचित रूप से पार नहीं कर सकते और एमएसई जैसे भविष्यवाणी से संबंधित मीट्रिक के आसपास एक मानक त्रुटि उत्पन्न कर सकते हैं?


3
बूटस्ट्रैपिंग दोनों पूर्वाग्रह के लिए अनुमान और सही कर सकते हैं, हालांकि नमूनों को काफी बड़ा होना चाहिए।
Glen_b

3

R, https://cran.r-project.org/web/packages/selectiveInference/index.html में चयनात्मक पहचान पैकेज है , जो निम्नलिखित पेपर के आधार पर, LOO द्वारा फिट किए गए आपके गुणांकों के लिए आत्मविश्वास अंतराल और पी मान प्रदान करता है। :

स्टीफन रीड, जेरोम फ्रीडमैन, और रोब टिब्शिरानी (2014)। लसो रिग्रेशन में एरर वेरिएशन के आकलन का अध्ययन। arXiv: 1311.5274

पुनश्च: बस एहसास है कि यह आपके मापदंडों के लिए त्रुटि अनुमान पैदा करता है, आपके अंतिम भविष्यवाणी पर त्रुटि के लिए निश्चित नहीं है, अगर ऐसा आपके बाद है ... मुझे लगता है कि आप "जनसंख्या पूर्वानुमान अंतराल" का उपयोग कर सकते हैं यदि आप चाहें तो (द्वारा) एक बहुभिन्नरूपी सामान्य वितरण के बाद फिट के अनुसार मापदंडों को फिर से खोलना)।

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