Cara memperbaiki: memprediksi penyesuaian peringkat yang buruk bisa menyesatkan
Peringatan umum yang mungkin Anda temui di R adalah:
Warning message:
In predict.lm(model, df):
prediction from a rank-deficient fit may be misleading
Peringatan ini dapat terjadi karena dua alasan:
Alasan 1 : Dua variabel prediktor berkorelasi sempurna.
Alasan 2 : Anda memiliki lebih banyak parameter model daripada observasi dalam kumpulan data.
Contoh berikut menunjukkan bagaimana setiap masalah mungkin timbul dalam praktiknya.
Alasan #1: Dua variabel prediktor berkorelasi sempurna
Misalkan kita memasukkan model regresi linier berganda berikut ke dalam R dan mencoba menggunakannya untuk membuat prediksi:
#create data frame
df <- data. frame (x1=c(1, 2, 3, 4),
x2=c(2, 4, 6, 8),
y=c(6, 10, 19, 26))
#fit multiple linear regression model
model <- lm(y~x1+x2, data=df)
#use model to make predictions
predict(model, df)
1 2 3 4
4.9 11.8 18.7 25.6
Warning message:
In predict.lm(model, df):
prediction from a rank-deficient fit may be misleading
Kami menerima pesan peringatan karena variabel prediktor x1 dan x2 berkorelasi sempurna .
Perhatikan bahwa nilai x2 sama dengan nilai x1 dikalikan dua. Ini adalah contoh multikolinearitas sempurna .
Artinya x1 dan x2 tidak memberikan informasi yang unik atau independen dalam model regresi, sehingga menimbulkan masalah saat menyesuaikan dan menginterpretasikan model.
Cara termudah untuk mengatasi masalah ini adalah dengan menghapus salah satu variabel prediktor dari model, karena kedua variabel prediktor dalam model adalah mubazir.
Alasan #2: Ada lebih banyak parameter model daripada observasi
Misalkan kita memasukkan model regresi linier berganda berikut ke dalam R dan mencoba menggunakannya untuk membuat prediksi:
#create data frame
df <- data. frame (x1=c(1, 2, 3, 4),
x2=c(3, 3, 8, 12),
x3=c(4, 6, 3, 11),
y=c(6, 10, 19, 26))
#fit multiple linear regression model
model <- lm(y~x1*x2*x3, data=df)
#use model to make predictions
predict(model, df)
1 2 3 4
6 10 19 26
Warning message:
In predict.lm(model, df):
prediction from a rank-deficient fit may be misleading
Kami menerima pesan peringatan karena kami mencoba menyesuaikan model regresi dengan total tujuh koefisien model:
- x1
- x2
- x3
- x1*x2
- x1*3
- x2*x3
- x1*x2*x3
Namun, kami hanya memiliki total empat observasi dalam kumpulan data.
Karena jumlah parameter model lebih besar daripada jumlah observasi dalam kumpulan data, kami menyebutnya data berdimensi tinggi .
Dengan data berdimensi tinggi, mustahil menemukan model yang dapat menggambarkan hubungan antara variabel prediktor dan variabel respon karena kita tidak memiliki cukup observasi untuk melatih model tersebut.
Cara paling sederhana untuk mengatasi masalah ini adalah dengan mengumpulkan lebih banyak observasi untuk kumpulan data kita atau menggunakan model yang lebih sederhana dengan koefisien yang lebih sedikit untuk memperkirakan.
Sumber daya tambahan
Tutorial berikut menjelaskan cara menangani kesalahan umum lainnya di R:
Cara menangani: glm.fit: algoritma tidak konvergen
Cara menangani: glm.fit: probabilitas yang disesuaikan secara numerik 0 atau 1 terjadi