आर में जीएलएम के लिए आर-वर्ग की गणना कैसे करें
अक्सर जब हम एक रेखीय प्रतिगमन मॉडल को फिट करते हैं, तो हम यह मूल्यांकन करने के लिए आर-स्क्वायर का उपयोग करते हैं कि कोई मॉडल डेटा में कितनी अच्छी तरह फिट बैठता है।
आर वर्ग प्रतिक्रिया चर में भिन्नता के अनुपात का प्रतिनिधित्व करता है जिसे प्रतिगमन मॉडल में भविष्यवक्ता चर द्वारा समझाया जा सकता है।
यह संख्या 0 से 1 तक होती है, उच्च मान बेहतर मॉडल फिट का संकेत देते हैं।
हालाँकि, सामान्य रैखिक मॉडल जैसे लॉजिस्टिक रिग्रेशन मॉडल और पॉइसन रिग्रेशन मॉडल के लिए कोई आर-स्क्वायर मान नहीं है।
इसके बजाय, हम मैकफैडेन के आर-स्क्वायर के रूप में ज्ञात एक मीट्रिक की गणना कर सकते हैं, जो 0 से लेकर 1 के नीचे तक होती है, जिसमें उच्च मान बेहतर मॉडल फिट का संकेत देते हैं।
मैकफैडेन के आर वर्ग की गणना के लिए हम निम्नलिखित सूत्र का उपयोग करते हैं:
मैकफैडेन का आर-स्क्वायर = 1 – (लॉग संभावना मॉडल / शून्य लॉग संभावना)
सोना:
- लॉग संभावना मॉडल : वर्तमान फिट मॉडल का लॉग संभावना मूल्य
- शून्य लॉग संभावना : शून्य मॉडल का लॉग संभावना मान (केवल अवरोधन वाला मॉडल)
व्यवहार में, 0.40 से ऊपर के मान इंगित करते हैं कि एक मॉडल डेटा को बहुत अच्छी तरह से फिट करता है।
निम्नलिखित उदाहरण दिखाता है कि आर में लॉजिस्टिक रिग्रेशन मॉडल के लिए मैकफैडेन के आर-स्क्वायर की गणना कैसे करें।
उदाहरण: आर में मैकफैडेन के आर-वर्ग की गणना
इस उदाहरण के लिए, हम आईएसएलआर पैकेज से डिफ़ॉल्ट डेटासेट का उपयोग करेंगे। हम डेटासेट का सारांश लोड करने और प्रदर्शित करने के लिए निम्नलिखित कोड का उपयोग कर सकते हैं:
#install and load ISLR package install. packages (' ISLR ') library (ISLR) #define dataset data <- ISLR::Default #view summary of dataset summary(data) default student balance income No:9667 No:7056 Min. : 0.0 Min. : 772 Yes: 333 Yes:2944 1st Qu.: 481.7 1st Qu.:21340 Median: 823.6 Median: 34553 Mean: 835.4 Mean: 33517 3rd Qu.:1166.3 3rd Qu.:43808 Max. :2654.3 Max. :73554 #find total observations in dataset nrow(data) [1] 10000
इस डेटासेट में 10,000 व्यक्तियों के बारे में निम्नलिखित जानकारी शामिल है:
- डिफ़ॉल्ट: इंगित करता है कि किसी व्यक्ति ने डिफ़ॉल्ट किया है या नहीं।
- छात्र: इंगित करता है कि कोई व्यक्ति छात्र है या नहीं।
- शेष: किसी व्यक्ति द्वारा रखा गया औसत शेष।
- आय: व्यक्ति की आय.
हम एक लॉजिस्टिक रिग्रेशन मॉडल बनाने के लिए छात्र की स्थिति, बैंक बैलेंस और आय का उपयोग करेंगे जो इस संभावना की भविष्यवाणी करता है कि कोई व्यक्ति डिफ़ॉल्ट होगा:
#fit logistic regression model model <- glm(default~student+balance+income, family=' binomial ', data=data) #view model summary summary(model) Call: glm(formula = default ~ balance + student + income, family = "binomial", data = data) Deviance Residuals: Min 1Q Median 3Q Max -2.4691 -0.1418 -0.0557 -0.0203 3.7383 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -1.087e+01 4.923e-01 -22.080 < 2e-16 *** balance 5.737e-03 2.319e-04 24.738 < 2e-16 *** studentYes -6.468e-01 2.363e-01 -2.738 0.00619 ** income 3.033e-06 8.203e-06 0.370 0.71152 --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 2920.6 on 9999 degrees of freedom Residual deviance: 1571.5 on 9996 degrees of freedom AIC: 1579.5 Number of Fisher Scoring iterations: 8
इसके बाद, हम इस मॉडल के लिए मैकफैडेन के आर-वर्ग मान की गणना करने के लिए निम्नलिखित सूत्र का उपयोग करेंगे:
#calculate McFadden's R-squared for model with(summary(model), 1 - deviance/null. deviance ) [1] 0.4619194
मैकफैडेन का आर-वर्ग मान 0.4619194 निकला। यह मान काफी अधिक है, जो दर्शाता है कि हमारा मॉडल डेटा को अच्छी तरह से फिट बैठता है और इसमें उच्च पूर्वानुमानित शक्ति है।
यह भी ध्यान दें कि हम मॉडल के लिए मैकफैडेन आर-स्क्वायर मान की गणना करने के लिए pscl पैकेज से pR2() फ़ंक्शन का भी उपयोग कर सकते हैं:
#install and load pscl package install. packages (' pscl ') library (pscl) #calculate McFadden's R-squared for model pR2(model)[' McFadden '] McFadden 0.4619194
ध्यान दें कि यह मान पहले गणना किए गए मान से मेल खाता है।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य कार्य कैसे करें:
आर में आर-वर्ग की गणना कैसे करें
आर में समायोजित आर-वर्ग की गणना कैसे करें
एक अच्छा आर-वर्ग मान क्या है?