RMSE (Root Mean Squared Error) untuk model logistik

10

Saya punya pertanyaan tentang validitas menggunakan RMSE (Root Mean Squared Error) untuk membandingkan model logistik yang berbeda. Responsnya adalah salah 0atau 1dan prediksi adalah probabilitas antara 0- 1?

Apakah cara yang diterapkan di bawah ini juga berlaku untuk respons biner?

# Using glmnet
require(glmnet)
load(url("https://github.com/cran/glmnet/raw/master    /data/BinomialExample.RData"))
cvfit = cv.glmnet(x, y, family = "binomial", type.measure = "mse")
A <- predict(cvfit, newx = x, s = "lambda.min", type = "response")
RMSE1 <- mean((y - A)^2)
# 0.05816881

# glm
mydata <- read.csv("https://stats.idre.ucla.edu/stat/data/binary.csv")
mydata$rank <- factor(mydata$rank)
mylogit <- glm(admit ~ gre + gpa + rank, data = mydata, family = "binomial")
AAA <- predict(mylogit, newdata = mydata, type = "response")
RMSE2 <- mean((mydata$admit - AAA)^2)
# 0.194714
Ahmed El-Gabbas
sumber
1
Dalam hal ini disebut skor Brier, lihat actuaries.org/ASTIN/Colloquia/Hague/Papers/Lo.pdf

Jawaban:

14

Untuk memahami mengapa "[t] responsnya baik 0atau 1[tetapi] prediksinya adalah probabilitas antara 0- 1", Anda perlu memahami jenis model yang Anda gunakan. Hapus metode hukuman dan validasi silang, dan Anda menjalankan regresi logistik dasar. Parameter cocok pada skala odds log / logistik. Ini disebut "prediktor linier". (Untuk lebih lanjut tentang ini, mungkin dapat membantu Anda membaca jawaban saya di sini: Perbedaan antara model logit dan probit .) Jika Anda terhubung dengan nilai x dan disederhanakan, nilainya akan menjadi logaritma natural yang diprediksi oleh model dari peluang 'kesuksesan' ( 1). Jika Anda memperkirakan nilai itu, Anda akan memiliki peluang prediksi modeldari 'kesuksesan'. Untuk mendapatkan probabilitas yang diprediksi , Anda harus mengubah peluang menjadi probabilitas melalui odds / (1 + peluang). (Untuk lebih lanjut tentang ini, mungkin membantu Anda untuk membaca jawaban saya di sini: Interpretasi prediksi sederhana untuk rasio odds dalam regresi logistik .) Ini masih tidak membawa Anda ke kelas prediksi . Untuk mendapatkan itu, Anda harus membandingkan probabilitas yang diprediksi dengan ambang tertentu, dan jika kurang dari ambang, prediksi 'gagal' ( 0), atau 'sukses' ( 1). Ambang standar paling umum adalah 0,5, tetapi ini sering tidak optimal. predict.glm()Fungsi R akan memungkinkan Anda untuk menggunakantype="link", yang menampilkan prediksi pada skala prediktor linier (yaitu, sebelum semua transformasi di atas), tetapi itu tidak akan membantu Anda dalam konteks ini. Menggunakan type="response"memberi Anda probabilitas yang diprediksi.


Ketika Anda mencoba menilai seberapa baik model regresi biner (misalnya, logistik) memprediksi respons, Anda memiliki beberapa opsi:

  1. Yang pertama, dan yang paling intuitif adalah membandingkan kelas yang diprediksi dengan kelas yang diamati dan menghitung persen yang benar. Meskipun intuitif, ia memiliki masalah. Ini tergantung, sebagian, pada ambang batas menjadi optimal selain aspek-aspek lain dari model yang sesuai dengan tepat. Ini juga membuang banyak informasi (yaitu, seberapa jauh dari ambang batas probabilitas yang diprediksi), yang bukan hal yang baik untuk dilakukan.
  2. Pilihan Anda berikutnya adalah menggunakan area di bawah kurva Receiver Operating Characteristic (ROC). Kebanyakan orang menggunakan opsi ini; itu jauh lebih baik daripada menggunakan persen yang benar. Satu hal tentang AUC yang kebanyakan orang tidak sadari, adalah bahwa itu sebenarnya mengukur pemesanan yang tepat dari prediksi Anda, bukan akurasi sebenarnya. Yaitu, jika Anda telah memperkirakan probabilitas untuk empat pengamatan .2, .4, .6, .8, dan Anda menambahkan 0,01 untuk semuanya ( .21, .41, .61, .81), AUC akan sama meskipun kedua set probabilitas yang diprediksi tidak dapat sama akuratnya.
  3. Cara ketiga untuk menilai model Anda adalah dengan menggunakan fungsi skor yang tepat. Mungkin fungsi skor paling populer dalam konteks Anda adalah skor Brier . Sebagai @fcoppens mencatat, metode dalam kode Anda adalah skor Brier. Ini akan menilai tidak hanya jika model secara tepat memprediksi bahwa satu pengamatan lebih mungkin menjadi 'sukses' daripada pengamatan lain, tetapi jika probabilitas prediksi model sebenarnya benar.

Sangat disayangkan bahwa skor Brier kurang dikenal dan digunakan. Meskipun relatif intuitif dari metode-metode ini adalah: persen benar> AUC> skor Brier, informativeness mereka yang sebenarnya adalah sebaliknya: Skor Brier> AUC> persen benar. Jika Anda hanya menginginkan ukuran sederhana dari kinerja model Anda, perbedaan antara metode ini kurang penting, tetapi jika Anda ingin menggunakan metode ini untuk mengoptimalkan model atau memilih model, menggunakan metode yang lebih rendah akan menyebabkan kinerja yang lebih buruk. .

gung - Pasang kembali Monica
sumber
1

Menggunakan RMSE jauh lebih masuk akal jika istilah kesalahan Anda didistribusikan secara normal dengan rata-rata nol, tetapi dalam hasil biner tidak. Oleh karena itu, saya pikir Anda harus menggunakan pendekatan berbeda yang cocok untuk hasil biner, seperti membandingkan perbedaan dalam kemungkinan.

JorgeG
sumber