2012-10-18 20 views
24

Tôi đang sử dụng gói twang để tạo điểm số xu hướng, được sử dụng làm trọng số trong một nhị thức bằng cách sử dụng survey::svyglm. Mã này trông giống như sau:Cảnh báo: #successes không phải số nguyên trong một nhị thức nhị thức! (gói khảo sát)

pscore <- ps(ppci ~ var1+var2+.........., data=dt....) 

dt$w <- get.weights(pscore, stop.method="es.mean") 

design.ps <- svydesign(ids=~1, weights=~w, data=dt,) 

glm1 <- svyglm(m30 ~ ppci, design=design.ps,family=binomial) 

Điều này tạo ra những cảnh báo sau đây:

Warning message: 
    In eval(expr, envir, enclos) : non-integer #successes in a binomial glm! 

Có ai biết những gì tôi có thể làm sai?

Tôi không chắc liệu thông báo này có tốt hơn trên số liệu thống kê.SE, nhưng về số dư, tôi nghĩ tôi sẽ thử ở đây trước tiên.

+0

Loại biến là 'm30'? – James

+0

@james, 'm30' là nhị phân –

+0

Các trọng số phải là không tách rời sau đó. Một sự phù hợp nhị thức cố gắng tìm xác suất thành công trong một số thử nghiệm riêng biệt. – James

Trả lời

38

Không có gì sai, glm chỉ là cầu kỳ khi nói đến việc chỉ định mô hình nhị thức (và Poisson). Nó cảnh báo nếu nó phát hiện ra không. các thử nghiệm hoặc thành công là không tách rời, nhưng nó vẫn đi trước và phù hợp với mô hình. Nếu bạn muốn chặn cảnh báo (và bạn chắc chắn đó không phải là vấn đề), hãy sử dụng family=quasibinomial để thay thế.

+0

Thật vậy, và IIRC tất cả một GLM thực sự cần phải biết là mối quan hệ trung bình-biến đã nêu (đó là những gì 'quasi()' gia đình làm/cho phép), hình thức của dữ liệu thực tế không thực sự quan trọng. Cảnh báo là một chút nannying tôi tin. –

+4

Có, mặc dù tôi đã nhìn thấy rất nhiều trường hợp mà mọi người nhận thấy họ đang làm điều gì đó ngớ ngẩn vì cảnh báo này ... –

+1

@BenBolker cảm ơn nhận xét của bạn. Tất nhiên, lý do tôi đăng câu hỏi là tôi lo lắng rằng tôi đang làm điều gì đó ngớ ngẩn. –

4

Không có gì sai, tính toán, nhưng thống kê bạn có thể không làm điều gì đó có ý nghĩa nhiều. Trong trường hợp này, tốt hơn là nên sử dụng phương pháp hồi quy mạnh mẽ, thường là ý tưởng tốt cho dữ liệu đáp ứng tỷ lệ nếu dữ liệu của bạn bao gồm đơn vị chính xác 1 hoặc chính xác 0.

+0

"... cũng sử dụng một phương pháp khác để phù hợp với dữ liệu" - điều này là sai. Các họ quasibinomial và nhị thức sử dụng _exactly_ cùng một phương pháp số, tức là IRLS với mu và eta được chọn một cách thích hợp. Sự khác biệt là quasibinomial 1) ngăn chặn việc kiểm tra số nguyên, và 2) không báo cáo một AIC, vì nó về mặt kỹ thuật không dựa trên khả năng tối đa. –

+1

Bạn có thể tự kiểm tra rằng quasibinomial không mạnh hơn nhị thức, chỉ bằng cách tạo dữ liệu ngẫu nhiên và các mô hình phù hợp với 2 họ. Bạn sẽ thấy rằng, bất kể dữ liệu là như thế nào hoặc mức độ gần với các lớp phân tách tuyến tính, các ước tính mô hình đều giống nhau. –

+0

Cảm ơn sự cải tiến Hong Ooi! Có vẻ như tôi đã bị hiểu sai, từ một câu trả lời khác về một chủ đề tương tự từ việc Cross-validation của StackExchange. Điều đó rất tốt để biết!Nó không có vẻ với tôi rằng bằng cách sử dụng quasibinomial là một cách tiếp cận rất tốt trong trường hợp này sau đó. – HaberdashPI

0

Xin lỗi, nhưng nó mạnh mẽ hơn ý nghĩa rằng nếu cơ chế bên dưới là một mô hình nhị thức quá mức, thì nhị thức thừa sẽ tính đến nó khi ước lượng erorr chuẩn. Do đó, bạn sẽ nhận được bảo hiểm tốt hơn, mặc dù điểm ước tính là như nhau.

Các vấn đề liên quan