ANOVA trên dữ liệu nhị thức


32

Tôi đang phân tích một bộ dữ liệu thử nghiệm. Dữ liệu bao gồm một vectơ kết hợp của loại điều trị và kết quả nhị thức:

Treatment    Outcome
A            1
B            0
C            0
D            1
A            0
...

Trong cột kết quả, 1 biểu thị một thành công và 0 biểu thị một thất bại. Tôi muốn tìm hiểu xem liệu điều trị có thay đổi đáng kể kết quả hay không. Có 4 phương pháp điều trị khác nhau với mỗi thí nghiệm được lặp lại một số lượng lớn (2000 cho mỗi lần điều trị).

Câu hỏi của tôi là, tôi có thể phân tích kết quả nhị phân bằng ANOVA không? Hoặc tôi nên sử dụng kiểm tra chi bình phương để kiểm tra dữ liệu nhị thức? Có vẻ như chi bình phương giả định tỷ lệ sẽ được chia đều, không phải vậy. Một ý tưởng khác là tóm tắt dữ liệu bằng cách sử dụng tỷ lệ thành công so với thất bại cho mỗi lần điều trị và sau đó sử dụng thử nghiệm tỷ lệ.

Tôi tò mò muốn nghe các đề xuất của bạn cho các thử nghiệm có ý nghĩa đối với các loại thí nghiệm thành công / thất bại nhị thức này.

Câu trả lời:


18

Không với ANOVA, giả định một biến kết quả được phân phối bình thường (trong số những thứ khác). Có các biến đổi "trường học cũ" để xem xét, nhưng tôi thích hồi quy logistic (tương đương với một hình vuông chi khi chỉ có một biến độc lập, như trong trường hợp của bạn). Ưu điểm của việc sử dụng hồi quy logistic so với xét nghiệm chi bình phương là bạn có thể dễ dàng sử dụng độ tương phản tuyến tính để so sánh mức độ điều trị cụ thể nếu bạn tìm thấy kết quả quan trọng đối với xét nghiệm tổng thể (loại 3). Ví dụ A so với B, B so với C, v.v.

Cập nhật thêm cho rõ ràng:

Lấy dữ liệu trong tay (dữ liệu tài liệu bài được đặt từ Allison ) và sử dụng các trích dẫn biến như sau, đây là quan điểm của tôi:

postdocData$citsBin <- ifelse(postdocData$cits>2, 3, postdocData$cits)
postdocData$citsBin <- as.factor(postdocData$citsBin)
ordered(postdocData$citsBin, levels=c("0", "1", "2", "3"))
contrasts(postdocData$citsBin) <- contr.treatment(4, base=4) # set 4th level as reference
contrasts(postdocData$citsBin)
     #   1 2 3
     # 0 1 0 0
     # 1 0 1 0
     # 2 0 0 1
     # 3 0 0 0

# fit the univariate logistic regression model
model.1 <- glm(pdoc~citsBin, data=postdocData, family=binomial(link="logit"))

library(car) # John Fox package
car::Anova(model.1, test="LR", type="III") # type 3 analysis (SAS verbiage)
     # Response: pdoc
     #          LR Chisq Df Pr(>Chisq)
     # citsBin   1.7977  3     0.6154

chisq.test(table(postdocData$citsBin, postdocData$pdoc)) 
     # X-squared = 1.7957, df = 3, p-value = 0.6159

# then can test differences in levels, such as: contrast cits=0 minus cits=1 = 0
# Ho: Beta_1 - Beta_2 = 0
cVec <- c(0,1,-1,0)
car::linearHypothesis(model.1, cVec, verbose=TRUE) 

1
@ người dùng2040. Tôi không hiểu bạn sẽ làm bài kiểm tra "loại 3" như thế nào? Có phải cái gì đó liên quan đến SAS? (xin lỗi, kiến ​​thức về SAS của tôi rất hạn chế). Tôi đã thực hiện một hồi quy logistic như bạn đề xuất nhưng với 2 biến giả. Ngoài ra, do tôi hiểu chính xác, nếu bạn thực hiện hồi quy logistic, kiểm tra xem một số hoặc tất cả các hệ số bằng 0 được thực hiện bởi độ lệch (hoặc tỷ lệ khả năng) và nó không có triệu chứng Chi-Sq (không nhất thiết phải có df = 1)
suncoolsu

1
@suncoolsu: Vâng, thực tế mà nói bạn sẽ nhận được kết luận tương tự. Tôi không nên nói "tương đương" (Tôi làm việc với dữ liệu lớn để chúng kết thúc giống nhau). Tôi đã thêm một số mã trong câu trả lời để giúp làm rõ.
B_Miner

8

Xkknkkkp^k=Xk/nk

g(p)=arcsinp

Tuy nhiên, một số tác giả hiện đại khá hoài nghi về sự biến đổi arcsine, xem ví dụ http://www.mun.ca/biology/dschneider/b7932/B7932Final10Dec2010.pdf Nhưng các tác giả này quan tâm đến các vấn đề như dự đoán, nơi họ hiển thị arcsine có thể dẫn đến các vấn đề. Nếu bạn chỉ quan tâm đến thử nghiệm giả thuyết, nó sẽ ổn thôi. Một cách tiếp cận hiện đại hơn có thể sử dụng hồi quy logistic.


4
(+1) ... nếu tất cả các nhóm đều không có. quan sát.
Scortchi - Phục hồi Monica

1
Hoặc người ta có thể sử dụng trọng số dựa trên số lượng quan sát.
kjetil b halvorsen

3

Tôi muốn khác với những gì bạn nghĩ về bài kiểm tra Chi-Sq. Nó được áp dụng ngay cả khi dữ liệu không phải là nhị thức. Nó dựa trên sự bình thường tiệm cận của mle (trong hầu hết các trường hợp).

Tôi sẽ làm một hồi quy logistic như thế này:

logπ^1π^=β0+β1×D1+β2×D2

Ở đâu

D1D2 là các biến giả. D1= =D2= =0Một,D1= =1,D2= =0B,D1= =1D2= =1C

Ho:β0= =β1= =β2= =0

Là ANOVA tương đương nếu có một mối quan hệ hay không.

Ho:β0= =0

Là bài kiểm tra là A có một số hiệu quả.

Ho:β1-β0= =0

Là bài kiểm tra là B có một số hiệu quả.

Ho:β2-(β0+β12)= =0

Là bài kiểm tra là C có một số hiệu quả.

Bây giờ bạn có thể làm tương phản hơn nữa để tìm thấy những gì bạn quan tâm. Đây vẫn là một bài kiểm tra chi-sq, nhưng với các mức độ tự do khác nhau (lần lượt là 3, 1, 1 và 1)


Tôi vẫn cần suy nghĩ về sự tương phản. Tôi sẽ sửa nó bất cứ khi nào tôi có thời gian. Xin lỗi về điều đó
suncoolsu

-3

Tôi nghĩ bạn đã đúng rằng không nên sử dụng ANOVA để phân tích biến phụ thuộc nhị thức. Nhiều người sử dụng điều này để so sánh các phương tiện của biến phản ứng nhị phân (0 1) nhưng không nên sử dụng nó vì điều này vi phạm nghiêm trọng giả định phương sai bình đẳng và bình đẳng. Kiểm tra Chi-Square hoặc hồi quy Logistic là tốt nhất cho những tình huống này.


Tương tự như câu trả lời của bạn ở đây .
Scortchi - Phục hồi Monica
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.