Vẽ đồ thị đường cong xác suất cho mô hình logit với nhiều dự đoán


12

Tôi có chức năng xác suất sau:

Có lẽ= =11+e-z

Ở đâu

z= =B0+B1X1++BnXn.

Mô hình của tôi trông giống như

Pr(Y= =1)= =11+điểm kinh nghiệm(-[-3,92+0,011×(đấu thầu)])

Điều này được hiển thị thông qua một đường cong xác suất trông giống như đường cong dưới đây.

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

Tôi đang xem xét thêm một vài biến vào phương trình hồi quy ban đầu của tôi. Giả sử tôi thêm giới tính (phân loại: F và M) và tuổi (phân loại: <25 và> 26) vào mô hình, tôi kết thúc bằng:

Pr(Y= =1)= =11+điểm kinh nghiệm(-[-3,92+0,011×(đấu thầu)+0,25×(giới tính)+0,15×(tuổi tác)])

Trong RI có thể tạo ra một đường cong xác suất tương tự sẽ cho tôi biết xác suất Y = 1 khi tính cả ba yếu tố dự đoán. Nơi tôi bị mất là tôi muốn tìm xác suất cho mọi hoán vị có thể có của các biến thể này.

Vậy khi giá thầu = 1, giới tính = M và tuổi là> = 26, xác suất mà Y = 1 là bao nhiêu? Tương tự, khi giá thầu = 2, giới tính = F và tuổi là> = 26, xác suất mà Y = 1 là bao nhiêu?

Tôi muốn tạo một đường cong xác suất cho phép tôi hình dung điều này.

Có ai giúp được không? Tôi có thể hoàn toàn hiểu sai loại thông tin nào người ta có thể lượm lặt được từ mô hình logit, nhưng xin vui lòng cho tôi biết nếu tôi cũng đang hiểu sai về lý thuyết.


Bạn có muốn mã để làm điều này trong R, hoặc chỉ để hiểu vấn đề theo khái niệm?
gung - Phục hồi Monica

Nếu tôi phải chọn, tôi sẽ nói vấn đề theo khái niệm. Tôi nghĩ rằng mã R tôi có thể tự mình tìm ra.
ATMathew

2
B0+B1X1++BnXn

1
Predict()plot.Predict()Pr(Y= =1|x2,Giáo dục,xp)x1x2,Giáo dục,xp

Câu trả lời:


24

p(Y= =1) . Ngoài ra, bạn có thể tạo một âm mưu với bốn dòng khác nhau trên đó (bạn có thể sử dụng các kiểu đường, trọng lượng hoặc màu sắc khác nhau để phân biệt chúng). Bạn có thể nhận được các dòng dự đoán này bằng cách giải phương trình hồi quy ở mỗi trong bốn kết hợp cho một phạm vi giá trị BID.

Một tình huống phức tạp hơn là nơi bạn có nhiều hơn một hiệp phương sai liên tục. Trong trường hợp như thế này, thường có một hiệp phương thức cụ thể là "chính" theo một nghĩa nào đó. Covariate đó có thể được sử dụng cho trục X. Sau đó, bạn giải quyết một số giá trị được chỉ định trước của các hiệp phương sai khác, điển hình là giá trị trung bình và +/- 1SD. Các tùy chọn khác bao gồm các loại ô 3D, coplots hoặc ô tương tác khác nhau.

Câu trả lời của tôi cho một câu hỏi khác ở đây có thông tin về một loạt các lô để khám phá dữ liệu trong hơn 2 chiều. Trường hợp của bạn về cơ bản là tương tự, ngoại trừ việc bạn quan tâm đến việc trình bày các giá trị dự đoán của mô hình, thay vì các giá trị thô.

Cập nhật:

Tôi đã viết một số mã ví dụ đơn giản trong R để thực hiện các ô này. Hãy để tôi lưu ý một vài điều: Bởi vì 'hành động' diễn ra sớm, tôi chỉ chạy BID đến 700 (nhưng cứ thoải mái kéo dài đến năm 2000). Trong ví dụ này, tôi đang sử dụng hàm bạn chỉ định và lấy danh mục đầu tiên (nghĩa là nữ và trẻ) làm danh mục tham chiếu (là mặc định trong R). Như @whuber ghi chú trong mình bình luận, Các mô hình LR là tuyến tính theo tỷ lệ cược log, do đó bạn có thể sử dụng khối đầu tiên của các giá trị và âm mưu dự đoán như bạn có thể với hồi quy OLS nếu bạn chọn. Logit là chức năng liên kết, cho phép bạn kết nối mô hình với xác suất; khối thứ hai chuyển đổi tỷ lệ cược log thành xác suất thông qua nghịch đảo của hàm logit, nghĩa là bằng cách lũy thừa (biến thành tỷ lệ cược) và sau đó chia tỷ lệ cược cho tỷ lệ cược 1 +. (Tôi thảo luận về bản chất của các chức năng liên kết và loại mô hình này ở đây , nếu bạn muốn biết thêm thông tin.)

BID = seq(from=0, to=700, by=10)

logOdds.F.young = -3.92 + .014*BID
logOdds.M.young = -3.92 + .014*BID + .25*1
logOdds.F.old   = -3.92 + .014*BID         + .15*1
logOdds.M.old   = -3.92 + .014*BID + .25*1 + .15*1

pY.F.young = exp(logOdds.F.young)/(1+ exp(logOdds.F.young))
pY.M.young = exp(logOdds.M.young)/(1+ exp(logOdds.M.young))
pY.F.old   = exp(logOdds.F.old)  /(1+ exp(logOdds.F.old))
pY.M.old   = exp(logOdds.M.old)  /(1+ exp(logOdds.M.old))

windows()
  par(mfrow=c(2,2))
  plot(x=BID, y=pY.F.young, type="l", col="blue", lwd=2, 
       ylab="Pr(Y=1)", main="predicted probabilities for young women")
  plot(x=BID, y=pY.M.young, type="l", col="blue", lwd=2, 
       ylab="Pr(Y=1)", main="predicted probabilities for young men")
  plot(x=BID, y=pY.F.old, type="l", col="blue", lwd=2, 
       ylab="Pr(Y=1)", main="predicted probabilities for old women")
  plot(x=BID, y=pY.M.old, type="l", col="blue", lwd=2, 
       ylab="Pr(Y=1)", main="predicted probabilities for old men")

Điều này tạo ra âm mưu sau:
nhập mô tả hình ảnh ở đây
Các hàm này đủ giống nhau mà cách tiếp cận cốt truyện bốn song song tôi vạch ra ban đầu không đặc biệt lắm. Đoạn mã sau thực hiện phương pháp 'thay thế' của tôi:

windows()
  plot(x=BID, y=pY.F.young, type="l", col="red", lwd=1, 
       ylab="Pr(Y=1)", main="predicted probabilities")
  lines(x=BID, y=pY.M.young, col="blue", lwd=1)
  lines(x=BID, y=pY.F.old,   col="red",  lwd=2, lty="dotted")
  lines(x=BID, y=pY.M.old,   col="blue", lwd=2, lty="dotted")
  legend("bottomright", legend=c("young women", "young men", 
         "old women", "old men"), lty=c("solid", "solid", "dotted",
         "dotted"), lwd=c(1,1,2,2), col=c("red", "blue", "red", "blue"))

sản xuất lần lượt, cốt truyện này:
nhập mô tả hình ảnh ở đây

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.