Як використовувати regsubsets() у r для вибору моделі
Ви можете використовувати функцію regsubsets() із пакета leaps у R, щоб знайти підмножину змінних предиктора, яка створює найкращу регресійну модель.
У наступному прикладі показано, як використовувати цю функцію на практиці.
Приклад: використання regsubsets() для вибору моделі в R
Для цього прикладу ми використаємо набір даних mtcars , вбудований у R, який містить вимірювання 11 різних атрибутів для 32 різних автомобілів.
#view first six rows of mtcars dataset
head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3,460 20.22 1 0 3 1
Припустімо, ми хочемо підібрати регресійну модель, використовуючи hp як змінну відповіді та наступні потенційні змінні предикторів:
- миль на галлон
- вага
- лайно
- qsec
Ми можемо використати функцію regsubsets() із пакета leaps , щоб виконати вичерпний пошук, щоб знайти найкращу модель регресії:
library (leaps)
#find best regression model
bestSubsets <- regsubsets(hp ~ mpg + wt + drat + qsec, data=mtcars)
#view results
summary(bestSubsets)
Subset selection object
Call: regsubsets.formula(hp ~ mpg + wt + drat + qsec, data = mtcars)
4 Variables (and intercept)
Forced in Forced out
mpg FALSE FALSE
wt FALSE FALSE
drat FALSE FALSE
qsec FALSE FALSE
1 subsets of each size up to 4
Selection Algorithm: exhaustive
mpg wt drat qsec
1 ( 1 ) "*" " " " " " "
2 (1) " " "*" " " "*"
3 ( 1 ) “*” “*” “ “ “*”
4 ( 1 ) “*” “*” “*” “*”
Зірочки ( * ) у нижній частині результату вказують, які змінні предикторів належать до найкращої регресійної моделі для кожної можливої моделі з різною кількістю змінних предикторів.
Ось як інтерпретувати результат:
Для моделі з однією змінною предиктора найкраща регресійна модель створюється з використанням mpg як змінної предиктора.
Для моделі з двома змінними предиктора найкраща регресійна модель створюється з використанням wt і qsec як змінних предиктора.
Для моделі з трьома змінними предиктора найкраща регресійна модель створюється з використанням mpg , wt і qsec як змінних предиктора.
Для моделі з чотирма змінними предиктора найкраща регресійна модель створюється з використанням mpg , wt , drat і qsec як змінних предиктора.
Зауважте, що ви також можете отримати такі показники для кожної моделі:
- rsq : значення r у квадраті для кожної моделі
- RSS : Залишкова сума квадратів для кожної моделі
- adjr2 : скориговане значення r-квадрат для кожної моделі
- cp : Cp мальв для кожної моделі
- bic : значення BIC для кожної моделі
Наприклад, ми можемо використати наступний синтаксис, щоб отримати підібране значення R-квадрат для кожної з чотирьох найкращих моделей:
#view adjusted R-squared value of each model
summary(bestSubsets)$adjr2
[1] 0.5891853 0.7828169 0.7858829 0.7787005
З результату ми бачимо:
- Скориговане значення R-квадрат для моделі з миль на галлон як прогностичною змінною становить 0,589 .
- Скориговане значення R-квадрат для моделі з wt і qsec як прогностичні змінні становить 0,783 .
- Скориговане значення R-квадрат для моделі з mp g , wt і qsec як прогностичні змінні становить 0,786 .
- Скориговане значення R-квадрат для моделі з mpg , wt , drat і qsec як прогностичні змінні становить 0,779 .
Ці значення дають нам уявлення про те, наскільки добре набір змінних предиктора передбачив значення змінної відповіді, скоригованого на основі кількості змінних предиктора в моделі.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання в R:
Як виконати множинну лінійну регресію в R
Як виконати кускову регресію в R
Як виконати сплайн-регресію в R