Як розрахувати стандартизовані коефіцієнти регресії в 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 у лінійній регресії