पॉसों प्रतिगमन मॉडल को मान्य करने के लिए लागत समारोह


12

गणना डेटा के लिए जो मैंने एकत्र किया है, मैं मॉडल बनाने के लिए पॉइसन रिग्रेशन का उपयोग करता हूं। मैं glmआर में फ़ंक्शन का उपयोग कर रहा हूं, जहां मैं उपयोग करता हूं family = "poisson"। संभावित मॉडलों का मूल्यांकन करने के लिए (मेरे पास कई भविष्यवक्ता हैं) मैं एआईसी का उपयोग करता हूं। अब तक सब ठीक है। अब मैं क्रॉस-वैरिफिकेशन करना चाहता हूं। मैं पैकेज cv.glmसे फ़ंक्शन का उपयोग करके पहले से ही ऐसा करने में सफल रहा boot। से प्रलेखन की cv.glmमैं द्विपद डेटा आप एक विशिष्ट लागत समारोह का उपयोग करने के लिए एक सार्थक भविष्यवाणी त्रुटि प्राप्त करने की आवश्यकता के लिए कि जैसे देखते हैं। हालाँकि, मुझे अभी तक इस बारे में कोई जानकारी नहीं है कि किस लागत समारोह के लिए उपयुक्त है family = poisson, और एक व्यापक Google खोज ने कोई विशिष्ट परिणाम नहीं दिया। मेरा सवाल यह है कि किसी के पास शेड के लिए कुछ प्रकाश है जिसके लिए लागत समारोह उपयुक्त है cv.glm


1
cv.glmnetपैकेज में फ़ंक्शन पॉसों परिवार के लिए glmnetउपयोग करता type.measure="deviance"है।
आरसीएस

सख्ती से, प्रलेखन से पता चलता है कि यह बाइनरी डेटा के लिए एक विशिष्ट लागत फ़ंक्शन का उपयोग करने के लिए समझ में आता है।
कोरोन

@corone निरंतर डेटा नहीं है, न ही बाइनरी डेटा। इसलिए मैं गणना डेटा के लिए उपयुक्त एक लागत फ़ंक्शन की तलाश कर रहा था।
पॉल हेमस्ट्रा

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

जवाबों:


12

आपके विशेष मामले में कुछ विशेष नहीं मानते हुए, मुझे लगता है कि डिफ़ॉल्ट (मीन स्क्वायर त्रुटि) का उपयोग करने के लिए या तर्क की त्रुटि का उपयोग करने के लिए एक अच्छा तर्क है, या यहां तक ​​कि ची-चुकता त्रुटि भी है।

लागत समारोह का उद्देश्य यह व्यक्त करना है कि आप "भविष्यवाणियां" कैसे गलत पूर्वानुमानों के साथ हैं, विशेष रूप से "गलतता" आपको सबसे अधिक परेशान करती है। यह बाइनरी प्रतिक्रियाओं के लिए विशेष रूप से महत्वपूर्ण है, लेकिन किसी भी स्थिति में मायने रख सकता है।

मीन स्क्वायर त्रुटि (प्रतिक्रियाओं में)

C=1ni(YiY^i)2

MSE का उपयोग करना आप ऊपर और नीचे की त्रुटियों के लिए समान रूप से संवेदनशील हैं और बड़ी और छोटी भविष्यवाणियों के लिए समान रूप से संवेदनशील हैं। यह करने के लिए एक सुंदर मानक बात है, और इसलिए मुझे नहीं लगता कि ज्यादातर स्थितियों में डूब जाएगा।

मीन स्क्वायर त्रुटि (लॉग प्रतिक्रियाओं का)

C=1ni(lnYilnY^i)2

क्योंकि आप गणना डेटा के साथ काम कर रहे हैं, यह तर्क दिया जा सकता है कि आप सममित नहीं हैं और न ही आकार उदासीन हैं। 10 की भविष्यवाणी के लिए 10 काउंट से बाहर होना 1000 की भविष्यवाणी से बहुत अलग है। यह कुछ हद तक "विहित" लागत फ़ंक्शन है, क्योंकि आपने लिंक फ़ंक्शन तक की लागतों का मिलान किया है। यह सुनिश्चित करता है कि लागत मॉडल में ग्रहण किए जा रहे विचरण वितरण से मेल खाती है।

ची-चुकता त्रुटि

सी=1nΣमैं(Yमैं-Y^मैं)2Y^मैं

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


वंचना पर

प्रश्न प्रलेखन उदाहरण का हवाला देता है जहां उनके पास एक द्विआधारी प्रतिक्रिया चर है, इसलिए एक अलग लागत फ़ंक्शन का उपयोग करें। एक द्विआधारी प्रतिक्रिया के लिए मुद्दा यह है कि जीएलएम 0 और 1 के बीच एक वास्तविक संख्या का अनुमान लगाएगा, भले ही प्रतिक्रिया हमेशा 0 या 1 हो। यह कहना पूरी तरह से वैध है कि सही संख्या के करीब वह बेहतर प्रतिक्रिया है। पूर्वानुमान, लेकिन अक्सर लोग यह नहीं चाहते हैं। तर्क दिया जा रहा है कि किसी को अक्सर 0 या 1 के रूप में कार्य करना चाहिए, और इसलिए 0. के लिए पूर्वानुमान के रूप में 0.5 से कम कुछ भी ले जाएगा। उस स्थिति में, यह केवल "गलत" पूर्वानुमानों की संख्या की गणना करने के लिए समझ में आता है। यहाँ तर्क यह है कि एक सच्चे / झूठे प्रश्न के लिए आप केवल कभी सही या गलत हो सकते हैं - गलत का कोई वर्गीकरण नहीं है।

आपके मामले में आपके पास गणना डेटा है। यहां भविष्यवाणियों को स्वीकार करना कहीं अधिक आम है जो प्रतिक्रिया के समान समर्थन पर नहीं हैं। उदाहरण के लिए प्रति परिवार 2.4 बच्चों की भविष्यवाणी, या प्रति वर्ष 9.7 मौतें। आमतौर पर कोई भी इस बारे में कुछ भी करने की कोशिश नहीं करेगा क्योंकि यह "सही" या "गलत" होने के बारे में नहीं है, जैसा कि आप प्राप्त कर सकते हैं। यदि आपके पास वास्तव में एक पूर्वानुमान होना चाहिए जो एक पूर्णांक है, तो शायद इसलिए कि आपके पास बहुत कम गणना दर है, तो कोई कारण नहीं है कि आप पहले भविष्यवाणी को गोल नहीं कर सकते हैं और "संपूर्ण संख्या" या त्रुटि की गणना कर सकते हैं। इस स्थिति में, ऊपर दिए गए तीनों भाव अभी भी लागू होते हैं, लेकिन आपको पहले को गोल करना होगा ।Y^


लॉग तब्दील प्रतिक्रिया के माध्य वर्ग त्रुटि के माध्य वर्ग त्रुटि के साथ काम करने के बजाय, यह GLMs के लिए बेहतर हो सकता है भारित माध्य वर्ग त्रुटि का उपयोग कर 1 / भिन्नता वजन (आर के glm आउटपुट के $ वेट स्लॉट द्वारा दिया गया, poisson के लिए = 1 / ई (वाई))। यह वह कार्य है जो मैं किसी भी प्रकार के GLM के लिए मानता हूं।
टॉम वेन्सलेर्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.