Jak obliczyć standaryzowane współczynniki regresji w r


Zwykle, gdy przeprowadzamy wielokrotną regresję liniową , uzyskane współczynniki regresji w wynikach modelu nie są standaryzowane , co oznacza, że na podstawie surowych danych znajdują się linie najlepiej dopasowane.

 model <- lm(price ~ age + sqfeet, data=df)

Istnieje jednak możliwość standaryzacji każdej zmiennej predykcyjnej i zmiennej odpowiedzi (odbierając średnią wartość każdej zmiennej od wartości wyjściowych i następnie dzieląc ją przez odchylenie standardowe zmiennych), a następnie przeprowadzić regresję, w wyniku której standaryzowane współczynniki regresji .

Najprostszym sposobem obliczenia standaryzowanych współczynników regresji w R jest użycie funkcjiscale() w celu standaryzacji każdej zmiennej w modelu:

 model <- lm(scale(price) ~ scale(age) + scale(sqfeet), data=df)

Poniższy przykład pokazuje, jak w praktyce obliczyć standaryzowane współczynniki regresji.

Przykład: Jak obliczyć standaryzowane współczynniki regresji w R

Załóżmy, że mamy następujący zbiór danych zawierający informacje na temat wieku, powierzchni i ceny sprzedaży 12 domów:

 #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

Załóżmy, że następnie przeprowadzamy wielokrotną regresję liniową, używając wieku i metrażu jako zmiennych predykcyjnych oraz ceny jako zmiennej odpowiedzi:

 #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

Z wyników modelu możemy zobaczyć niestandaryzowane współczynniki regresji :

  • Przecięcie: 34736,54
  • Wiek: -409,83
  • Stopy kwadratowe: 100,87

Na pierwszy rzut oka wydaje się, że wiek ma znacznie większy wpływ na cenę nieruchomości, ponieważ jego współczynnik w tabeli regresji wynosi -409,833 w porównaniu do zaledwie 100,866 dla zmiennej predykcyjnej metra kwadratowego.

Jednak błąd standardowy jest znacznie większy w przypadku wieku niż w przypadku metra kwadratowego, dlatego odpowiadająca mu wartość p jest w rzeczywistości duża dla wieku (p = 0,520) i mała dla kwadratów metra kwadratowego (p = 0,000).

Przyczyną skrajnych różnic we współczynnikach regresji są skrajne różnice w skalach dla dwóch zmiennych:

  • Wartości dla przedziału wiekowego od 4 do 44 lat.
  • Wartości metrów kwadratowych wahają się od 1200 do 2800.

Załóżmy, że zamiast tego normalizujemy surowe dane i dopasowujemy nowy model regresji:

 #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

Współczynniki regresji w tej tabeli są standaryzowane , co oznacza, że do dopasowania tego modelu regresji wykorzystano standardowe dane.

Sposób interpretacji współczynników w tabeli jest następujący:

  • Wzrost wieku o jedno odchylenie standardowe jest powiązany ze spadkiem ceny domu o 0,092 odchylenia standardowego, przy założeniu, że powierzchnia domu pozostaje stała.
  • Wzrost metra kwadratowego o jedno odchylenie standardowe jest powiązany ze wzrostem ceny domu o 0,885 odchylenia standardowego, przy założeniu, że wiek pozostaje stały.

Widzimy teraz, że powierzchnia domu ma znacznie większy wpływ na ceny domów niż wiek.

Uwaga : Wartości p dla każdej zmiennej predykcyjnej są dokładnie takie same jak w poprzednim modelu regresji.

Podejmując decyzję, który model ostatecznie zastosować, wiemy, że powierzchnia domu jest o wiele ważniejsza w przewidywaniu ceny domu niż jego wiek .

Dodatkowe zasoby

Poniższe samouczki zawierają dodatkowe informacje na temat modeli regresji:

Jak czytać i interpretować tabelę regresji
Jak interpretować współczynniki regresji
Jak interpretować wartości P w regresji liniowej

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *