Jak używać regsubsets() w r do wyboru modelu
Możesz użyć funkcji regsubsets() z pakietu jumps w R, aby znaleźć podzbiór zmiennych predykcyjnych, który tworzy najlepszy model regresji.
Poniższy przykład pokazuje, jak w praktyce wykorzystać tę funkcję.
Przykład: użycie regsubsets() do wyboru modelu w R
W tym przykładzie użyjemy zbioru danych mtcars wbudowanego w R, który zawiera pomiary dotyczące 11 różnych atrybutów dla 32 różnych samochodów.
#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
Załóżmy, że chcemy dopasować model regresji, wykorzystując hp jako zmienną odpowiedzi i następujące potencjalne zmienne predykcyjne:
- mpg
- waga
- gówno
- sek
Możemy użyć funkcji regsubsets() z pakietu jumps , aby przeprowadzić wyczerpujące wyszukiwanie w celu znalezienia najlepszego modelu regresji:
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 ) “*” “*” “*” “*”
Gwiazdki ( * ) na dole wyniku wskazują, które zmienne predykcyjne należą do najlepszego modelu regresji dla każdego możliwego modelu z inną liczbą zmiennych predykcyjnych.
Oto jak zinterpretować wynik:
W przypadku modelu z pojedynczą zmienną predykcyjną najlepszy model regresji tworzony jest przy użyciu mpg jako zmiennej predykcyjnej.
W przypadku modelu z dwiema zmiennymi predykcyjnymi najlepszy model regresji tworzony jest przy użyciu wt i qsec jako zmiennych predykcyjnych.
W przypadku modelu z trzema zmiennymi predykcyjnymi najlepszy model regresji tworzony jest przy użyciu mpg , wt i qsec jako zmiennych predykcyjnych.
W przypadku modelu z czterema zmiennymi predykcyjnymi najlepszy model regresji tworzony jest przy użyciu zmiennych predykcyjnych mpg , wt , drat i qsec .
Pamiętaj, że dla każdego modelu możesz także wyodrębnić następujące metryki:
- rsq : wartość r do kwadratu dla każdego modelu
- RSS : Pozostała suma kwadratów dla każdego modelu
- adjr2 : Skorygowana wartość r-kwadrat dla każdego modelu
- cp : Cp malw dla każdego modelu
- bic : Wartość BIC dla każdego modelu
Na przykład możemy użyć następującej składni, aby wyodrębnić dopasowaną wartość R-kwadrat dla każdego z czterech najlepszych modeli:
#view adjusted R-squared value of each model
summary(bestSubsets)$adjr2
[1] 0.5891853 0.7828169 0.7858829 0.7787005
Z wyniku możemy zobaczyć:
- Skorygowana wartość R-kwadrat dla modelu z mpg jako zmienną predykcyjną wynosi 0,589 .
- Skorygowana wartość R-kwadrat dla modelu z wt i qsec jako zmiennymi predykcyjnymi wynosi 0,783 .
- Skorygowana wartość R-kwadrat dla modelu z mpg , wt i qsec jako zmiennymi predykcyjnymi wynosi 0,786 .
- Skorygowana wartość R-kwadrat dla modelu z mpg , wt , drat i qsec jako zmiennymi predykcyjnymi wynosi 0,779 .
Wartości te dają nam wyobrażenie o tym, jak dobrze zestaw zmiennych predykcyjnych przewidział wartość zmiennej odpowiedzi, skorygowanej na podstawie liczby zmiennych predykcyjnych w modelu.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:
Jak wykonać wielokrotną regresję liniową w R
Jak wykonać regresję fragmentaryczną w R
Jak wykonać regresję spline w R