Cara menggunakan stepaic di r untuk pemilihan fitur
Kriteria Informasi Akaike ( AIC ) adalah metrik yang digunakan untuk mengukur seberapa cocok suatu model dengan kumpulan data.
Ini dihitung sebagai berikut:
AIC = 2K – 2 ln (L)
Emas:
- K : Jumlah parameter model. Nilai default K adalah 2, sehingga model dengan hanya satu variabel prediktor akan memiliki nilai K 2+1 = 3.
- ln (L) : Log-likelihood model. Kebanyakan perangkat lunak statistik dapat menghitung nilai ini secara otomatis untuk Anda.
AIC dirancang untuk menemukan model yang menjelaskan variasi data paling banyak, sekaligus memberi sanksi pada model yang menggunakan jumlah parameter berlebihan.
Anda dapat menggunakan fungsi stepAIC() dari paket MASS di R untuk menambahkan dan menghapus variabel prediktor secara berulang dari model regresi hingga Anda menemukan kumpulan variabel prediktor (atau “fitur”) yang menghasilkan model dengan nilai AIC terendah.
Fungsi ini menggunakan sintaks dasar berikut:
stepAIC(objek, arah,…)
Emas:
- objek : Nama model yang disesuaikan
- arah : jenis pencarian langkah yang akan digunakan (“mundur”, “maju” atau “keduanya”)
Contoh berikut menunjukkan cara menggunakan fungsi ini dalam praktiknya.
Contoh: Menggunakan stepAIC() untuk Pemilihan Fitur di R
Untuk contoh ini, kita akan menggunakan kumpulan data mtcars yang dibangun ke dalam R, yang berisi pengukuran pada 11 atribut berbeda untuk 32 mobil berbeda:
#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
Misalkan kita ingin menyesuaikan model regresi menggunakan hp sebagai variabel respon dan variabel prediktor potensial berikut:
- mpg
- berat
- kotoran
- qdetik
Kita dapat menggunakan fungsi stepAIC() dari paket MASS untuk menambah dan mengurangi berbagai variabel prediktor dari model hingga kita mendapatkan model dengan nilai AIC serendah mungkin:
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
Berikut cara menafsirkan hasilnya:
(1) Pertama, kita mulai dengan memasang model regresi dengan empat variabel prediktor. Model ini memiliki nilai AIC sebesar 226.88 .
(2) Selanjutnya, stepAIC menentukan bahwa menghilangkan drat sebagai variabel prediktor akan semakin menurunkan nilai AIC menjadi 224.98 .
(3) Selanjutnya, model stepAIC menentukan bahwa menghilangkan mpg sebagai variabel prediktor akan semakin menurunkan nilai AIC menjadi 224.56 .
(4) Terakhir, stepAIC menentukan bahwa tidak ada cara untuk mengurangi nilai AIC lebih lanjut dengan menambah atau menghapus variabel.
Oleh karena itu model terakhirnya adalah:
hp = 441,26 + 38,67 (berat) – 23,47 (qdetik)
Model ini memiliki nilai AIC sebesar 224.56 .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di R:
Cara melakukan regresi linier berganda di R
Bagaimana melakukan regresi sepotong-sepotong di R
Bagaimana melakukan regresi spline di R