Berechnen die R-Quadrat-Statistik in R
- Formel für die R-Quadrat-Statistik
- Erhalten die R-Quadrat-Statistik aus dem linearen Regressionsmodell
- Berechnen die R-Quadrat-Statistik manuell
- Erstellen eine benutzerdefinierte Funktion zum Berechnen von R-Quadrat
- Fazit
Die R-Quadrat-Statistik ist die Zahl, die verwendet wird, um zu beurteilen, wie gut ein lineares Regressionsmodell zu den Daten passt. Er gibt den Varianzanteil der abhängigen Variablen an, der durch die unabhängigen Variablen des Modells erklärt wird.
Die R-Quadrat-Statistik bezieht sich nur auf lineare Regressionsmodelle. In einem linearen Regressionsmodell ist die abhängige Variable quantitativ.
Das Modell geht davon aus, dass die abhängige Variable linear von den unabhängigen Variablen abhängt. R-Quadrat ist auch relevant für einfache Erweiterungen des linearen Modells, einschließlich Polynom- und Wechselwirkungsterme.
Die anderen Punkte, die zur R-Quadrat-Statistik zu beachten sind, sind:
- Es ist ein Verhältnis, also hat es keine Einheit.
- Da es sich um einen Anteil handelt, reicht er immer von 0 bis 1.
- Ein Wert von 0 bedeutet, dass das Modell keine Varianz erklärt.
- Ein Wert von 1 bedeutet, dass das Modell alle Varianzen erklärt.
- Normalerweise wird ein Modell, das einen höheren R-Quadrat-Wert liefert, als besser angesehen.
- Das Hinzufügen weiterer unabhängiger Variablen erhöht immer den Wert von R-Quadrat. Dies kann das Modell zu stark an die Daten anpassen. Daher kann es manchmal nützlich sein, ein Modell zu wählen, das ein etwas niedrigeres R-Quadrat ergibt als ein anderes, das die Daten überpasst.
- Das lineare Modell liefert nur für die Daten, die zum Erstellen des Modells verwendet wurden, eine gültige R-Quadrat-Statistik. Das Modell kann einen Vektor abhängiger Variablenwerte unter Verwendung eines anderen Datensatzes vorhersagen. Aber wir sollten keine R-Quadrat-Statistik für solche vorhergesagten Werte berechnen.
Formel für die R-Quadrat-Statistik
Angenommen, wir versuchen, eine Variable Y
mithilfe einiger unabhängiger Variablen vorherzusagen. Wir bauen unser lineares Regressionsmodell mit vollständigen Beobachtungen auf, in denen die Werte aller Variablen, einschließlich der abhängigen Variablen Y
, bekannt sind.
Das arithmetische Mittel von Y
ist der geschätzte Wert von Y
in Ermangelung eines linearen Regressionsmodells. Es wird als Grundlinie genommen.
Die Differenzen zwischen den beobachteten Werten von Y
und dem arithmetischen Mittel von Y
sind die Gesamtabweichungen. Die Summe der Quadrate dieser Differenzen wird als Total Sum of Squares, TSS, bezeichnet.
Die Differenzen zwischen den beobachteten Werten von Y
und Y
, die das lineare Regressionsmodell vorhersagt, sind die Restabweichungen. Diese Abweichungen bleiben auch dann bestehen, wenn wir versuchen, Y
unter Verwendung der unabhängigen Variablen in einem linearen Regressionsmodell vorherzusagen.
Die Summe der Quadrate dieser Differenzen wird als Residual Sum of Squares, RSS, bezeichnet. Die R-Quadrat-Statistik wird als (TSS - RSS)/TSS berechnet. Somit hat das Modell den Anteil der Varianz von Y
erklärt.
Ein besseres Modell hat normalerweise eine höhere R-Quadrat-Statistik, da RSS niedriger ist.
Erhalten die R-Quadrat-Statistik aus dem linearen Regressionsmodell
Die Grundinstallation von R enthält die lineare Modellierungsfunktion lm()
als Teil des stats
-Pakets, das standardmäßig geladen wird.
Es hilft uns, einfach lineare Regressionsmodelle zu erstellen. Das erste Argument für diese Funktion ist die Spezifikation des Modells.
Wir werden spezifizieren, dass wir sehen wollen, wie Y
von X
abhängt. Das zweite Argument ist die Quelle der Daten. Wir geben den Datenrahmen an, in dem R die Variablen X
und Y
findet.
Die Funktion summary()
gibt die R-Quadrat-Statistik des Modells aus. Im folgenden Beispiel erstellen wir ein einfaches lineares Regressionsmodell und veranlassen R, den Wert von R-Quadrat zu melden.
Beispielcode:
# Create sample data.
# Independent variable, X.
X = c(1, 2, 3, 4, 5)
# Dependent Variable, Y, of the form 2x+1, with added error.
Y = c(2, 6, 7, 10, 9)
# Make a data frame, df.
df = data.frame(X,Y)
# Build the linear regression model named lin.mod.
lin.mod = lm(formula = Y~X, data = df)
# Check R^2 in the model summary. It is labeled as Multiple R-squared.
summary(lin.mod)
Ausgabe:
Call:
lm(formula = Y ~ X, data = df)
Residuals:
1 2 3 4 5
-1.2 1.0 0.2 1.4 -1.4
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.4000 1.5319 0.914 0.428
X 1.8000 0.4619 3.897 0.030 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1.461 on 3 degrees of freedom
Multiple R-squared: 0.8351, Adjusted R-squared: 0.7801
F-statistic: 15.19 on 1 and 3 DF, p-value: 0.02998
Der Aufruf der Funktion summary()
erzeugte viel Output. Wir wollten den Wert von Multiple R-squared erhalten.
Berechnen die R-Quadrat-Statistik manuell
Die R-Quadrat-Statistik erhält man mit der Funktion für den Korrelationskoeffizienten cor()
. Wir müssen jedoch sicherstellen, dass wir es nur dann im richtigen Kontext verwenden, wenn es angemessen ist.
- Im Falle einer einfachen linearen Regression ist R-Quadrat gleich dem Quadrat des Korrelationskoeffizienten zwischen
Y
undX
, wobeiX
die unabhängige Variable ist. - Im Falle einer multiplen linearen Regression ist R-Quadrat gleich dem Quadrat des Korrelationskoeffizienten zwischen
Y
und den vom Modell vorhergesagten Werten vonY
.
Das folgende Beispiel veranschaulicht diese Berechnung mit dem von uns erstellten einfachen linearen Regressionsmodell.
Beispielcode:
# The cor() function gives the correlation coefficient.
# Its square is equal to the R-squared statistic.
cor(X,Y)^2
Ausgabe:
> cor(X,Y)^2
[1] 0.8350515
Wir stellen fest, dass das Quadrat des Korrelationskoeffizienten mit dem R-Quadrat-Wert übereinstimmt, der von der Zusammenfassung des linearen Regressionsmodells angegeben wird.
Erstellen eine benutzerdefinierte Funktion zum Berechnen von R-Quadrat
Wenn wir häufig die R-Quadrat-Statistik zwischen zwei numerischen Vektoren gleicher Länge manuell berechnen müssen, können wir eine benutzerdefinierte Funktion schreiben, um unsere Aufgabe zu vereinfachen.
Die benutzerdefinierte Funktion hat die Form function_name = function(argument list) {body of function}
. Sie wird wie folgt aufgerufen: function_name(parameter list)
. Wir werden die Funktion cor()
in unserer benutzerdefinierten Funktion verwenden.
Beispielcode:
# Define the custom function.
VectorRSq = function(x, y) {cor(x, y)^2}
# Call the custom function.
VectorRSq(X, Y)
Ausgabe:
> VectorRSq(X, Y)
[1] 0.8350515
Hilfe bekommen
Um mehr über die R-Quadrat-Statistik zu erfahren, lesen Sie das Kapitel über lineare Regression in dem ausgezeichneten Lehrbuch An Introduction to Statistical Learning, das kostenlos online verfügbar ist.
Um mehr über das Erstellen benutzerdefinierter Funktionen in R zu erfahren, lesen Sie das Kapitel über Funktionen in Hadley Wickhams Online-Buch R for Data Science.
Um Hilfe zu den Funktionen lm()
, cor()
oder c()
zu erhalten, klicken Sie im Menü von R Studio auf Hilfe > R-Hilfe durchsuchen
und geben Sie den Funktionsnamen ohne Klammern in das Suchfeld ein.
Fazit
Die R-Quadrat-Statistik wird verwendet, um zu beurteilen, wie gut ein lineares Regressionsmodell zu den Daten passt. Sie gilt nur für die Daten, die zur Erstellung des Modells verwendet wurden. Die von der linearen Modellierungsfunktion lm()
generierte Zusammenfassung gibt uns den Wert der R-Quadrat-Statistik.
Bei Bedarf können wir mit der Funktion cor()
die R-Quadrat-Statistik zwischen zwei numerischen Vektoren gleicher Länge berechnen. Dies kann direkt oder über eine benutzerdefinierte Funktion erfolgen.