R'de glm için r-kare nasıl hesaplanır


Çoğunlukla doğrusal bir regresyon modeli uydurduğumuzda, modelin verilere ne kadar iyi uyduğunu değerlendirmek için R-kareyi kullanırız.

R kare, bir regresyon modelinde yordayıcı değişkenler tarafından açıklanabilen yanıt değişkenindeki varyansın oranını temsil eder.

Bu sayı 0 ile 1 arasında değişir ve daha yüksek değerler modelin daha iyi uyumunu gösterir.

Ancak lojistik regresyon modelleri ve Poisson regresyon modelleri gibi genel doğrusal modeller için R-kare değeri yoktur.

Bunun yerine, McFadden’s R-Squared olarak bilinen, 0’dan 1’in biraz altına kadar değişen ve daha yüksek değerler daha iyi model uyumunu gösteren bir ölçüm hesaplayabiliriz.

McFadden’in R karesini hesaplamak için aşağıdaki formülü kullanırız:

McFadden’s R-Squared = 1 – (log olabilirlik modeli / sıfır log olabilirlik)

Altın:

  • log olabilirlik modeli : mevcut takılan modelin log olabilirlik değeri
  • sıfır log olasılığı : boş modelin log olabilirlik değeri (yalnızca kesmeli model)

Uygulamada 0,40’ın üzerindeki değerler bir modelin verilere çok iyi uyum sağladığını gösterir.

Aşağıdaki örnek, R’deki bir lojistik regresyon modeli için McFadden’in R-karesinin nasıl hesaplanacağını gösterir.

Örnek: R’de McFadden’in R-karesini hesaplamak

Bu örnek için ISLR paketindeki varsayılan veri kümesini kullanacağız. Veri kümesinin özetini yüklemek ve görüntülemek için aşağıdaki kodu kullanabiliriz:

 #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

Bu veri seti 10.000 kişiye ilişkin aşağıdaki bilgileri içermektedir:

  • Varsayılan: Bir kişinin temerrüde düşüp düşmediğini gösterir.
  • Öğrenci: Bireyin öğrenci olup olmadığını belirtir.
  • bakiye: Bir bireyin taşıdığı ortalama bakiye.
  • gelir: Bireyin geliri.

Belirli bir bireyin temerrüde düşme olasılığını tahmin eden bir lojistik regresyon modeli oluşturmak için öğrenci durumunu, banka bakiyesini ve geliri kullanacağız:

 #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

Daha sonra bu model için McFadden’in R-kare değerini hesaplamak amacıyla aşağıdaki formülü kullanacağız:

 #calculate McFadden's R-squared for model
with(summary(model), 1 - deviance/null. deviance )

[1] 0.4619194

McFadden’ın R-kare değeri 0,4619194 olarak çıkıyor. Bu değerin oldukça yüksek olması modelimizin verilere iyi uyum sağladığını ve tahmin gücünün yüksek olduğunu göstermektedir.

Ayrıca modelin McFadden R-kare değerini hesaplamak için pscl paketindeki pR2() işlevini de kullanabileceğimizi unutmayın:

 #install and load pscl package
install. packages (' pscl ')
library (pscl)

#calculate McFadden's R-squared for model
pR2(model)[' McFadden ']

 McFadden 
0.4619194

Bu değerin daha önce hesaplanan değere karşılık geldiğini unutmayın.

Ek kaynaklar

Aşağıdaki eğitimlerde R’de diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

R’de R-kare nasıl hesaplanır
R’de düzeltilmiş R-kare nasıl hesaplanır
İyi bir R-kare değeri nedir?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir