आर में जीएलएम के लिए आर-वर्ग की गणना कैसे करें


अक्सर जब हम एक रेखीय प्रतिगमन मॉडल को फिट करते हैं, तो हम यह मूल्यांकन करने के लिए आर-स्क्वायर का उपयोग करते हैं कि कोई मॉडल डेटा में कितनी अच्छी तरह फिट बैठता है।

आर वर्ग प्रतिक्रिया चर में भिन्नता के अनुपात का प्रतिनिधित्व करता है जिसे प्रतिगमन मॉडल में भविष्यवक्ता चर द्वारा समझाया जा सकता है।

यह संख्या 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

ध्यान दें कि यह मान पहले गणना किए गए मान से मेल खाता है।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि आर में अन्य सामान्य कार्य कैसे करें:

आर में आर-वर्ग की गणना कैसे करें
आर में समायोजित आर-वर्ग की गणना कैसे करें
एक अच्छा आर-वर्ग मान क्या है?

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *