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))−(1−y)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))1−y .
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)1−p(Y=1)=eθ0+θ1x1+⋯+θpxp
hoặc là,
log(odds(Y=1))=log(p(Y=1)1−p(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)1−p(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 mtcars
bộ dữ liệu trong R. Biến cho hộp số tự động am
là 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: