चकाचौंध के साथ Glmnet पैकेज में Deviance माप की सटीक परिभाषा?


12

अपने वर्तमान रीसच के लिए मैं एक द्विपद निर्भर चर पर R में glmnet पैकेज के माध्यम से लासो विधि का उपयोग कर रहा हूं।

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

मेरा प्रश्न: चमक-दमक में देवत्व को वास्तव में कैसे परिभाषित किया गया है? इसकी गणना कैसे की जाती है?

(इसी पेपर में "फ्रीडमैन एट अल द्वारा समन्वित वंश के माध्यम से सामान्यीकृत रैखिक मॉडल के लिए नियमितीकरण पथ। मैं केवल इस टिप्पणी को cv.glmnet में उपयोग किए गए अवतरण पर पाता हूं:" इसका मतलब है कि भटकाव (शून्य से दो बार लॉग-आउट होने की संभावना) डेटा) "(पी। 17))।


यह वैसा ही है जैसा कि glm(या कम से कम, इसका उपयोग किया जाता है - यह होना चाहिए - भक्ति की केवल एक परिभाषा है जिससे मैं परिचित हूं)।
हांग ओयई

हां, लेकिन मुझे लगता है कि वे इसे किसी तरह से आगे बढ़ाते हैं जैसा कि मेरी पहली पोस्ट में उद्धरण द्वारा इंगित किया गया है। जैसा कि मैं समझता हूं कि दो मॉडल के प्रदर्शन की तुलना की जा सकती है, लेकिन फिर लेखक क्रॉस-वैलिडेशन के बाएं डेटा को कैसे शामिल करते हैं? "बाईं ओर डेटा पर लॉग-लाइबिलिटी से दो बार माइनस" कैसे समझ में आता है?
जो Wmann

1
ठीक है, धन्यवाद, अब मुझे लगता है कि मुझे यह मिल गया है: विचलन को -2 * लॉग-लाइबिलिटी या बल्कि (2 * लॉग-लाइबिलिटी) / (शून्य-मॉडल की लॉग-लाइबिलिटी) के रूप में परिभाषित किया गया है। यह भी बताता है कि, लैंबडा के विभिन्न मूल्यों के लिए उनका विचलन क्यों अंतराल 0,2 से अधिक नहीं है। मॉडल को क्रॉस-सत्यापन के k-1 सिलवटों पर अनुमानित किया गया है और शेष गुना पर लागू किया गया है। शेष गुना पर आवेदन के लिए लॉग-लाइबिलिटी-स्कोर की गणना की जाती है। यह के बार दोहराया जाता है और उपरोक्त निश्चित विचलन उपाय के प्रत्येक लंबो के लिए k परिणाम का अर्थ वापस किया जाता है।
Jo Wmann

1
हाँ, यह हमेशा प्रत्येक मेमने के लिए सभी सिलवटों पर औसत होता है। मुझे लगता है कि आप या तो सीधे डिवैल्यू का उपयोग कर सकते हैं या wrt to null मॉडल, जो शायद इंटरसेप्ट केवल मॉडल है। दो नुकसान हैं: ए) सिलवटों में डेटा बिंदुओं की सटीक समान संख्या नहीं हो सकती है ख) प्रत्येक तह में अलग-अलग डेटा (स्वाभाविक रूप से) होते हैं। ठीक करने के लिए (क) आप चयनित गुना में डेटा बिंदुओं की संख्या से केवल विचलन को विभाजित कर सकते हैं। ठीक करने के लिए (ए) और (बी) एक ही समय में अनुपात दृष्टिकोण का उपयोग करें। विचलन मॉडल मानता है कि डेटा सेट प्रत्येक मॉडल में समान है (एमएपी अनुमान में समान विचार जहां वे हर को अनदेखा करते हैं)।
कागडस ओजेंक

1
हालाँकि एक बार जब तह चित्र में आ जाती है तो हर तरफ से समान नहीं होता है। इसलिए अनुपात हर को रद्द करके इसका ख्याल रखता है। लेकिन मैं नहीं जानता कि जब आप फोल्ड्स पर औसत करते हैं तो यह कितनी बड़ी समस्या है।
कागडस ओजेंक

जवाबों:


9

में फ्राइडमैन, Hastie, और Tibshirani (2010) , एक द्विपद मॉडल के विचलन, पार सत्यापन प्रक्रिया के तहत, के रूप में गणना की जाती है

लेफ्ट-आउट डेटा पर लॉग-इन की संभावना दो बार शून्य (पृष्ठ 17)

यह देखते हुए कि यह (p। 2 और 5 के लिए) दस्तावेज़glmnet में उद्धृत किया गया है , संभवतः पैकेज में उपयोग किया जाने वाला सूत्र है।

और वास्तव में, फ़ंक्शन के लिए स्रोत कोड में cvlognet, प्रतिक्रिया के लिए अवशिष्ट अवशिष्टों की गणना की जाती है

-2*((y==2)*log(predmat)+(y==1)*log(1-predmat))

predmatबस कहाँ है

predict(glmnet.object,x,lambda=lambda)

और एन्कोलिंग cv.glmnetफ़ंक्शन से पास हुआ । मैंने पेपर के लिए JStatSoft पेज पर उपलब्ध सोर्स कोड का उपयोग किया , और मुझे नहीं पता कि यह कोड कितना अप-टू-डेट है। इस पैकेज का कोड आश्चर्यजनक रूप से सरल और पठनीय है; आप हमेशा टाइप करके अपने लिए जाँच कर सकते हैं glmnet:::cv.glmnet


1

@Shadowtalker के जवाब के अलावा, जब मैं पैकेज glmnet का उपयोग कर रहा था, तो मुझे लगता है कि क्रॉस-वैलिडेशन में कमी किसी तरह सामान्यीकृत है।

library(glmnet)
data(BinomialExample)

fit = cv.glmnet(x,y, family = c("binomial"), intercept = FALSE)
head(fit$cvm) # deviance from test samples at lambda value

# >[1] 1.383916 1.359782 1.324954 1.289653 1.255509 1.223706

# deviance from (test samples? all samples?) at lambda value
head(deviance(fit$glmnet.fit))

# >[1] 138.6294 134.5861 131.1912 127.1832 122.8676 119.1637

रेफरी: विचलन आर दस्तावेज़

क्योंकि अगर मैं विभाजन करता हूं,

head(deviance(fit$glmnet.fit)) / length(y))

परिणाम है

[1] 1.386294 1.345861 1.311912 1.271832 1.228676 1.191637

जो फिट $ cvm के बहुत करीब है।

हो सकता है कि इस सवाल पर @ होंग ओई ने क्या टिप्पणी की:

/programming/43468665/poisson-deviance-glmnet

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