So berechnen sie das r-quadrat für glm in r


Wenn wir ein lineares Regressionsmodell anpassen, verwenden wir häufig das R-Quadrat, um zu bewerten, wie gut ein Modell zu den Daten passt.

R im Quadrat stellt den Anteil der Varianz in der Antwortvariablen dar, der durch die Prädiktorvariablen in einem Regressionsmodell erklärt werden kann.

Diese Zahl reicht von 0 bis 1, wobei höhere Werte auf eine bessere Modellanpassung hinweisen.

Für allgemeine lineare Modelle wie logistische Regressionsmodelle und Poisson-Regressionsmodelle gibt es jedoch keinen R-Quadrat-Wert.

Stattdessen können wir eine Metrik namens McFaddens R-Quadrat berechnen, die von 0 bis knapp 1 reicht, wobei höhere Werte eine bessere Modellanpassung anzeigen.

Wir verwenden die folgende Formel, um das R-Quadrat von McFadden zu berechnen:

McFaddens R-Quadrat = 1 – (Log-Likelihood- Modell / Null- Log-Likelihood)

Gold:

  • Log-Likelihood- Modell : Log-Likelihood-Wert des aktuell angepassten Modells
  • Null- Log-Likelihood : Log-Likelihood-Wert des Nullmodells (nur Modell mit Schnittpunkt)

In der Praxis zeigen Werte über 0,40 an, dass ein Modell sehr gut zu den Daten passt.

Das folgende Beispiel zeigt, wie das R-Quadrat von McFadden für ein logistisches Regressionsmodell in R berechnet wird.

Beispiel: Berechnung des R-Quadrats von McFadden in R

Für dieses Beispiel verwenden wir den Standarddatensatz aus dem ISLR-Paket. Mit dem folgenden Code können wir eine Zusammenfassung des Datensatzes laden und anzeigen:

 #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

Dieser Datensatz enthält die folgenden Informationen zu 10.000 Personen:

  • Standard: Gibt an, ob eine Person in Verzug geraten ist oder nicht.
  • Student: gibt an, ob eine Person Student ist oder nicht.
  • Guthaben: Durchschnittliches Guthaben einer Person.
  • Einkommen: Einkommen des Einzelnen.

Wir werden Studentenstatus, Bankguthaben und Einkommen verwenden, um ein logistisches Regressionsmodell zu erstellen, das die Wahrscheinlichkeit vorhersagt, dass eine bestimmte Person zahlungsunfähig wird:

 #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

Als Nächstes verwenden wir die folgende Formel, um den R-Quadrat-Wert von McFadden für dieses Modell zu berechnen:

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

[1] 0.4619194

Der R-Quadrat-Wert von McFadden beträgt 0,4619194 . Dieser Wert ist ziemlich hoch, was darauf hindeutet, dass unser Modell gut zu den Daten passt und über eine hohe Vorhersagekraft verfügt.

Beachten Sie auch, dass wir auch die Funktion pR2() aus dem pscl- Paket verwenden könnten, um den McFadden-R-Quadrat-Wert für das Modell zu berechnen:

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

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

 McFadden 
0.4619194

Beachten Sie, dass dieser Wert dem zuvor berechneten entspricht.

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Aufgaben in R ausführen:

So berechnen Sie das R-Quadrat in R
So berechnen Sie das angepasste R-Quadrat in R
Was ist ein guter R-Quadrat-Wert?

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert