Jak używać stepaic w r do wyboru funkcji
Kryterium informacyjne Akaike ( AIC ) to metryka używana do ilościowego określenia, jak dobrze model pasuje do zbioru danych.
Oblicza się go w następujący sposób:
AIC = 2K – 2 ln (L)
Złoto:
- K: Liczba parametrów modelu. Domyślna wartość K wynosi 2, zatem model z tylko jedną zmienną predykcyjną będzie miał wartość K wynoszącą 2+1 = 3.
- ln (L) : Logarytm wiarygodności modelu. Większość programów statystycznych może automatycznie obliczyć tę wartość.
Celem AIC jest znalezienie modelu wyjaśniającego największe zróżnicowanie danych, przy jednoczesnym karaniu modeli wykorzystujących nadmierną liczbę parametrów.
Możesz użyć funkcji stepAIC() z pakietu MASS w R, aby iteracyjnie dodawać i usuwać zmienne predykcyjne z modelu regresji, aż znajdziesz zestaw zmiennych predykcyjnych (lub „cech”), który tworzy model o najniższej wartości AIC.
Ta funkcja wykorzystuje następującą podstawową składnię:
stepAIC(obiekt, kierunek,…)
Złoto:
- obiekt : nazwa dostosowanego modelu
- kierunek : rodzaj wyszukiwania krokowego („do tyłu”, „do przodu” lub „oba”)
Poniższy przykład pokazuje, jak w praktyce wykorzystać tę funkcję.
Przykład: użycie stepAIC() do wyboru funkcji w R
W tym przykładzie użyjemy zbioru danych mtcars wbudowanego w R, który zawiera pomiary 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 stepAIC() z pakietu MASS , aby dodawać i odejmować różne zmienne predykcyjne z modelu, aż dotrzemy do modelu o najniższej możliwej wartości AIC:
library (MASS)
#fit initial multiple linear regression model
model <- lm(hp ~ mpg + wt + drat + qsec, data=mtcars)
#use both forward and backward selection to find model with lowest AIC
stepAIC(model, direction=" both ")
Start: AIC=226.88
hp ~ mpg + wt + drat + qsec
Df Sum of Sq RSS AIC
- drat 1 94.9 28183 224.98
- mpg 1 1519.4 29608 226.56
none 28088 226.88
- wt 1 3861.9 31950 229.00
-qsec 1 28102.2 56190 247.06
Step: AIC=224.98
hp ~ mpg + wt + qsec
Df Sum of Sq RSS AIC
- mpg 1 1424.5 29608 224.56
none 28183 224.98
+ drat 1 94.9 28088 226.88
- wt 1 3797.9 31981 227.03
-qsec 1 29625.1 57808 245.97
Step: AIC=224.56
hp ~ wt + qsec
Df Sum of Sq RSS AIC
none 29608 224.56
+ mpg 1 1425 28183 224.98
+ drat 1 0 29608 226.56
- wt 1 43026 72633 251.28
-qsec 1 52881 82489 255.35
Call:
lm(formula = hp ~ wt + qsec, data = mtcars)
Coefficients:
(Intercept) wt qsec
441.26 38.67 -23.47
Oto jak zinterpretować wynik:
(1) Najpierw zaczynamy od dopasowania modelu regresji do czterech zmiennych predykcyjnych. Model ten ma wartość AIC wynoszącą 226,88 .
(2) Następnie stepAIC określa, że usunięcie drat jako zmiennej predykcyjnej spowoduje dalsze zmniejszenie wartości AIC do 224,98 .
(3) Następnie model stepAIC określa, że usunięcie mpg jako zmiennej predykcyjnej spowoduje dalsze zmniejszenie wartości AIC do 224,56 .
(4) Wreszcie stepAIC stwierdza, że nie ma możliwości dalszego zmniejszenia wartości AIC poprzez dodanie lub usunięcie zmiennych.
Ostateczny model jest zatem następujący:
KM = 441,26 + 38,67 (masa) – 23,47 (qs)
Model ten ma wartość AIC wynoszącą 224,56 .
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