Làm thế nào để hồi quy logistic sử dụng phân phối nhị thức?


19

Tôi đang cố gắng hiểu làm thế nào hồi quy logistic sử dụng phân phối nhị thức.

Hãy nói rằng tôi đang nghiên cứu thành công tổ ở chim. Xác suất tổ yến thành công là 0,6. Sử dụng phân phối nhị thức, tôi có thể tính xác suất thành công r cho n thử nghiệm (số lượng tổ được nghiên cứu).

Nhưng làm thế nào phân phối nhị thức được sử dụng trong bối cảnh mô hình hóa? Giả sử tôi muốn biết nhiệt độ trung bình hàng ngày ảnh hưởng đến thành công của tổ và tôi sử dụng hồi quy logistic để khám phá câu hỏi này.

Trong bối cảnh tôi đã mô tả, hồi quy logistic sử dụng phân phối nhị thức như thế nào?

Tôi đang tìm kiếm một câu trả lời trực quan, do đó, một câu trả lời không có phương trình! Tôi nghĩ rằng các phương trình chỉ hữu ích một khi sự hiểu biết đã đạt được ở mức độ trực quan.



2
Đó là một chủ đề tốt để tham khảo, @ user777, nhưng tôi nghĩ nó có thể không hoạt động như một bản sao nếu OP đặc biệt yêu cầu một lời giải thích mà không có phương trình. Tuy nhiên, một câu hỏi hay là liệu vai trò của phân phối nhị thức có thể được giải thích tốt với bất kỳ phương trình nào không. Chắc chắn LR có thể được đưa ra một lời giải thích trực quan, nhưng vai trò của nhị thức w / i LR vốn có phần mang tính toán học.
gung - Phục hồi Monica

@gung Xin lỗi đến luciano. Thấy "phân phối nhị thức" ghi đè "không có phương trình" khi tôi xem xét các câu trả lời có thể. Rõ ràng điều đó không phù hợp với yêu cầu của OP.
Sycorax nói Phục hồi lại

Tôi cảm thấy tôi đã nắm bắt được ý tưởng sử dụng thang tỷ lệ cược log cho hồi quy sau đó chuyển đổi từ thang đo logit sang thang đo 0-1. Nhưng tôi tiếp tục đọc những điều dọc theo dòng chữ 'các lỗi được phân phối nhị phân'. Làm thế nào các lỗi có thể được phân phối nhị thức?
luciano

5
Bất cứ cuốn sách nào bạn đọc mà vào, hãy vứt nó đi.
Scortchi - Phục hồi Monica

Câu trả lời:


7

Giả sử bạn quan sát một số tổ ở nhiệt độ trung bình hàng ngày khác nhau . Làm thế nào để xác suất thành công của tổ phụ thuộc vào nhiệt độ ? (Nếu các tổ độc lập, số lượng tổ có thành công ở nhiệt độ sau đó được phân phối nhị phân với bằng số lượng tổ được quan sát và xác suất thành công .)tπ(t)ttnπ(t)

Hồi quy logistic là một cách tiếp cận (sử dụng hàm logistic) để xác định xác suất thành công là hàm của nhiệt độ thông qua việc kéo dài và dịch chuyển đường cong logistic, với số lượng kéo dài và dịch chuyển cần thiết để ước tính từ dữ liệu.


15

Không có phương trình? Rất tiếc. Hãy xem nào:

Mô hình hồi quy logistic đúng nghĩa là một mô hình cho tham số của phân phối nhị thức; với một công cụ dự đoán liên tục, mỗi điểm có thể có phân phối riêng. (Trong trường hợp các quan sát là 0-1, chúng tôi xử lý trường hợp đặc biệt Bernoulli; đây là tình huống phổ biến.)p

Các được đưa ra, không được mô hình hóa. Vì vậy, kết quả là, với một mô hình liên quan đến và biết , chúng ta có thể mô hình hóa dữ liệu nhị thức theo mô hình dự đoán mô tả giá trị trung bình (và phương sai) thông qua mô hình của nó cho . Mô hình có thể phù hợp thông qua ước tính khả năng tối đa, nhưng vì hình thức đặc biệt của nó (gia đình hàm mũ), ML tương đối "đẹp".npTôinTôip

Bởi vì liên kết logistic là hợp quy cho họ nhị thức, nó thậm chí còn đẹp hơn, vì số liệu thống kê đầy đủ có dạng rất đơn giản - điều này giúp thuận tiện cho việc xử lý các mẫu lớn hoặc thậm chí để phát triển thuật toán 'trực tuyến'.

Tất nhiên, , là một xác suất, nằm trong khoảng từ 0 đến 1. Điều này, một cách tự nhiên, có nghĩa là khi chúng ta viết một mô hình cho nó theo một số biến khác, mô hình đó không nên vượt qua các giới hạn đó, để biến độc lập được đủ lớn hoặc nhỏ, mối quan hệ phải uốn cong để ở bên trong giới hạn.p

Với hồi quy logistic, đường cong đó (hàm liên kết) là một hàm logistic. Các chức năng khác là có thể, và nhiều gói triển khai một số (R có ba gói phù hợp được tích hợp vào glmchức năng của nó nếu tôi nhớ đúng).


Không có biểu tượng bình đẳng đã bị tổn hại trong việc tạo ra bài này.


2

Mô hình của bạn giả định sự thành công của một tổ có thể được xem như một canh bạc: Chúa lật một đồng xu được nạp với các mặt được gắn nhãn "thành công" và "thất bại". Kết quả của lần lật cho một tổ là độc lập với kết quả của lần lật cho bất kỳ tổ nào khác.

Những con chim thực sự có một cái gì đó cho chúng, mặc dù: đồng xu có thể rất ủng hộ thành công ở một số nhiệt độ so với những người khác. Do đó, khi bạn có cơ hội quan sát tổ ở một nhiệt độ nhất định, số lần thành công bằng với số lần lật thành công của cùng một đồng tiền - một lần cho nhiệt độ đó. Phân phối Binomial tương ứng mô tả các cơ hội thành công. Đó là, nó thiết lập xác suất thành công bằng không, của một, của hai, ... và như vậy thông qua số lượng tổ.

Một ước tính hợp lý về mối quan hệ giữa nhiệt độ và cách thức Thiên Chúa nạp tiền được đưa ra theo tỷ lệ thành công được quan sát ở nhiệt độ đó. Đây là ước tính khả năng tối đa (MLE).

71033/7.3/73

5,10,15,200,3,2,32,7,5,3

Hàng trên cùng của hình cho thấy các MLE ở mỗi trong bốn nhiệt độ quan sát được. Đường cong màu đỏ trong bảng "Fit" theo dõi cách nạp tiền, tùy thuộc vào nhiệt độ. Bằng cách xây dựng, dấu vết này đi qua từng điểm dữ liệu. (Những gì nó làm ở nhiệt độ trung gian là không rõ; tôi đã kết nối chặt chẽ các giá trị để nhấn mạnh điểm này.)

Mô hình "bão hòa" này không hữu ích lắm, chính xác bởi vì nó cho chúng ta không có cơ sở để ước tính làm thế nào Chúa sẽ nạp tiền ở nhiệt độ trung gian. Để làm điều đó, chúng ta cần giả sử có một loại đường cong "xu hướng" nào đó liên quan đến việc nạp tiền xu vào nhiệt độ.

Nhân vật

Hàng dưới cùng của hình phù hợp với một xu hướng như vậy. Xu hướng bị giới hạn trong những gì nó có thể làm: khi được vẽ theo tọa độ thích hợp ("tỷ lệ cược log"), như được hiển thị trong bảng "Phản hồi logit" ở bên trái, nó chỉ có thể đi theo một đường thẳng. Bất kỳ đường thẳng nào như vậy sẽ xác định việc tải đồng xu ở mọi nhiệt độ, như được hiển thị bởi đường cong tương ứng trong bảng "Fit". Lần lượt tải đó xác định các phân phối Binomial ở mọi nhiệt độ. Hàng dưới cùng vẽ các phân phối cho nhiệt độ nơi quan sát tổ. (Các đường màu đen nét đứt đánh dấu các giá trị dự kiến ​​của các bản phân phối, giúp xác định chúng khá chính xác. Bạn không thấy các dòng đó ở hàng trên cùng của hình vì chúng trùng với các đoạn màu đỏ.)

Bây giờ phải thực hiện một sự đánh đổi: đường dây có thể vượt qua một số điểm dữ liệu, chỉ để xoay chuyển xa những điểm khác. Điều này khiến phân phối Binomial tương ứng gán xác suất thấp hơn cho hầu hết các giá trị được quan sát so với trước đây. Bạn có thể thấy rõ điều này ở 10 độ và 15 độ: xác suất của các giá trị quan sát không phải là xác suất cao nhất có thể, cũng không gần với các giá trị được chỉ định ở hàng trên.

Hồi quy logistic trượt và vẫy các đường có thể xung quanh (trong hệ tọa độ được sử dụng bởi các bảng "Phản hồi logit"), chuyển đổi độ cao của chúng thành xác suất Binomial (bảng "Fit"), đánh giá các cơ hội được gán cho các quan sát (bốn bảng bên phải ) và chọn dòng mang lại sự kết hợp tốt nhất cho những cơ hội đó.

"Tốt nhất" là gì? Đơn giản là xác suất kết hợp của tất cả các dữ liệu càng lớn càng tốt. Theo cách này, không có xác suất duy nhất (các phân đoạn màu đỏ) được phép thực sự nhỏ bé, nhưng thông thường hầu hết các xác suất sẽ không cao như trong mô hình bão hòa.

Đây là một bước lặp của tìm kiếm hồi quy logistic trong đó dòng được xoay xuống dưới:

Hình 2

1015độ nhưng một công việc khủng khiếp của việc phù hợp với dữ liệu khác. (Ở 5 và 20 độ, xác suất Binomial được gán cho dữ liệu rất nhỏ, bạn thậm chí không thể nhìn thấy các phân đoạn màu đỏ.) Nhìn chung, đây là một sự phù hợp tồi tệ hơn nhiều so với những gì được hiển thị trong hình đầu tiên.


Tôi hy vọng cuộc thảo luận này đã giúp bạn phát triển một hình ảnh tinh thần về xác suất Binomial thay đổi khi dòng này thay đổi, trong khi vẫn giữ dữ liệu giống nhau. Đường thẳng phù hợp bằng hồi quy logistic cố gắng làm cho các thanh màu đỏ đó tổng thể càng cao càng tốt. Do đó, mối quan hệ giữa hồi quy logistic và gia đình phân phối Binomial rất sâu sắc và mật thiết.


Phụ lục: Rmã để sản xuất số liệu

#
# Create example data.
#
X <- data.frame(temperature=c(5,10,15,20),
                nests=c(2,7,5,3),
                successes=c(0,3,2,3))
#
# A function to plot a Binomial(n,p) distribution and highlight the value `k0`.
#
plot.binom <- function(n, p, k0, highlight="#f02020", ...) {
  plot(0:n, dbinom(0:n, n, p), type="h", yaxt="n",
       xlab="Trials", ylab="Probability", ...)
  abline(v = p*n, lty=3, lwd=2)
  if(!missing(k0)) lines(rep(k0,2), c(0, dbinom(k0,n,p)), lwd=2, col=highlight)
}
#
# A function to convert from probability to log odds.
#
logit <- function(p) log(p) - log(1-p)
#
# Fit a saturated model, then the intended model.
#
# Ordinarily the formula for the saturated model would be in the form
# `... ~ factor(temperature)`, but the following method makes it possible to  
# plot the predicted values in a visually effective way.
#
fit.0 <- glm(cbind(successes, nests-successes) ~ factor(round(temperature/5)), 
             data=X, family=binomial)
summary(fit.0)

fit <- glm(cbind(successes, nests-successes) ~ temperature, 
           data=X, family=binomial)
summary(fit)
#
# Plot both fits, one per row.
#
lfits <- list(fit.0, fit)
par.old <- par(mfrow=c(length(lfits), nrow(X)+2))
for (fit in lfits) {
  #
  # Construct arrays of plotting points.
  #
  X$p.hat <- predict(fit, type="response")
  Y <- data.frame(temperature = seq(min(X$temperature), max(X$temperature), 
                                    length.out=101))
  Y$p.hat <- predict(fit, type="response", newdata=Y)  # Probability
  Y$lambda.hat <- predict(fit, type="link", newdata=Y) # Log odds
  #
  # Plot the fit in terms of log odds.
  #
  with(Y, plot(temperature, lambda.hat, type="n", 
               yaxt="n", bty="n", main="Logit Response",
               ylab=expression(hat(lambda))))
  if (isTRUE(diff(range(Y$lambda.hat)) < 6)) {
    # Draw gridlines and y-axis labels
    p <- c( .10, .25, .5, .75, .9)
    q <- logit(p)
    suppressWarnings(rug(q, side=2))
    abline(h=q, col="#d0d0d0")
    mtext(signif(p, 2), at=q, side=2, cex=0.6)
  }
  with(Y, lines(temperature, lambda.hat, lwd=2, col="#f02020"))
  #
  # Plot the data and the fit in terms of probability.
  #
  with(X, plot(temperature, successes/nests, ylim=0:1,
               cex=sqrt(nests), pch=21, bg="Gray",
               main="Fit"))
  with(Y, lines(temperature, p.hat, col="#f02020", lwd=2))
  #
  # Plot the Binomial distributions associated with each row of the data.
  #
  apply(X, 1, function(x) plot.binom(x[2], x[4], x[3], bty="n", lwd=2, col="Gray",
                                     main=paste(x[1], "Degrees")))
}
par(mfrow=par.old)

sẽ có mã r tiết lộ? cảm ơn nhiều.
Maximilian

1
@Maximilian Mình thêm mã.
whuber
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.