क्या R में दो glm मॉडल को संयोजित करने का एक आसान तरीका है?


9

मेरे पास R में दो लॉजिस्टिक रिग्रेशन मॉडल हैं glm()। वे दोनों एक ही चर का उपयोग करते हैं, लेकिन एक मैट्रिक्स के विभिन्न सबसेट का उपयोग करके बनाया गया था। क्या एक औसत मॉडल प्राप्त करने का एक आसान तरीका है जो गुणांक के साधन देता है और फिर भविष्यवाणी () फ़ंक्शन के साथ इसका उपयोग करता है?

[क्षमा करें, यदि इस प्रकार का प्रश्न किसी प्रोग्रामिंग साइट पर पोस्ट किया जाना चाहिए तो मुझे बताएं और मैं इसे वहीं पोस्ट कर दूंगा]

धन्यवाद


1
आप संबंधित थ्रेड में कुछ उपयोगी जानकारी आँकड़े.स्टैकएक्सचेंज . com / q / 8502 / 919 पर पा सकते हैं
whuber

आर में, caretमॉडल के संयोजन के लिए पैकेज में कुछ शांत विशेषताएं हैं।
screechOwl

जवाबों:


2

क्या आप अनुमानित संभावनाओं का औसत, या गुणांक का औसत लेना चाहते हैं? वे अलग-अलग परिणाम देंगे, क्योंकि एक लॉजिस्टिक प्रतिगमन में रैखिक भविष्यवक्ता का एक nonlinear परिवर्तन शामिल है।

ऐसा करने के लिए एक समारोह कुछ इस तरह होगा। पूर्व प्राप्त avgकरने के "prob"लिए सेट करें , या बाद के लिए कुछ और।

pred_comb <- function(mod1, mod2, dat, avg="prob", ...)
{
    xb1 <- predict(mod1, dat, type="link", ...)
    xb2 <- predict(mod2, dat, type="link", ...)
    if(avg == "prob")
        (plogis(xb1) + plogis(xb2))/2
    else plogis((xb1 + xb2)/2)
}

@ हाँग ओय: धन्यवाद! यह कोड वास्तव में उपयोगी है, और यह ट्रिक करेगा, लेकिन जो मैं मुख्य रूप से लक्ष्य कर रहा था वह एक ऐसा फ़ंक्शन था जो एक नया आर मॉडल देगा जिसे मैं बाद में वर्कफ़्लो में भविष्यवाणी () में डाल सकता था। हालाँकि, मुझे लगता है कि आपका कार्य बहुत सुंदर है, और जिस तरह से आप इसे संभाव्यता देने के लिए सेट कर सकते हैं।
एंड्रयू

@ और इसके लिए आप R के ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग का लाभ उठा सकते हैं। अपने दो मॉडल सूची में रखें, और इसे एक कक्षा दें, कहें glm_2। उपरोक्त फ़ंक्शन को कॉल करें predict.glm_2और फिर आप predict()अपनी वस्तु पर आवश्यकतानुसार उपयोग कर सकते हैं ।
होंग ओई

2
गुणांकों का औसत उचित क्यों है? यदि दो डेटासेट के अलग-अलग आकार हैं, तो निश्चित रूप से कम से कम किसी प्रकार के भारित औसत का उपयोग किया जाना चाहिए।
whuber

@ हाँग - धन्यवाद, मैं यह कोशिश करूँगा। @whuber - इसे इंगित करने के लिए धन्यवाद। यदि मेरे दो डेटासेट एक ही आकार के हैं, तो एक समस्या का वज़न है (मैंने पहले इस बारे में नहीं सोचा था)। यदि वे अलग-अलग हैं तो क्या मैं आकारों के अनुपात से वजन उठाता हूं (जैसे यदि एक दो बार बड़ा है, तो क्या मैं इसे दो बार वजन देता हूं)?
एंड्रयू

@ और यह डेटा काउंट द्वारा वेट करने के लिए तभी सही है जब दोनों सबसेट में स्वतंत्र चर का मान समान हो। एक बेहतर दृष्टिकोण (जो सैद्धांतिक रूप से मान्य भी है) के लिए, आपके प्रश्न के लिए एक टिप्पणी में संदर्भित थ्रेड को देखें।
whuber
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.