Cara menangani: glm.fit: probabilitas yang disesuaikan secara numerik 0 atau 1 terjadi


Pesan peringatan yang mungkin Anda temui di R adalah:

 Warning message:
glm.fit: fitted probabilities numerically 0 or 1 occurred 

Peringatan ini terjadi ketika Anda menyesuaikan model regresi logistik dan prediksi probabilitas dari satu atau lebih observasi di database Anda tidak dapat dibedakan dari 0 atau 1.

Harap dicatat bahwa ini adalah pesan peringatan dan bukan kesalahan. Meskipun Anda menerima kesalahan ini, model regresi logistik Anda akan tetap sesuai, namun mungkin berguna untuk menganalisis kerangka data asli untuk melihat apakah ada outlier yang menyebabkan pesan peringatan ini muncul.

Tutorial ini menjelaskan cara menangani pesan peringatan ini dalam praktiknya.

Cara mereproduksi peringatan tersebut

Misalkan kita memasukkan model regresi logistik ke kerangka data berikut di R:

 #create data frame
df <- data. frame (y = c(0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1),
                 x1 = c(3, 3, 4, 4, 3, 2, 5, 8, 9, 9, 9, 8, 9, 9, 9),
                 x2 = c(8, 7, 7, 6, 5, 6, 5, 2, 2, 3, 4, 3, 7, 4, 4))

#fit logistic regression model
model <- glm(y ~ x1 + x2, data=df, family=binomial)

#view model summary
summary(model)

Warning message:
glm.fit: fitted probabilities numerically 0 or 1 occurred 

Call:
glm(formula = y ~ x1 + x2, family = binomial, data = df)

Deviance Residuals: 
       Min 1Q Median 3Q Max  
-1.729e-05 -2.110e-08 2.110e-08 2.110e-08 1.515e-05  

Coefficients:
              Estimate Std. Error z value Pr(>|z|)
(Intercept) -75.205 307338.933 0 1
x1 13,309 28512,818 0 1
x2 -2.793 37342.280 0 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 2.0728e+01 on 14 degrees of freedom
Residual deviance: 5.6951e-10 on 12 degrees of freedom
AIC: 6

Number of Fisher Scoring iterations: 24

Model regresi logistik kami berhasil menyesuaikan data, namun kami menerima pesan peringatan yang menyesuaikan probabilitas secara numerik menjadi 0 atau 1 .

Jika kita menggunakan model regresi logistik yang sesuai untuk membuat prediksi tentang nilai respons observasi di database asli, kita dapat melihat bahwa hampir semua probabilitas yang diprediksi tidak dapat dibedakan dari 0 dan 1:

 #use fitted model to predict response values
df$y_pred = predict(model, df, type=" response ")

#view updated data frame
df

   y x1 x2 y_pred
1 0 3 8 2.220446e-16
2 0 3 7 2.220446e-16
3 0 4 7 2.220446e-16
4 0 4 6 2.220446e-16
5 0 3 5 2.220446e-16
6 0 2 6 2.220446e-16
7 0 5 5 1.494599e-10
8 1 8 2 1.000000e+00
9 1 9 2 1.000000e+00
10 1 9 3 1.000000e+00
11 1 9 4 1.000000e+00
12 1 8 3 1.000000e+00
13 1 9 7 1.000000e+00
14 1 9 4 1.000000e+00
15 1 9 4 1.000000e+00

Bagaimana menangani peringatan tersebut

Ada tiga cara untuk menangani pesan peringatan ini:

(1) Abaikan saja.

Dalam beberapa kasus, Anda dapat mengabaikan pesan peringatan ini karena pesan ini tidak selalu menunjukkan bahwa ada masalah dengan model regresi logistik. Ini berarti bahwa satu atau lebih observasi dalam kerangka data memiliki nilai prediksi yang tidak dapat dibedakan dari 0 atau 1.

(2) Meningkatkan ukuran sampel.

Dalam kasus lain, pesan peringatan ini muncul ketika bekerja dengan blok data kecil yang datanya tidak cukup untuk memberikan kecocokan model yang andal. Untuk memperbaiki kesalahan ini, cukup tingkatkan ukuran sampel observasi yang Anda masukkan ke dalam model.

(3) Hapus outlier.

Dalam kasus lain, kesalahan ini terjadi ketika terdapat outlier dalam database asli dan hanya sejumlah kecil observasi yang memiliki probabilitas mendekati 0 atau 1. Dengan menghilangkan outlier tersebut, pesan peringatan sering kali hilang.

Sumber daya tambahan

Tutorial berikut menjelaskan cara menangani peringatan dan kesalahan lainnya di R:

Cara memperbaiki di R: Rumus template tidak valid di ExtractVars
Cara memperbaikinya di R: argumen bukan numerik atau logis: return na
Cara memperbaiki: randomForest.default(m, y, …): Na/NaN/Inf dalam panggilan fungsi asing

Tambahkan komentar

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