Hồi quy logistic BIC: N đúng không?


7

TL; DR:N là chính xác cho BIC trong hồi quy logistic, được tổng hợp nhị thức hoặc Bernoulli N?

CẬP NHẬT TẠI BOTTOM

Giả sử tôi có một bộ dữ liệu mà tôi muốn áp dụng hồi quy logistic. Vì lợi ích của ví dụ, giả sử cój= =5 nhóm với m= =100 mỗi người tham gia, tổng cộng n= =500. Kết quả là 0 hoặc 1. Ví dụ, tập dữ liệu sau (mã R):

library(dplyr)
library(tidyr)


set.seed(45)
d <- tibble(y = rbinom(500, 1, .5),
            x = factor(rep(LETTERS[1:5], each = 100))) 

Có hai cách tôi có thể đại diện cho điều này: như trên, coi mọi quan sát là biến ngẫu nhiên Bernoulli hoặc tổng hợp các quan sát trong các nhóm và coi mỗi quan sát là Binomial. Số lượng hàng trong tập dữ liệu sẽ là 500 trong trường hợp đầu tiên và 5 trong lần thứ hai.

Tôi có thể xây dựng tập dữ liệu tổng hợp:

d %>% 
  group_by(x, y) %>% 
  summarise(n = n()) %>%
  spread(y, n) %>%
  rename(f = `0`, s = `1`) %>%
  mutate(n = s + f) -> d_agg

Sau đó tôi có thể điều chỉnh hồi quy logistic bằng cả hai bộ dữ liệu trong R:

g_bern  <- glm(y ~ x,          data=d,     family=binomial)
g_binom <- glm(cbind(s,f) ~ x, data=d_agg, family=binomial)

CẬP NHẬT 2: Bây giờ chúng tôi phù hợp với các mô hình chỉ chặn:

g_bern0  <- glm(y ~ 1,          data=d,     family=binomial)
g_binom0 <- glm(cbind(s,f) ~ 1, data=d_agg, family=binomial)

và tính toán AIC:

> AIC(g_bern)  
# [1] 694.6011
> AIC(g_binom)  
# [1] 35.22172

trong đó tất nhiên có sự khác biệt với một hằng số

2*sum(lchoose(d_agg$n, d_agg$s))  # [1] 659.3794

như mong đợi (xem: Hồi quy logistic: Bernoulli so với biến phản ứng nhị thức ).

Tuy nhiên, BIC khác nhau bởi hằng số VÀ một yếu tố phụ thuộc vào "số lượng quan sát" và số lượng quan sát khác nhau ở mỗi:

> BIC(g_bern)    
# [1] 715.6742
> BIC(g_binom)  
# [1] 33.26891
> nobs(g_bern)   
# [1] 500
> nobs(g_binom)  
# [1] 5

Chỉ cần xác nhận, chúng tôi có thể tính toán lại BIC cho cả hai:

> -2*logLik(g_bern) + attr(logLik(g_bern),"df")*log(nobs(g_bern))
# 'log Lik.' 715.6742 (df=5)
> -2*logLik(g_binom) + attr(logLik(g_binom),"df")*log(nobs(g_binom))
# 'log Lik.' 33.26891 (df=5)

và thực sự nơi duy nhất hai số này khác nhau là N.

CẬP NHẬT 2: Khi chúng tôi cố gắng đánh giá yếu tố x, chúng tôi thấy sự bất đồng CHỈ được quy cho số lượng quan sát:

> BIC(g_bern0) - BIC(g_bern)
# [1] -17.66498
> BIC(g_binom0) - BIC(g_binom)
# [1] 0.7556999

CẬP NHẬT 2: Như mong đợi, AIC là nhất quán:

> AIC(g_bern0) - AIC(g_bern)
# [1] -0.8065485
> AIC(g_binom0) - AIC(g_binom)
# [1] -0.8065485

Điều này làm tôi ngạc nhiên, vì tôi sẽ nghĩ rằng R sẽ "biết" nên dùng cái nào trong hai cái để tránh sự mơ hồ. Nó có cùng thông tin trong cả hai trường hợp.

Cái nào là đúng"? Hay là BIC thực sự tùy tiện?

CẬP NHẬT: Tôi không cố so sánh Bernoulli với mô hình Binomial. Đây chỉ là một ví dụ đồ chơi. Tôi có một bộ so sánh nơi tôi sử dụng cài đặt nào, vì các hình phạt choNlà khác nhau Tôi có hai bộ so sánh mô hình và mô hình chiến thắng thay đổi dựa trênNhình phạt, mặc dù những điều này dường như là cùng một bộ mô hình .

CẬP NHẬT 2 và 3: Đã thêm các so sánh vào mô hình chỉ chặn và thay đổi hạt giống ngẫu nhiên để có sự khác biệt về dấu hiệu trong BIC.

Câu trả lời:


6

BIC (và AIC) là các biện pháp tương đối để so sánh các mô hình. Tuy nhiên, sẽ không có ý nghĩa gì khi so sánh mô hình tương tự giữa việc sử dụng một phản hồi tổng hợp và phản hồi tách rời. Cũng không có ý nghĩa gì khi so sánh các mô hình khác nhau (ví dụ, các biến hồi quy khác nhau), nhưng trong đó một mô hình sử dụng phản hồi tổng hợp và mô hình kia sử dụng phiên bản phân tách của phản hồi. Miễn là hai mô hình được so sánh đều đại diện cho biến trả lời trong cùng một định dạng, mọi thứ sẽ ổn. Lưu ý rằng hai định dạng là cuối cùng tương đương-chúng chứa các thông tin tương tự và hầu hết là chỉ cần nhìn khác nhau ở bên ngoài, xem: định dạng đầu vào cho phản ứng trong GLM nhị thức trong R .


Chỉ cần làm rõ: Tôi không cố so sánh g_bern với g_binom. Đây là một ví dụ đồ chơi. Tôi có một ứng dụng trong đó hình phạt này quan trọng đối với mô hình nào thắng. Vì vậy, mọi thứ đều không ổn theo nghĩa là chúng không tương đương. Đó là điểm. (xem cập nhật của tôi)
Salad salad

1
Sau đó, bạn cần mô tả tình huống thực tế mà bạn đang phải đối mặt, không phải là một ví dụ đồ chơi khác. Các câu hỏi XY thường dẫn đến câu trả lời không giải quyết được những gì người hỏi thực sự cần biết.
gung - Phục hồi Monica

Tôi đã thêm một bản cập nhật cho thấy các so sánh với mô hình chỉ đánh chặn không nhất quán giữa các phương pháp do số lượng quan sát là khác nhau. Câu hỏi của tôi là phương pháp nào trong hai cách tiếp cận có vẻ tương đương là "chính xác".
Salad trộn

1
@Saladdressing, tôi không theo dõi cập nhật của bạn. Ở đâu g_bern0, ví dụ, định nghĩa? Nếu ý tưởng là nó được cho là một mô hình chỉ đánh chặn, tôi không thấy có vấn đề gì. Con số thực tế của BIC không thành vấn đề. Nó chỉ là một biện pháp tương đối. Trong cả hai trường hợp (nghĩa là, g_bern0& g_binom0), sự khác biệt là âm, ngụ ý cùng một ưu tiên (đối với mô hình chỉ chặn). Không có sự không nhất quán.
gung - Phục hồi Monica

Sự khác biệt về BIC giữa hai so sánh là một thứ tự cường độ, rất lớn trên giá trị logarit như BIC. Và đây được cho là cùng một mô hình. Nhưng dù sao, tôi đã tăng hạt giống. Bây giờ có một dấu hiệu không thống nhất giữa hai so sánh BIC. Tôi không thể thấy làm thế nào "hai định dạng cuối cùng tương đương với nhau, chúng chứa cùng một thông tin và hầu như chỉ khác nhau ở bên ngoài" có thể đúng khi một BIC là -18 và hai là 1. Đây là một sự khác biệt đáng kinh ngạc .
Salad trộn

3

Câu hỏi thú vị! Đến với điều này từ một thiết lập được áp dụng, tôi nghĩ bạn cần nhớ rằng cả BIC và AIC đều là các biện pháp phù hợp với mô hình tương đối.

Nói cách khác, các biện pháp này không cho bạn biết nhiều khi bạn kiểm tra chúng cho một mô hình duy nhất, nhưng có thể giúp bạn chọn một mô hình phù hợp trong số các mô hình cạnh tranh. Đặc biệt:

  1. Nếu mục tiêu của bạn là tìm ra 'tốt nhất' trong số các mô hình cạnh tranh để dự đoán biến kết quả, thì hãy chọn mô hình có giá trị AIC thấp nhất;
  2. Nếu mục tiêu của bạn là tìm ra 'tốt nhất' trong số các mô hình cạnh tranh đó để hiểu và mô tả tác động của các biến dự đoán có trong mô hình trên biến kết quả, thì hãy chọn mô hình có giá trị BIC thấp nhất.

Khi xác định tập hợp các mô hình cạnh tranh của bạn, bạn sẽ phải đảm bảo các mô hình tuân theo cùng một khung khái niệm. Do đó, bạn có thể so sánh một số mô hình hồi quy logistic nhị thức hoặc một số mô hình logistic nhị phân, nhưng không phải là một hỗn hợp của cả hai. (Điều quan trọng là so sánh like với like, nếu không bạn sẽ không biết liệu một người mẫu có chiến thắng trong cuộc thi dựa trên giá trị của chính nó hay đơn giản là vì bạn đã thay đổi quy trình / quy trình phù hợp của mô hình.)

Từ quan điểm này, điều duy nhất quan trọng là R nhất quán khi tính toán AIC và BIC trên các mô hình cùng loại (ví dụ: mô hình hồi quy logistic nhị thức).

Chỉ cần làm rõ: g_bern là mô hình hồi quy logistic nhị phân, trong khi g_binom là mô hình hồi quy logistic nhị thức. Mặc dù cả hai đều mô hình xác suất thành công trong một thử nghiệm, nhưng bạn sẽ không trộn lẫn các biến thể của các mô hình này khi xác định bộ mô hình cạnh tranh của mình (vì các lý do đã giải thích ở trên và cũng được đề cập bởi @gung).


Xin vui lòng xem cập nhật của tôi. Chỉ cần làm rõ: Tôi không cố so sánh g_bern với g_binom. Đây là một ví dụ đồ chơi.
Salad salad
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.