Cara menggunakan fungsi prediksi dengan glm di r (dengan contoh)
Fungsi glm() di R dapat digunakan untuk menyesuaikan model linier umum. Fitur ini sangat berguna untuk menyesuaikan model regresi logistik , model regresi Poisson, dan model kompleks lainnya.
Setelah kita memasang model, kita kemudian dapat menggunakan fungsi prediksi() untuk memprediksi nilai respons dari observasi baru.
Fungsi ini menggunakan sintaks berikut:
prediksi(objek, data baru, tipe = “respons”)
Emas:
- objek: Nama penyesuaian model menggunakan fungsi glm()
- data baru: Nama bingkai data baru yang akan dijadikan prediksi
- type : Jenis prediksi yang akan dibuat.
Contoh berikut menunjukkan cara menyesuaikan model linier umum di R dan bagaimana kemudian menggunakan model tersebut untuk memprediksi nilai respons dari observasi baru yang belum pernah dilihat sebelumnya.
Contoh: Menggunakan fungsi perkiraan dengan glm di R
Untuk contoh ini, kita akan menggunakan dataset R bawaan yang disebut mtcars :
#view first six rows of mtcars data frame
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 logistik berikut di mana kami menggunakan variabel disp dan hp untuk memprediksi variabel respon am (tipe transmisi mobil: 0 = otomatis, 1 = manual).
#fit logistic regression model model <- glm(am ~ disp + hp, data=mtcars, family=binomial) #view model summary summary(model) Call: glm(formula = am ~ disp + hp, family = binomial, data = mtcars) Deviance Residuals: Min 1Q Median 3Q Max -1.9665 -0.3090 -0.0017 0.3934 1.3682 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) 1.40342 1.36757 1.026 0.3048 available -0.09518 0.04800 -1.983 0.0474 * hp 0.12170 0.06777 1.796 0.0725 . --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 43,230 on 31 degrees of freedom Residual deviance: 16,713 on 29 degrees of freedom AIC: 22,713 Number of Fisher Scoring iterations: 8
Kita kemudian dapat menggunakan model ini untuk memprediksi probabilitas sebuah mobil baru akan memiliki transmisi otomatis (am=0) atau transmisi manual (am=1) dengan menggunakan kode berikut:
#define new observation
newdata = data. frame (disp=200, hp=100)
#use model to predict value of am
predict(model, newdata, type=" response ")
1
0.00422564
Model tersebut memperkirakan probabilitas mobil baru memiliki transmisi manual (am=1) adalah 0,004 . Artinya, besar kemungkinan mobil baru ini hadir dengan transmisi otomatis.
Perhatikan bahwa kita juga dapat membuat beberapa prediksi sekaligus jika kita memiliki database yang berisi beberapa mobil baru.
Misalnya, kode berikut menunjukkan cara menggunakan model yang dipasang untuk memprediksi kemungkinan transmisi manual untuk tiga mobil baru:
#define new data frame of three cars
newdata = data. frame (disp=c(200, 180, 160),
hp=c(100, 90, 108))
#view data frame
newdata
hp disp
1,200 100
2 180 90
3,160,108
#use model to predict value of am for all three cars
predict(model, newdata, type=" response ")
1 2 3
0.004225640 0.008361069 0.335916069
Berikut cara menafsirkan hasilnya:
- Peluang terambilnya mobil 1 bertransmisi manual adalah 0,004 .
- Peluang terambilnya mobil 2 bertransmisi manual adalah 0,008 .
- Peluang terambilnya mobil 3 bertransmisi manual adalah 0,336 .
Komentar
Nama kolom dalam bingkai data baru harus sama persis dengan nama kolom dalam bingkai data yang digunakan untuk membuat model.
Perhatikan bahwa dalam contoh sebelumnya, bingkai data yang kami gunakan untuk membuat model berisi nama kolom berikut untuk variabel prediktor kami:
- menampilkan
- HP
Jadi ketika kami membuat bingkai data baru yang disebut data baru, kami memastikan untuk memberi nama pada kolomnya juga:
- menampilkan
- HP
Jika nama kolom tidak cocok, Anda akan menerima pesan kesalahan berikut:
Kesalahan dalam eval (predvars, data, env)
Ingatlah hal ini saat menggunakan fungsi prediksi() .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di R:
Cara melakukan regresi linier sederhana di R
Cara melakukan regresi linier berganda di R
Bagaimana melakukan regresi polinomial di R
Cara membuat interval prediksi di R