Làm thế nào để giải quyết hồi quy logistic bằng cách sử dụng bình phương tối thiểu thông thường?


9

Tôi đã tự học máy học. Tôi đã xem phần này của trang Wikipedia về hồi quy logistic , nơi nó tuyên bố

Bởi vì mô hình có thể được biểu diễn dưới dạng mô hình tuyến tính tổng quát (xem bên dưới), cho 0

Tôi nghe có vẻ như tôi có thể gọi lại một thiết lập hồi quy logistic thành một thiết lập hồi quy tuyến tính. Nhưng tôi không thể thấy làm thế nào để làm điều đó. Tôi không hiểu nghĩa là gì. Có lẽ đó là mẹo?0<p<1


4
Bạn đã xem các chủ đề của chúng tôi về hồi quy logistic và GLM chưa? Họ sẽ giúp bạn đánh giá cao rằng không thể được quan sát trực tiếp, vì vậy những gì bạn đề xuất là một ngõ cụt. p
whuber

Đó cũng là những gì tôi nghĩ, đó là lý do tại sao tôi cảm thấy khó hiểu về nhận xét của Wikipedia.
kirakun

1
Các mô hình tuyến tính tổng quát có thể áp dụng cho nhiều loại hồi quy khác nhau (tuyến tính, nhị thức / logistic, Poisson, v.v.) và không phải là một tính năng độc quyền của hồi quy tuyến tính. Tất cả "tuyến tính" có nghĩa ở đây là hàm phù hợp có dạngy=a+bf1(x)+cf2(x)+df3(x)+
jwimberley

1
Đối với câu hỏi như cụm từ trong tiêu đề , tất nhiên có một giải pháp nổi tiếng , tức là hồi quy logistic có thể được giải quyết chỉ bằng một chương trình con OLS (+ một số đại số ma trận đơn giản).
GeoMatt22

Câu trả lời:


7

Hàm sigmoid trong mô hình hồi quy logistic loại trừ việc sử dụng ước lượng tham số đại số chặt chẽ như trong bình phương tối thiểu thông thường (OLS). Thay vào đó, các phương pháp phân tích phi tuyến , như phương pháp giảm độ dốc hoặc phương pháp của Newton sẽ được sử dụng để giảm thiểu hàm chi phí của biểu mẫu:

cost(σ(Θx),y)=ylog(σ(Θx))(1y)log(1σ(Θx)) , trong đó

σ(z)=11+eΘx , tức là hàm sigmoid. Lưu ý rằng nếu , chúng tôi muốn xác suất dự đoán, , ở mức cao và dấu trừ trong phần màu xanh của hàm chi phí sẽ giảm thiểu chi phí; ngược lại, nếu , chỉ có phần màu đỏ của phương trình được đặt đúng vị trí và càng nhỏ, chi phí sẽ càng gần bằng không.y=1σ(Θx)y=0σ(Θx)

Tương tự, chúng ta có thể tối đa hóa chức năng khả năng như:

p(y|x,θ)=(σ(Θx))y(1σ(Θx))1y .


Tuy nhiên, câu bạn trích dẫn làm tham chiếu, tôi tin rằng, đến phần tương đối tuyến tính của hàm sigmoid:

Bởi vì mô hình có thể được biểu diễn dưới dạng mô hình tuyến tính tổng quát ( xem bên dưới ), với , bình phương tối thiểu thông thường có thể đủ, với R bình phương là thước đo mức độ phù hợp trong không gian phù hợp. Khi hoặc , các phương pháp phức tạp hơn được yêu cầu.0<p<1p=01

Mô hình hồi quy logistic là:

odds(Y=1)=p(Y=1)1p(Y=1)=eθ0+θ1x1++θpxp

hoặc là,

(*)log(odds(Y=1))=log(p(Y=1)1p(Y=1))=θ0+θ1x1++θpxp=ΘX

Do đó, đây là "đủ gần" với mô hình OLS ( ) để phù hợp như vậy và đối với các tham số được ước tính ở dạng đóng, cung cấp xác suất (hãy nhớ mô hình Bernoulli của biến trả lời trong hồi quy logistic) không gần với hoặc . Nói cách khác, trong khi trong biểu thức. * tránh xa các khu vực tiệm cận.y=ΘX+ϵy=101log(p(Y=1)1p(Y=1))


Xem ví dụ entry thú vị này trong thống kê Horizons , mà tôi muốn thử nghiệm với các mtcarsbộ dữ liệu trong R. Biến cho hộp số tự động amlà nhị phân, vì vậy chúng tôi có thể thoái nó trên dặm mỗi gallon mpg. Chúng ta có thể dự đoán rằng một mô hình xe hơi có hộp số tự động dựa trên mức tiêu thụ khí của nó?

Nếu tôi tiếp tục và chỉ giải quyết vấn đề với ước tính OLS, tôi sẽ có được độ chính xác dự đoán là chỉ dựa trên công cụ dự đoán duy nhất này. Và đoán xem? Tôi nhận được ma trận nhầm lẫn chính xác và tỷ lệ chính xác nếu tôi phù hợp với hồi quy logistic.75%

Vấn đề là đầu ra của OLS không phải là nhị phân, mà là liên tục và cố gắng ước tính các giá trị nhị phân thực của , chúng thường nằm trong khoảng từ đến , giống như các giá trị xác suất, mặc dù không bị ràng buộc chặt chẽ như trong hồi quy logistic ( chức năng sigmoid).y01

Đây là mã:

> d = mtcars
> summary(as.factor(d$am))
 0  1 
19 13 
> fit_LR = glm(as.factor(am) ~ mpg, family = binomial, d)
> pr_LR = predict(fit, type="response")
> 
> # all.equal(pr_LR, 1 / (1 + exp( - predict(fit_LR) ) ) ) - predict() is log odds P(Y =1)
> 
> d$predict_LR = ifelse(pr_LR > 0.5, 1, 0)
> t_LR = table(d$am,d$predict_LR)
> (accuracy = (t_LR[1,1] + t_LR[2,2]) / sum(t))
[1] 0.75
> 
> fit_OLS = lm(am ~ mpg, d)
> pr_OLS = predict(fitOLS)
> d$predict_OLS = ifelse(pr_OLS > 0.5, 1, 0)
> (t_OLS = table(d$am, d$predict_OLS))

     0  1
  0 17  2
  1  6  7
> (accuracy = (t[1,1] + t[2,2]) / sum(t_OLS))
[1] 0.75

Tần suất của những chiếc xe số tay tự động v khá cân bằng và mô hình OLS đủ tốt để trở thành một tri giác:

nhập mô tả hình ảnh ở đây


2

Bạn giải thích sai các tuyên bố bạn trích dẫn. Một mô hình tuyến tính tổng quát (thường được ước tính theo khả năng tối đa) không phải là một vấn đề bình phương tối thiểu *.

Xem trang wikipedia của mô hình tuyến tính tổng quát chẳng hạn.

Tuy nhiên, khả năng thường được giải quyết dưới dạng một chuỗi các xấp xỉ bình phương tối thiểu tuyến tính - bình phương lặp lại tối thiểu (tương tự như một cách tiếp cận phổ biến cho các bài toán bình phương nhỏ nhất phi tuyến).

Vì vậy, trong thực tế khá thường xuyên một chuỗi các vấn đề bình phương tối thiểu có trọng số được giải quyết để có được các ước tính tham số. Chúng có được bằng cách bắt đầu ở một số ước tính gần đúng (có một số cách tiêu chuẩn để có được chúng), sau đó xây dựng các giá trị và trọng số đáp ứng làm việc cho một xấp xỉ tuyến tính cho mô hình được trang bị bởi các bình phương nhỏ nhất có trọng số, mang lại các ước tính mới được sử dụng lần lượt để cập nhật các giá trị và trọng lượng đáp ứng làm việc; chu kỳ này được lặp lại nhiều lần.

Đây không phải là cách duy nhất để phù hợp với các mô hình này, mà là một mô hình được sử dụng bởi một số gói thống kê.

* (NB không bị nhầm lẫn với một mô hình tuyến tính tổng quát mà việc ước tính có thể được đúc thành một dạng bình phương tối thiểu, cũng không phải với bình phương tối thiểu tổng quát)

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.