Як розрахувати стандартизовані коефіцієнти регресії в r


Як правило, коли ми виконуємо множинну лінійну регресію , отримані коефіцієнти регресії в результатах моделі не є стандартизованими , тобто вони використовують необроблені дані для пошуку найкращої лінії.

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

Однак можна стандартизувати кожну змінну предиктора та змінну відповіді (шляхом віднімання середнього значення кожної змінної з початкових значень, а потім розділивши його на стандартне відхилення змінних), а потім запустити регресію, яка призводить до стандартизовані коефіцієнти регресії .

Найпростішим способом обчислення стандартизованих коефіцієнтів регресії в R є використання функції scale() для стандартизації кожної змінної в моделі:

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

У наступному прикладі показано, як розрахувати стандартизовані коефіцієнти регресії на практиці.

Приклад: як обчислити стандартизовані коефіцієнти регресії в R

Припустімо, що ми маємо наступний набір даних, що містить інформацію про вік, квадратні метри та ціну продажу 12 будинків:

 #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

Припустімо, що потім ми виконуємо множинну лінійну регресію, використовуючи вік і квадратний фут як змінні прогнозу та ціну як змінну відповіді:

 #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

З результатів моделі ми можемо побачити нестандартизовані коефіцієнти регресії :

  • Перетин: 34736,54
  • Вік: -409,83
  • Квадратні фути: 100,87

На перший погляд здається, що вік має набагато більший вплив на ціну нерухомості, оскільки його коефіцієнт у таблиці регресії дорівнює -409,833 у порівнянні з лише 100,866 для змінної прогнозу квадратних метрів.

Однак стандартна помилка набагато більша для віку, ніж для квадратних метрів, тому відповідне p-значення насправді велике для віку (p = 0,520) і мале для квадратних метрів (p = 0,000).

Причина екстремальних відмінностей у коефіцієнтах регресії полягає в екстремальних відмінностях у шкалах для двох змінних:

  • Значення для віку коливаються від 4 до 44 років.
  • Значення квадратних метрів коливаються від 1200 до 2800.

Припустімо, замість цього ми нормалізуємо необроблені дані та підберемо нову модель регресії:

 #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

Коефіцієнти регресії в цій таблиці стандартизовані , тобто вони використовували стандартизовані дані, щоб відповідати цій моделі регресії.

Спосіб інтерпретації коефіцієнтів у таблиці такий:

  • Збільшення віку на одне стандартне відхилення пов’язане зі зниженням ціни на житло на 0,092 стандартного відхилення, припускаючи, що квадратні метри залишаються незмінними.
  • Збільшення квадратних метрів на одне стандартне відхилення пов’язане зі збільшенням ціни на будинок на 0,885 стандартного відхилення, якщо припустити, що вік залишається незмінним.

Тепер ми бачимо, що площа має набагато більший вплив на ціни на житло, ніж вік.

Примітка : P-значення для кожної змінної предиктора точно такі ж, як і в попередній моделі регресії.

Вирішуючи, яку остаточну модель використовувати, ми тепер знаємо, що квадратні метри набагато важливіші для прогнозування ціни будинку, ніж його вік .

Додаткові ресурси

У наступних посібниках надається додаткова інформація про регресійні моделі:

Як читати та інтерпретувати регресійну таблицю
Як інтерпретувати коефіцієнти регресії
Як інтерпретувати значення P у лінійній регресії

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *