आर में टिप्पणियों और / या भविष्यवाणियों को जोड़ते समय कुशलता से रैखिक प्रतिगमन को अद्यतन करना


15

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

जवाबों:


6

यदि आप जिस एल्गोरिथ्म की तलाश कर रहे हैं, वह वास्तव में एप्लाइड स्टैटिस्टिक्स 274 , 1992, वॉल्यूम 41 (2) जैसा कुछ है , तो आप सिर्फ बीगलम का उपयोग कर सकते हैं क्योंकि इसके लिए आपको किसी फाइल में अपना डेटा रखने की आवश्यकता नहीं होती है।


धन्यवाद, लेकिन क्या biglm नंबर प्रेडिक्टर्स में अपडेट कर सकता है? मुझे लगा कि यह केवल टिप्पणियों को अद्यतन करता है।
गप्पी

क्या भविष्यवाणियों को जोड़ने के लिए एक बंद-रूप समाधान है? आपको आमंत्रण के लिए समकक्ष (X'X) की आवश्यकता है, क्या वह कॉलम जोड़ने के लिए मौजूद है? किसी में, आपकी समस्याएं 'छोटी' नहीं हैं, जैसे कि, कुछ सौ (दस) हजार? क्या यह वास्तव में मायने रखता है?
डिर्क एडल्डबुलेटेल

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

2
ठीक है, मैं समझता हूं कि आपकी दुकान पर एक सक्षम आईटी टीम है। मुझे यकीन है कि वे आपके लिए कुछ ट्रेंशेंट लागू कर सकते हैं।
डिर्क एडल्डबुलेटेल

4

यहां matlab में रैंक वन क्यूआर अपडेट फ़ंक्शन है जो आपको एक कारक बचाता हैपी पी-वेरिएंट लीनियर रिग्रेशन के गुणांकों को अपडेट करने की जटिलता में ।

कुछ महीने पहले दिनों की खोज करने के बावजूद, मैं आर में एक समतुल्य नहीं पा रहा हूं (सावधान रहें कि क्रेन में कई qr.update फ़ंक्शन हैं लेकिन जब आप हुड के नीचे देखते हैं तो वे केवल नकली हैं - वे कॉल करते हैं lm.update सब एक जैसे)।

अद्यतन : पैकेज 'लीप्स' के स्रोत में प्रयास करें। R-source में, आपको एक फ़ंक्शन 'leaps.forward' मिलेगा, जो पैकेज के inthe / src स्थित एक FORTRAN रूटीन 'forwrd' कहता है, जो रैंक 1 QR अपडेट को लागू करने के लिए लगता है।


3

आप लीनियर मॉडल ऑब्जेक्ट की अद्यतन क्षमता का प्रयास क्यों नहीं करते हैं

update.lm( lm.obj, formula, data, weights, subset, na.action)

इस लिंक पर एक नज़र डालें

  • अद्यतन फ़ंक्शन की सामान्य व्याख्या के लिए:

http://stat.ethz.ch/R-manual/R-devel/library/stats/html/update.html

  • Update.lm के बारे में विशेष विवरण के लिए:

http://www.science.oregonstate.edu/~shenr/Rhelp/update.lm.html


3
दो चीजें हैं जो अपडेट के साथ काम नहीं करती हैं (NB: update.lm पदावनत है)। सबसे पहले, यह सूत्रों का उपयोग करता है। यह अपने आप में lm.fit () सेकंड की तुलना में निष्पादन को 400% धीमा बनाता है, यह पूरे मॉडल को पुन: उत्पन्न करता है। यहां कोई दक्षता लाभ नहीं हैं।
गप्पी

इस तथ्य के लिए धन्यवाद, मैं मध्यम आकार के मॉडल के लिए अपडेट का उपयोग कर रहा हूं। यह शायद आपके मामले में उपयोगी नहीं है।
डिप्स_स्टैटस

1

मैं भी लंबे समय से matlab qr अद्यतन के बराबर के लिए देख रहा हूँ, छलांग एक अच्छा तरीका लगता है!

आर में, आप पैकेज स्ट्रैचेंज में पुनरावर्ती () फ़ंक्शन को देख सकते हैं, जब आप एक अवलोकन जोड़ते हैं तो पुनरावर्ती अवशिष्ट देगा (चर नहीं!)। मेरा अनुमान है कि इसके लिए पुनरावर्ती दांव (कोड में बेटर?) प्राप्त करने के लिए थोड़ा संशोधन करना होगा।

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