So berechnen sie standardisierte regressionskoeffizienten in r
Wenn wir eine multiple lineare Regression durchführen, sind die resultierenden Regressionskoeffizienten in der Modellausgabe normalerweise nicht standardisiert , was bedeutet, dass die Rohdaten verwendet werden, um die am besten geeignete Linie zu finden.
model <- lm(price ~ age + sqfeet, data=df)
Es ist jedoch möglich, jede Prädiktorvariable und die Antwortvariable zu standardisieren (indem der Mittelwert jeder Variablen von den ursprünglichen Werten subtrahiert und dann durch die Standardabweichung der Variablen dividiert wird) und dann eine Regression durchzuführen, die Folgendes ergibt: standardisierte Regressionskoeffizienten .
Der einfachste Weg, standardisierte Regressionskoeffizienten in R zu berechnen, besteht darin, die Funktion „scale()“ zu verwenden, um jede Variable im Modell zu standardisieren:
model <- lm(scale(price) ~ scale(age) + scale(sqfeet), data=df)
Das folgende Beispiel zeigt, wie standardisierte Regressionskoeffizienten in der Praxis berechnet werden.
Beispiel: So berechnen Sie standardisierte Regressionskoeffizienten in R
Angenommen, wir verfügen über den folgenden Datensatz mit Informationen zum Alter, der Quadratmeterzahl und dem Verkaufspreis von 12 Häusern:
#create data frame df <- data. frame (age=c(4, 7, 10, 15, 16, 18, 24, 28, 30, 35, 40, 44), sqfeet=c(2600, 2800, 1700, 1300, 1500, 1800, 1200, 2200, 1800, 1900, 2100, 1300), price=c(280000, 340000, 195000, 180000, 150000, 200000, 180000, 240000, 200000, 180000, 260000, 140000)) #view data frame df age square feet price 1 4 2600 280000 2 7 2800 340000 3 10 1700 195000 4 15 1300 180000 5 16 1500 150000 6 18 1800 200000 7 24 1200 180000 8 28 2200 240000 9 30 1800 200000 10 35 1900 180000 11 40 2100 260000 12 44 1300 140000
Angenommen, wir führen dann eine multiple lineare Regression durch, wobei wir Alter und Quadratmeterzahl als Prädiktorvariablen und den Preis als Antwortvariable verwenden:
#fit regression model model <- lm(price ~ age + sqfeet, data=df) #view model summary summary(model) Call: lm(formula = price ~ age + sqfeet, data = df) Residuals: Min 1Q Median 3Q Max -32038 -10526 -6139 21641 34060 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 34736.54 37184.32 0.934 0.374599 age -409.83 612.46 -0.669 0.520187 sqfeet 100.87 15.75 6.405 0.000125 *** --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 24690 on 9 degrees of freedom Multiple R-squared: 0.8508, Adjusted R-squared: 0.8176 F-statistic: 25.65 on 2 and 9 DF, p-value: 0.0001916
Aus den Modellergebnissen können wir die nicht standardisierten Regressionskoeffizienten erkennen:
- Abfangen: 34736,54
- Alter: -409,83
- Quadratfuß: 100,87
Auf den ersten Blick scheint es, dass das Alter einen viel größeren Einfluss auf den Immobilienpreis hat, da sein Koeffizient in der Regressionstabelle -409,833 beträgt, verglichen mit nur 100,866 für die Quadratmeterzahl-Prädiktorvariable.
Allerdings ist der Standardfehler für das Alter viel größer als für die Quadratmeterzahl, weshalb der entsprechende p-Wert tatsächlich für das Alter groß (p = 0,520) und für die Quadratmeterzahl klein (p = 0,000) ist.
Der Grund für die extremen Unterschiede in den Regressionskoeffizienten liegt in den extremen Unterschieden in den Skalen für die beiden Variablen:
- Die Werte für das Alter liegen zwischen 4 und 44 Jahren.
- Die Quadratmeterzahl liegt zwischen 1.200 und 2.800.
Angenommen, wir normalisieren stattdessen die Rohdaten und passen ein neues Regressionsmodell an:
#standardize each variable and fit regression model model_std <- lm(scale(price) ~ scale(age) + scale(sqfeet), data=df) #turn off scientific notation options(scipen= 999 ) #view model summary summary(model_std) Call: lm(formula = scale(price) ~ scale(age) + scale(sqfeet), data = df) Residuals: Min 1Q Median 3Q Max -0.5541 -0.1820 -0.1062 0.3743 0.5891 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -0.0000000000000002253 0.1232881457926768426 0.000 1.000000 scale(age) -0.0924421263946849786 0.1381464029075653854 -0.669 0.520187 scale(sqfeet) 0.8848591938302141635 0.1381464029075653577 6.405 0.000125 (Intercept) scale(age) scale(sqfeet)*** --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 0.4271 on 9 degrees of freedom Multiple R-squared: 0.8508, Adjusted R-squared: 0.8176 F-statistic: 25.65 on 2 and 9 DF, p-value: 0.0001916
Die Regressionskoeffizienten in dieser Tabelle sind standardisiert , was bedeutet, dass standardisierte Daten zur Anpassung an dieses Regressionsmodell verwendet wurden.
Die Koeffizienten in der Tabelle sind wie folgt zu interpretieren:
- Ein Anstieg des Alters um eine Standardabweichung ist mit einem Rückgang des Hauspreises um 0,092 Standardabweichungen verbunden, vorausgesetzt, die Quadratmeterzahl bleibt konstant.
- Ein Anstieg der Quadratmeterzahl um eine Standardabweichung ist mit einem Anstieg des Immobilienpreises um 0,885 Standardabweichung verbunden, vorausgesetzt, das Alter bleibt konstant.
Wir können jetzt sehen, dass die Quadratmeterzahl einen viel größeren Einfluss auf die Immobilienpreise hat als das Alter.
Hinweis : Die p-Werte für jede Prädiktorvariable sind genau die gleichen wie im vorherigen Regressionsmodell.
Bei der Entscheidung, welches endgültige Modell wir verwenden sollen, wissen wir jetzt, dass die Quadratmeterzahl für die Vorhersage des Preises eines Hauses viel wichtiger ist als sein Alter .
Zusätzliche Ressourcen
Die folgenden Tutorials bieten zusätzliche Informationen zu Regressionsmodellen:
So lesen und interpretieren Sie eine Regressionstabelle
So interpretieren Sie Regressionskoeffizienten
So interpretieren Sie P-Werte in der linearen Regression