Cara menggunakan fungsi predict() dengan lm() di r


Fungsi lm() di R dapat digunakan untuk menyesuaikan model regresi linier.

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 menggunakan fungsi lm() agar sesuai dengan model regresi linier di R, lalu cara menggunakan fungsi prediksi() untuk memprediksi nilai respons observasi baru yang belum pernah dilihat model tersebut sebelumnya.

Contoh: Menggunakan fungsi Predict() dengan lm() di R

Misalkan kita memiliki kerangka data berikut di R yang berisi informasi tentang berbagai pemain bola basket:

 #create data frame
df <- data. frame (minutes=c(5, 10, 13, 14, 20, 22, 26, 34, 38, 40),
                 fouls=c(5, 5, 3, 4, 2, 1, 3, 2, 1, 1),
                 points=c(6, 8, 8, 7, 14, 10, 22, 24, 28, 30))

#view data frame
df

   minutes fouls points
1 5 5 6
2 10 5 8
3 13 3 8
4 14 4 7
5 20 2 14
6 22 1 10
7 26 3 22
8 34 2 24
9 38 1 28
10 40 1 30

Misalkan kita ingin menerapkan model regresi linier berganda berikut menggunakan menit bermain dan total pelanggaran untuk memprediksi jumlah poin yang dicetak oleh setiap pemain:

poin = β 0 + β 1 (menit) + β 2 (pelanggaran)

Kita dapat menggunakan fungsi lm() untuk mengadaptasi model ini:

 #fit multiple linear regression model
fit <- lm(points ~ minutes + fouls, data=df)

#view summary of model
summary(fit)

Call:
lm(formula = points ~ minutes + fouls, data = df)

Residuals:
    Min 1Q Median 3Q Max 
-3.5241 -1.4782 0.5918 1.6073 2.0889 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -11.8949 4.5375 -2.621 0.0343 *  
minutes 0.9774 0.1086 9.000 4.26e-05 ***
fouls 2.1838 0.8398 2.600 0.0354 *  
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.148 on 7 degrees of freedom
Multiple R-squared: 0.959, Adjusted R-squared: 0.9473 
F-statistic: 81.93 on 2 and 7 DF, p-value: 1.392e-05

Dengan menggunakan koefisien dari hasil model, kita dapat menulis persamaan regresi yang sesuai:

poin = -11.8949 + 0.9774 (menit) + 2.1838 (pelanggaran)

Kita kemudian dapat menggunakan fungsi prediksi() untuk memprediksi berapa banyak poin yang akan dicetak oleh pemain yang bermain selama 15 menit dan melakukan total 3 pelanggaran:

 #define new observation
newdata = data. frame (minutes=15, fouls=3)

#use model to predict points value
predict(fit, newdata)

       1 
9.317731

Model tersebut memperkirakan pemain ini akan mencetak 9,317731 poin.

Perhatikan bahwa kita juga dapat membuat beberapa prediksi sekaligus jika kita memiliki kerangka data yang berisi beberapa observasi baru.

Misalnya, kode berikut menunjukkan cara menggunakan model regresi yang disesuaikan untuk memprediksi nilai poin tiga pemain:

 #define new data frame of three cars
newdata = data. frame (minutes=c(15, 20, 25),
                     fouls=c(3, 2, 1))

#view data frame
newdata

  minutes fouls
1 15 3
2 20 2
3 25 1

#use model to predict points for all three players
predict(model, newdata)

        1 2 3 
 9.317731 12.021032 14.724334 

Berikut cara menafsirkan hasilnya:

  • Jumlah poin yang diharapkan untuk pemain dengan 15 menit dan 3 pelanggaran adalah 9,32 .
  • Jumlah poin yang diharapkan untuk pemain dengan 20 menit dan 2 pelanggaran adalah 12,02 .
  • Poin yang diharapkan untuk pemain dengan 25 menit dan 1 pelanggaran adalah 14,72 .

Catatan tentang penggunaan prediksi()

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:

  • menit
  • kesalahan

Jadi ketika kami membuat bingkai data baru yang disebut data baru, kami memastikan untuk memberi nama pada kolomnya juga:

  • menit
  • kesalahan

Jika nama kolom tidak cocok, Anda akan menerima pesan kesalahan berikut:

 Error in 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

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *