Как рассчитать стандартизированные коэффициенты регрессии в 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 в линейной регрессии