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?