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

Einen Kommentar hinzufügen

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