RMSE (Lỗi trung bình bình phương lỗi) cho các mô hình logistic


10

Tôi có một câu hỏi liên quan đến tính hợp lệ của việc sử dụng RMSE (Lỗi trung bình bình phương gốc) để so sánh các mô hình logistic khác nhau. Câu trả lời là 0hoặc 1và dự đoán là xác suất giữa 0- 1?

Là cách áp dụng dưới đây có hợp lệ với các phản ứng nhị phân không?

# 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

1
Trong trường hợp này nó được gọi là số điểm Brier, xem actuaries.org/ASTIN/Colloquia/Hague/Papers/Lo.pdf

Câu trả lời:


14

Để hiểu lý do tại sao "[t] anh ấy phản hồi là 0hoặc 1[nhưng] dự đoán là xác suất giữa 0- 1", bạn cần hiểu loại mô hình bạn đang làm việc. Loại bỏ các phương thức xử phạt và xác nhận chéo và bạn đang chạy hồi quy logistic cơ bản. Các tham số phù hợp trên thang điểm tỷ lệ cược / logistic. Điều này được gọi là "dự đoán tuyến tính". (Để biết thêm về điều này, nó có thể giúp bạn đọc câu trả lời của tôi ở đây: Sự khác nhau giữa logit và probit mô hình .) Nếu bạn cắm vào một giá trị x và đơn giản, giá trị sẽ là dự đoán của mô hình logarit tự nhiên của tỷ lệ cược của 'thành công' ( 1). Nếu bạn lũy thừa giá trị đó, bạn sẽ có tỷ lệ cược dự đoán của mô hìnhthành công'. Để có được xác suất dự đoán , bạn cần chuyển đổi tỷ lệ cược thành xác suất thông qua tỷ lệ cược / (tỷ lệ cược 1 +). (Để biết thêm về điều này, nó có thể giúp bạn đọc câu trả lời của tôi ở đây: Giải thích các dự đoán đơn giản cho tỷ lệ cược trong hồi quy logistic .) Điều này vẫn không đưa bạn đến một lớp dự đoán . Để có được điều đó, bạn sẽ cần so sánh xác suất dự đoán của mình với một ngưỡng nào đó và nếu nó thấp hơn ngưỡng dự đoán 'thất bại' ( 0), thì khác 'thành công' ( 1). Ngưỡng mặc định phổ biến nhất là 0,5, nhưng điều này thường không tối ưu. predict.glm()Chức năng của R sẽ cho phép bạn sử dụngtype="link", đưa ra các dự đoán theo thang đo của công cụ dự báo tuyến tính (nghĩa là, trước tất cả các biến đổi ở trên), nhưng điều đó sẽ không giúp bạn trong bối cảnh này. Sử dụng type="response"cung cấp cho bạn các xác suất dự đoán.


Khi bạn đang cố gắng đánh giá mô hình hồi quy nhị phân (ví dụ: logistic) dự đoán một phản hồi như thế nào, bạn có một số tùy chọn:

  1. Đầu tiên và trực quan nhất là so sánh lớp dự đoán với lớp được quan sát và tính phần trăm đúng. Mặc dù nó là trực quan, nó có vấn đề. Một phần, tùy thuộc vào ngưỡng là tối ưu bên cạnh các khía cạnh khác của mô hình được điều chỉnh phù hợp. Nó cũng ném đi rất nhiều thông tin (nghĩa là xác suất dự đoán là bao xa), đó không phải là điều nên làm.
  2. Tùy chọn tiếp theo của bạn là sử dụng vùng bên dưới đường cong Đặc tính hoạt động của người nhận (ROC). Hầu hết mọi người sử dụng tùy chọn này; nó là tốt hơn đáng kể so với việc sử dụng phần trăm chính xác. Tuy nhiên, điều về AUC mà hầu hết mọi người không nhận ra là nó thực sự đang đo lường thứ tự phù hợp cho dự đoán của bạn, chứ không phải độ chính xác thực tế của chúng. Đó là, nếu bạn đã dự đoán xác suất cho bốn lần quan sát .2, .4, .6, .8và bạn đã thêm 0,01 cho tất cả chúng ( .21, .41, .61, .81), AUC sẽ giống nhau mặc dù cả hai bộ xác suất dự đoán đều không thể chính xác như nhau.
  3. Cách thứ ba để đánh giá mô hình của bạn sẽ là sử dụng chức năng cho điểm thích hợp. Có lẽ chức năng điểm số phổ biến nhất trong ngữ cảnh của bạn là điểm Brier . Như @fcoppens lưu ý, phương thức trong mã của bạn là điểm Brier. Nó sẽ đánh giá không chỉ nếu mô hình dự đoán một cách thích hợp rằng một quan sát có nhiều khả năng là "thành công" hơn so với quan sát khác, nhưng nếu xác suất dự đoán của mô hình là thực sự chính xác.

Thật không may là điểm Brier ít được biết đến và sử dụng. Mặc dù trực giác tương đối của các phương pháp này là: phần trăm đúng> AUC> Điểm Brier, nhưng thông tin thực sự của chúng lại ngược lại: Điểm Brier> AUC> phần trăm đúng. Nếu bạn chỉ muốn một thước đo đơn giản về hiệu suất của mô hình của mình, thì sự khác biệt giữa các phương thức này ít quan trọng hơn, nhưng nếu bạn muốn sử dụng các phương thức này để tối ưu hóa mô hình hoặc chọn mô hình, sử dụng phương pháp kém hơn sẽ dẫn đến hiệu suất kém hơn .


1

Sử dụng RMSE có ý nghĩa hơn nhiều nếu thuật ngữ lỗi của bạn được phân phối bình thường với giá trị trung bình bằng 0, nhưng trong kết quả nhị phân thì không. Do đó, tôi nghĩ bạn nên sử dụng các phương pháp khác nhau cho vay kết quả nhị phân, như so sánh sự khác biệt về khả năng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.