Panduan lengkap regresi langkah demi langkah di r
Regresi bertahap adalah prosedur yang dapat kita gunakan untuk membangun model regresi dari sekumpulan variabel prediktor dengan memasukkan dan menghapus prediktor secara bertahap ke dalam model hingga tidak ada lagi alasan yang valid secara statistik untuk memasukkan atau hapus lebih banyak.
Tujuan dari regresi bertahap adalah untuk membuat model regresi yang mencakup semua variabel prediktor yang secara statistik berhubungan signifikan dengan variabel respon .
Tutorial ini menjelaskan cara melakukan prosedur regresi langkah demi langkah berikut di R:
- Seleksi maju selangkah demi selangkah
- Seleksi mundur selangkah demi selangkah
- Seleksi langkah demi langkah di kedua arah
Untuk setiap contoh, kami akan menggunakan kumpulan data mtcars bawaan:
#view first six rows of mtcars
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
Kami akan menyesuaikan model regresi linier berganda dengan menggunakan mpg (mil per galon) sebagai variabel respons dan 10 variabel lainnya dalam kumpulan data sebagai variabel prediktor potensial.
Untuk setiap contoh, kita akan menggunakan fungsi step() bawaan paket stats untuk melakukan pemilihan bertahap, yang menggunakan sintaks berikut:
tahap (hanya model intersepsi, arah, jangkauan)
Emas:
- original model only : rumus model aslinya saja
- Arah: Mode pencarian langkah dapat berupa “keduanya”, “mundur” atau “maju”.
- scope: rumus yang menentukan prediktor yang ingin kita masukkan ke dalam model
Contoh 1: Seleksi maju selangkah demi selangkah
Kode berikut menunjukkan cara melakukan seleksi langkah demi langkah:
#define intercept-only model intercept_only <- lm(mpg ~ 1, data=mtcars) #define model with all predictors all <- lm(mpg ~ ., data=mtcars) #perform forward stepwise regression forward <- step(intercept_only, direction=' forward ', scope= formula (all), trace=0) #view results of forward stepwise regression forward$anova Step Df Deviance Resid. Df Resid. Dev AIC 1 NA NA 31 1126.0472 115.94345 2 + wt -1 847.72525 30 278.3219 73.21736 3 + cyl -1 87.14997 29 191.1720 63.19800 4 + hp -1 14.55145 28 176.6205 62.66456 #view final model forward$coefficients (Intercept) wt cyl hp 38.7517874 -3.1669731 -0.9416168 -0.0180381
Catatan: Argumen trace=0 memberitahu R untuk tidak menampilkan hasil lengkap dari pemilihan langkah demi langkah. Hal ini dapat memakan banyak ruang jika terdapat banyak variabel prediktor.
Berikut cara menafsirkan hasilnya:
- Pertama, kami menyesuaikan model intersep saja. Model ini memiliki AIC 115.94345 .
- Kemudian kami memasukkan semua model yang mungkin ke dalam prediktor. Model yang menghasilkan AIC terendah dan juga mengalami penurunan AIC yang signifikan secara statistik dibandingkan dengan model baseline saja yang menggunakan prediktor berat . Model ini memiliki AIC sebesar 73.21736 .
- Selanjutnya, kami mencocokkan semua model yang mungkin dengan dua prediktor. Model yang menghasilkan AIC terendah dan juga mengalami penurunan AIC yang signifikan secara statistik dibandingkan dengan model prediktor tunggal yang ditambahkan prediktor silinder . Model ini memiliki AIC 63.19800 .
- Selanjutnya, kami menyesuaikan semua model yang mungkin ke dalam tiga prediktor. Model yang menghasilkan AIC terendah dan juga mengalami penurunan AIC yang signifikan secara statistik dibandingkan dengan model dua prediktor yang ditambahkan prediktor hp . Model ini memiliki AIC sebesar 62.66456 .
- Selanjutnya, kami menyesuaikan semua model yang mungkin ke dalam empat prediktor. Ternyata tidak satu pun dari model ini yang menghasilkan pengurangan AIC secara signifikan, jadi kami menghentikan prosedur tersebut.
Model terakhirnya adalah:
mpg ~ 38,75 – 3,17*berat – 0,94*silinder – 0,02*hyp
Contoh 2: Seleksi mundur selangkah demi selangkah
Kode berikut menunjukkan cara melangkah mundur:
#define intercept-only model intercept_only <- lm(mpg ~ 1, data=mtcars) #define model with all predictors all <- lm(mpg ~ ., data=mtcars) #perform backward stepwise regression backward <- step(all, direction=' backward ', scope= formula (all), trace=0) #view results of backward stepwise regression backward$anova Step Df Deviance Resid. Df Resid. Dev AIC 1 NA NA 21 147.4944 70.89774 2 - cyl 1 0.07987121 22 147.5743 68.91507 3 - vs 1 0.26852280 23 147.8428 66.97324 4 - carb 1 0.68546077 24 148.5283 65.12126 5 - gear 1 1.56497053 25 150.0933 63.45667 6 - drat 1 3.34455117 26 153.4378 62.16190 7 - available 1 6.62865369 27 160.0665 61.51530 8 - hp 1 9.21946935 28 169.2859 61.30730 #view final model backward$coefficients (Intercept) wt qsec am 9.617781 -3.916504 1.225886 2.935837
Berikut cara menafsirkan hasilnya:
- Pertama, kami menyesuaikan model menggunakan semua prediktor p . Definisikan ini sebagai M p .
- Kemudian, untuk k = p, p-1,…1, kami menyesuaikan semua k model yang berisi semua kecuali satu prediktor dalam M k , untuk total k-1 variabel prediktor. Kemudian pilih yang terbaik di antara k model ini dan beri nama M k-1 .
- Terakhir, kami memilih model terbaik dari M 0 …M p menggunakan AIC.
Model terakhirnya adalah:
mpg ~ 9,62 – 3,92*berat + 1,23*qdetik + 2,94*am
Contoh 3: Pemilihan langkah demi langkah di kedua arah
Kode berikut menunjukkan cara melakukan pemilihan langkah demi langkah di kedua arah:
#define intercept-only model intercept_only <- lm(mpg ~ 1, data=mtcars) #define model with all predictors all <- lm(mpg ~ ., data=mtcars) #perform backward stepwise regression both <- step(intercept_only, direction=' both ', scope= formula (all), trace=0) #view results of backward stepwise regression both$anova Step Df Deviance Resid. Df Resid. Dev AIC 1 NA NA 31 1126.0472 115.94345 2 + wt -1 847.72525 30 278.3219 73.21736 3 + cyl -1 87.14997 29 191.1720 63.19800 4 + hp -1 14.55145 28 176.6205 62.66456 #view final model both$coefficients (Intercept) wt cyl hp 38.7517874 -3.1669731 -0.9416168 -0.0180381
Berikut cara menafsirkan hasilnya:
- Pertama, kami menyesuaikan model intersep saja.
- Selanjutnya, kami menambahkan prediktor ke model secara berurutan, seperti yang kami lakukan pada pemilihan langkah demi langkah. Namun, setelah menambahkan setiap prediktor, kami juga menghapus semua prediktor yang tidak lagi memberikan peningkatan dalam kesesuaian model.
- Kami mengulangi proses ini sampai kami mendapatkan model akhir.
Model terakhirnya adalah:
mpg ~ 9,62 – 3,92*berat + 1,23*qdetik + 2,94*am
Perhatikan bahwa pemilihan langkah maju dan pemilihan langkah pada kedua arah menghasilkan pola akhir yang sama, sedangkan pemilihan langkah mundur menghasilkan pola yang berbeda.
Sumber daya tambahan
Cara Menguji Signifikansi Kemiringan Regresi
Cara Membaca dan Menafsirkan Tabel Regresi
Panduan Multikolinearitas dalam Regresi