Làm thế nào để hiểu đầu ra từ hàm polr của R (hồi quy logistic theo thứ tự)?


26

Tôi mới sử dụng R, đã ra lệnh hồi quy logistic và polr.

Phần "Ví dụ" ở cuối trang trợ giúp cho polr (phù hợp với mô hình hồi quy logistic hoặc probit cho phản hồi yếu tố theo thứ tự) hiển thị

options(contrasts = c("contr.treatment", "contr.poly"))
house.plr <- polr(Sat ~ Infl + Type + Cont, weights = Freq, data = housing)
pr <- profile(house.plr)
plot(pr)
pairs(pr)
  • Những thông tin nào prchứa? Trang trợ giúp về hồ sơ là chung chung và không đưa ra hướng dẫn nào cho polr.

  • Những gì đang plot(pr)hiển thị? Tôi thấy sáu biểu đồ. Mỗi cái có một trục X là số, mặc dù nhãn là một biến chỉ báo (trông giống như một biến đầu vào là một chỉ báo cho một giá trị thứ tự). Thì trục Y là "tau" hoàn toàn không giải thích được.

  • Những gì đang pairs(pr)hiển thị? Nó trông giống như một âm mưu cho từng cặp biến đầu vào, nhưng một lần nữa tôi thấy không có lời giải thích nào về các trục X hoặc Y.

  • Làm thế nào người ta có thể hiểu nếu mô hình đã phù hợp? summary(house.plr)hiển thị Độ lệch dư 3479.149 và AIC (Tiêu chí thông tin Akaike?) của 3495.149. Như vậy có tốt không Trong trường hợp chúng chỉ hữu ích như các biện pháp tương đối (nghĩa là so sánh với mô hình khác phù hợp), biện pháp tuyệt đối tốt là gì? Là độ lệch còn lại xấp xỉ bình phương phân phối? Người ta có thể sử dụng "% dự đoán chính xác" trên dữ liệu gốc hoặc một số xác thực chéo không? Cách dễ nhất để làm điều đó là gì?

  • Làm thế nào để áp dụng và giải thích anovatrên mô hình này? Các tài liệu nói rằng "Có các phương pháp cho các chức năng phù hợp với mô hình tiêu chuẩn, bao gồm dự đoán, tóm tắt, vcov, anova." Tuy nhiên, anova(house.plr)kết quả chạy tronganova is not implemented for a single "polr" object

  • Làm thế nào để giải thích các giá trị t cho mỗi hệ số? Không giống như một số mô hình phù hợp, không có giá trị P ở đây.

Tôi nhận ra đây là rất nhiều câu hỏi, nhưng thật hợp lý khi tôi hỏi như một gói ("làm thế nào để tôi sử dụng thứ này?") Thay vì 7 câu hỏi khác nhau. Bất kỳ thông tin đánh giá cao.


3
@dfrankow Phần nào giúp đỡ một cách thô thiển và chắc chắn cho hai câu hỏi đầu tiên của bạn, nhưng methods("profile")sẽ cung cấp cho bạn các phương thức (S3 trong trường hợp này) liên quan đến một profileđối tượng R , sau đó bạn sẽ thấy có một phương pháp dành riêng cho polrkết quả mà bạn có thể duyệt trực tuyến bằng cách gõ getAnywhere("profile.polr")tại dấu nhắc R.
chl

1
Cảm ơn! Mã nguồn là tốt. Giải thích sẽ tốt hơn nữa. :)
dfrankow

1
Ai đó đã chỉ cho tôi "Thống kê ứng dụng hiện đại với S" của Venables và Ripley. Mục 7.3 có "Ví dụ về bảng tần số bốn chiều" bao quát rộng rãi mô hình ngôi nhà này. Đọc ..
dfrankow

Trên thực tế, phần này là "một mô hình tỷ lệ cược tỷ lệ thuận"
dfrankow

Câu trả lời:


17

Tôi sẽ đề nghị bạn xem các cuốn sách về phân tích dữ liệu phân loại (xem Phân tích dữ liệu phân loại của Alan Agresti, 2002) để giải thích rõ hơn và hiểu về hồi quy logistic theo thứ tự . Tất cả các câu hỏi mà bạn hỏi về cơ bản được trả lời bởi một vài chương trong những cuốn sách như vậy. Nếu bạn chỉ quan tâm Rđến các ví dụ liên quan, Mở rộng mô hình tuyến tính trong R của Julian Faraway (CRC Press, 2008) là một tài liệu tham khảo tuyệt vời.

Trước khi tôi trả lời câu hỏi của bạn, hồi quy logistic được đặt hàng là một trường hợp của các mô hình logit đa phương thức trong đó các danh mục được sắp xếp. Giả sử chúng ta có ra lệnh loại và đối với cá nhân , với phản ứng tự , cho . Với phản hồi theo thứ tự, thường dễ dàng hơn để làm việc với xác suất tích lũy, . Các xác suất tích lũy đang gia tăng và bất biến để kết hợp các danh mục liền kề. Hơn nữa, , vì vậy chúng tôi chỉ cần mô hình xác suất của .i Y i p i j = P ( Y i = j )JiYipij=P(Yi=j)γ i j = P ( Y ij ) γ i J = 1j=1,...,Jγij=P(Yij)γiJ=1J1

Bây giờ chúng tôi muốn liên kết s để đồng biến . Trong trường hợp của bạn, có 3 cấp ra lệnh: , , . Nó có ý nghĩa hơn để coi chúng như được ra lệnh hơn là không có thứ tự. Các biến còn lại là hiệp phương sai của bạn. Mô hình cụ thể mà bạn đang xem xét là mô hình tỷ lệ cược tỷ lệ và tương đương về mặt toán học với:γijxSatlowmediumhigh

logit γj(xi)=θjβTxi,j=1J1
where γj(xi)=P(Yij|xi)

Nó được gọi như vậy bởi vì tỷ lệ cược tương đối cho so sánh và là:Yjx1x2

(γj(x1)1γj(x1))/(γj(x2)1γj(x2))=exp(βT(x1x2))

Lưu ý, biểu thức trên không phụ thuộc vào . Tất nhiên, giả định về tỷ lệ cược tỷ lệ không cần phải được kiểm tra cho một tập dữ liệu nhất định.j

Bây giờ, tôi sẽ trả lời một số (1, 2, 4) câu hỏi.

Làm thế nào người ta có thể hiểu nếu mô hình đã phù hợp? tóm tắt (house.plr) cho thấy Độ lệch dư 3479.149 và AIC (Tiêu chí thông tin Akaike?) của 3495.149. Như vậy có tốt không Trong trường hợp chúng chỉ hữu ích như các biện pháp tương đối (nghĩa là so sánh với mô hình khác phù hợp), một biện pháp tuyệt đối tốt là gì? Là độ lệch còn lại xấp xỉ bình phương phân phối? Người ta có thể sử dụng "% dự đoán chính xác" trên dữ liệu gốc hoặc một số xác thực chéo không? Cách dễ nhất để làm điều đó là gì?

Một mô hình phù hợp bởi polrlà một đặc biệt glm, vì vậy tất cả các giả định giữ cho một glmtổ chức truyền thống ở đây. Nếu bạn chăm sóc các tham số đúng cách, bạn có thể tìm ra phân phối. Cụ thể, để kiểm tra xem mô hình có tốt hay không, bạn có thể muốn thực hiện kiểm tra mức độ phù hợp , kiểm tra null sau (chú ý điều này là tinh tế, chủ yếu là bạn muốn từ chối null, nhưng ở đây bạn không muốn từ chối nó để có được một phù hợp tốt):

Ho: current model is good enough 

Bạn sẽ sử dụng bài kiểm tra chi bình phương cho việc này. Giá trị p thu được là:

1-pchisq(deviance(house.plr),df.residual(house.plr))

Hầu hết thời gian bạn hy vọng sẽ đạt được giá trị p lớn hơn 0,05 để bạn không từ chối null để kết luận rằng mô hình đó phù hợp (tính chính xác về mặt triết học được bỏ qua ở đây).

AIC phải cao để phù hợp đồng thời bạn không muốn có một số lượng lớn các tham số. stepAIClà một cách tốt để kiểm tra điều này.

Có, bạn chắc chắn có thể sử dụng xác nhận chéo để xem dự đoán có được giữ không. Xem predictchức năng (tùy chọn type = "probs":) trong ?polr. Tất cả những gì bạn cần quan tâm là các đồng biến.

Pr chứa thông tin gì? Trang trợ giúp về hồ sơ là chung chung và không đưa ra hướng dẫn nào cho polr

Như được chỉ ra bởi @chl và những người khác, prchứa tất cả thông tin cần thiết để có được các TCTD và thông tin liên quan đến khả năng khác của polr fit. Tất cả glmđều phù hợp bằng cách sử dụng phương pháp ước lượng bình phương nhỏ nhất có trọng số lặp cho khả năng ghi nhật ký. Trong tối ưu hóa này, bạn có được rất nhiều thông tin (vui lòng xem các tài liệu tham khảo) sẽ cần để tính Ma trận hiệp phương sai, CI, giá trị t, v.v. Nó bao gồm tất cả.

Làm thế nào để giải thích các giá trị t cho mỗi hệ số? Không giống như một số mô hình> phù hợp, không có giá trị P ở đây.

Không giống như mô hình tuyến tính thông thường (đặc biệt glm), các glms khác không có phân phối t đẹp cho các hệ số hồi quy. Do đó, tất cả những gì bạn có thể nhận được là các ước tính tham số và ma trận hiệp phương sai không triệu chứng của chúng bằng lý thuyết khả năng tối đa. Vì thế:

Variance(β^)=(XTWX)1ϕ^

Ước tính chia cho lỗi tiêu chuẩn của nó là giá trị mà BDR và ​​WV gọi là giá trị t (tôi giả sử MASSquy ước ở đây). Nó tương đương với giá trị t từ hồi quy tuyến tính thông thường nhưng không tuân theo phân phối t. Sử dụng CLT, nó được phân phối bình thường. Nhưng họ không thích sử dụng khoảng này (tôi đoán vậy), do đó không có giá trị p. (Tôi hy vọng tôi không sai, và nếu tôi, tôi hy vọng BDR không có trên diễn đàn này. Tôi hy vọng hơn nữa, ai đó sẽ sửa tôi nếu tôi sai.)


Tôi sẽ thêm nhiều hơn nữa.
suncoolsu

1
Cảm ơn vì điều đó. Tôi đã đọc nó nhiều lần. Vẫn còn rất nhiều câu hỏi. 1. Về mặt chức năng trong R, làm thế nào để kiểm tra giả định tỷ lệ cược tỷ lệ? 2. Bạn có chắc chắn rằng kiểm tra chi bình phương là đúng? Trong ví dụ này, nó trả về 0, có nghĩa là .. crappy fit? Nhưng một số giá trị t khá cao (InflHigh 10.1, InflMedium 5.4, ContHigh 3.7). 3. Các lô hoặc cặp hiển thị là gì?
dfrankow

Cảm ơn cho suncoolsu câu trả lời rộng rãi của bạn. Tôi đang ở trong một tình huống tương tự và có một vài câu hỏi. 1. Tôi cũng nhận được 0 cho mọi mô hình bằng phương trình kiểm tra chi-sq của bạn. 2. Trang wikipedia trên AIC cho biết "mô hình ưa thích là mô hình có giá trị AIC tối thiểu", nhưng bạn nói, "AIC nên cao để phù hợp." Tôi đang cố gắng đối chiếu các tài khoản này.
Sam Swift

@dfrankow và @Sam Swift. Tôi xin lỗi, đã có một chút bận rộn để viết một số giấy tờ. Ok - nếu bạn nhận được giá trị p = 0, điều đó có nghĩa là mô hình KHÔNG phù hợp vì kiểm tra độ phù hợp không thành công. Liên quan đến vấn đề của AIC, wikipedia và tôi đang sử dụng một quy ước khác cho nó. Tôi đang sử dụng cái được sử dụng bởi BDR và ​​WV. (xem Mở rộng các mô hình tuyến tính trong R, của Tiến sĩ Julian Faraway)
suncoolsu 17/03/2016

Có một số câu hỏi dành riêng cho các giá trị 0/1 p và giải thích AIC mà bạn có thể thấy hữu ích: stats.stackexchange.com/questions/15223/ thống kê.stackexchange.com/questions/81427/ Khăn
Scott

3

Tôi rất thích cuộc trò chuyện ở đây, tuy nhiên tôi cảm thấy rằng các câu trả lời không giải quyết chính xác tất cả các thành phần (rất tốt) cho câu hỏi bạn đưa ra. Nửa sau của trang ví dụ polrlà tất cả về hồ sơ. Một tài liệu tham khảo kỹ thuật tốt ở đây là Venerables và Ripley, người thảo luận về hồ sơ và những gì nó làm. Đây là một kỹ thuật quan trọng khi bạn bước ra khỏi vùng thoải mái của các mô hình gia đình theo cấp số nhân với khả năng đầy đủ (GLM thông thường).

Điểm khởi đầu quan trọng ở đây là việc sử dụng các ngưỡng phân loại. Bạn sẽ nhận thấy POLR không ước tính một thuật ngữ chặn thông thường. Thay vào đó, có các tham số phiền toái : ngưỡng mà rủi ro được trang bị có xu hướng giảm trong một tích lũy nhất định của các loại có thể. Vì các ngưỡng này không bao giờ được ước tính chung, nên hiệp phương sai của chúng với các tham số mô hình là không xác định. Không giống như GLM, chúng tôi không thể "gây nhiễu" một hệ số theo số lượng và chắc chắn về cách nó có thể ảnh hưởng đến các ước tính khác. Chúng tôi sử dụng hồ sơ để làm kế toán này cho các ngưỡng phiền toái. Profiling là một chủ đề rộng lớn, nhưng về cơ bản mục tiêu là mạnh mẽ đo hiệp phương sai của các hệ số hồi quy khi mô hình được tối đa hóa một khả năng bất thường, giống như với , , , vàk1klmernlspolrglm.nb.

Trang trợ giúp ?profile.glmnên được sử dụng vì polrcác đối tượng về cơ bản là GLM (cộng với các ngưỡng phân loại). Cuối cùng, bạn thực sự có thể đạt đỉnh tại mã nguồn, nếu nó được sử dụng, sử dụng getS3method('profile', 'polr'). Tôi sử dụng getS3methodchức năng này rất nhiều bởi vì, trong khi R dường như khăng khăng nhiều phương thức nên được ẩn đi, người ta có thể học được nhiều điều đáng ngạc nhiên về việc thực hiện và phương thức bằng cách xem lại mã.

• pr chứa thông tin gì? Trang trợ giúp về hồ sơ là chung chung và không đưa ra hướng dẫn nào cho polr.

prlà một profile.polr, profileđối tượng (lớp kế thừa profile). Có một mục cho mỗi hiệp phương sai. Các vòng lặp profiler trên mỗi hiệp phương sai, tính toán lại mô hình tối ưu phù hợp với hiệp phương sai đó được cố định với một số lượng hơi khác nhau. Đầu ra cho thấy giá trị cố định của hiệp phương được đo bằng chênh lệch "điểm z" được chia tỷ lệ so với giá trị ước tính của nó và các hiệu ứng cố định kết quả trong các hiệp phương sai khác. Chẳng hạn, nếu bạn nhìn vào pr$InflMedium, bạn sẽ lưu ý rằng, khi "z" bằng 0, các hiệu ứng cố định khác giống như được tìm thấy trong sự phù hợp ban đầu.

• cốt truyện (pr) hiển thị là gì? Tôi thấy sáu biểu đồ. Mỗi cái có một trục X là số, mặc dù nhãn là một biến chỉ báo (trông giống như một biến đầu vào là một chỉ báo cho một giá trị thứ tự). Thì trục Y là "tau" hoàn toàn không giải thích được.

Một lần nữa, ?plot.profileđưa ra mô tả. Biểu đồ đại khái cho thấy các hệ số hồi quy như thế nào. tau là sự khác biệt theo tỷ lệ, điểm z trước đó, vì vậy giá trị 0 của nó đưa ra các hệ số phù hợp tối ưu, được mô tả bằng dấu tick. Bạn sẽ không nói với sự phù hợp này là rất tốt, nhưng những "dòng" đó thực sự là splines. Nếu khả năng là hành vi rất bất thường ở mức phù hợp tối ưu, bạn sẽ quan sát hành vi kỳ lạ và không thể đoán trước trong cốt truyện. Điều này sẽ cho phép bạn ước tính đầu ra bằng cách sử dụng ước tính lỗi mạnh hơn (bootstrap / jackknife), để tính toán các TCTD bằng cách sử dụng method='profile', để mã hóa lại các biến hoặc để thực hiện chẩn đoán khác.

• Cặp (pr) hiển thị là gì? Nó trông giống như một âm mưu cho từng cặp biến đầu vào, nhưng một lần nữa tôi thấy không có lời giải thích nào về các trục X hoặc Y.

Tệp trợ giúp cho biết: "Phương thức cặp cho thấy, đối với mỗi cặp tham số x và y, hai đường cong giao nhau với ước tính khả năng tối đa, cung cấp cho vị trí của các điểm tại đó các tiếp tuyến của đường viền của cấu hình bivariate có khả năng trở thành dọc và theo chiều ngang, tương ứng. Trong trường hợp có khả năng cấu hình bình thường chính xác, hai đường cong này sẽ là các đường thẳng cho các phương tiện có điều kiện của y | x và x | y, và các đường viền sẽ chính xác là hình elip. " Về cơ bản, chúng một lần nữa giúp bạn hình dung ra các hình elip tự tin. Các trục không trực giao chỉ ra các biện pháp có khả năng cộng hưởng cao, chẳng hạn như InfMedium và InfHigh có liên quan trực quan với nhau. Một lần nữa, khả năng bất thường sẽ dẫn đến hình ảnh khá khó hiểu ở đây.

• Làm thế nào người ta có thể hiểu nếu mô hình phù hợp? tóm tắt (house.plr) cho thấy Độ lệch dư 3479.149 và AIC (Tiêu chí thông tin Akaike?) của 3495.149. Như vậy có tốt không Trong trường hợp chúng chỉ hữu ích như các biện pháp tương đối (nghĩa là so sánh với mô hình khác phù hợp), một biện pháp tuyệt đối tốt là gì? Là độ lệch còn lại xấp xỉ bình phương phân phối? Người ta có thể sử dụng "% dự đoán chính xác" trên dữ liệu gốc hoặc một số xác thực chéo không? Cách dễ nhất để làm điều đó là gì?

Một giả định tốt để đánh giá là giả định tỷ lệ cược tỷ lệ thuận. Điều này được phản ánh phần nào trong thử nghiệm toàn cầu (đánh giá polr dựa trên mô hình loglinear bão hòa). Một hạn chế ở đây là với dữ liệu lớn, các bài kiểm tra toàn cầu luôn thất bại. Do đó, sử dụng đồ họa và kiểm tra ước tính (betas) và độ chính xác (SE) cho mô hình loglinear và phù hợp với polr là một ý tưởng tốt. Nếu họ ồ ạt không đồng ý, có lẽ có gì đó không ổn.

Với kết quả được đặt hàng, thật khó để xác định phần trăm thỏa thuận. Làm thế nào bạn sẽ chọn một trình phân loại dựa trên mô hình và nếu bạn làm như thế nào bạn sẽ đạt được hiệu suất kém từ một trình phân loại kém. modelà một lựa chọn tồi. Nếu tôi có 10 bản ghi danh mục và dự đoán của tôi luôn luôn nhưng chỉ có một loại, có lẽ đó không phải là điều xấu. Hơn nữa, mô hình của tôi có thể dự đoán chính xác 40% cơ hội phản hồi 0, nhưng cũng có 20% cơ hội 8, 9, 10. Vậy nếu tôi quan sát 9 thì điều đó tốt hay xấu? Nếu bạn phải đo lường thỏa thuận, hãy sử dụng kappa có trọng số, hoặc thậm chí MSE. Mô hình loglinear sẽ luôn tạo ra thỏa thuận tốt nhất. Đó không phải là những gì POLR làm.

• Làm thế nào để áp dụng và giải thích anova trên mô hình này? Các tài liệu nói rằng "Có các phương pháp cho các chức năng phù hợp với mô hình tiêu chuẩn, bao gồm dự đoán, tóm tắt, vcov, anova." Tuy nhiên, việc chạy anova (house.plr) dẫn đến anova không được triển khai cho một đối tượng "polr" duy nhất

Bạn có thể kiểm tra các mô hình lồng nhau với waldtestlrtesttrong lmtestgói trong R. Điều này tương đương với ANOVA. Việc giải thích hoàn toàn giống với GLM.

• Làm thế nào để giải thích các giá trị t cho mỗi hệ số? Không giống như một số mô hình phù hợp, không có giá trị P ở đây.

Một lần nữa, không giống như các mô hình tuyến tính, mô hình POLR có khả năng gặp sự cố với khả năng bất thường nên suy luận dựa trên Hessian có thể rất không ổn định. Nó tương tự như các mô hình hỗn hợp phù hợp, xem ví dụ như helpfile trên confint.merModgói lme4. Ở đây, các đánh giá được thực hiện với hồ sơ cho thấy hiệp phương sai được xử lý tốt. Các lập trình viên sẽ làm điều này theo mặc định, ngoại trừ việc định hình có thể được tính toán rất chuyên sâu, và do đó họ để nó vào tay bạn. Nếu bạn phải xem suy luận dựa trên Wald, hãy sử dụng coeftest(house.plr)từ lrtestgói.


2

Để 'kiểm tra' (nghĩa là đánh giá) giả định tỷ lệ cược theo tỷ lệ trong R, bạn có thể sử dụng phần dư.lrm () trong gói Thiết kế của Frank Harrell Jr. Nếu bạn nhập? Dư lượng.lrm, có một ví dụ nhanh chóng sao chép về cách Frank Harrell khuyên bạn nên đánh giá giả định tỷ lệ cược theo tỷ lệ (nghĩa là bằng trực quan, thay vì kiểm tra bằng nút nhấn). Ước tính thiết kế đã ra lệnh hồi quy logistic bằng lrm (), mà bạn có thể thay thế cho polr () từ MASS.

Để biết ví dụ chính thức hơn về cách kiểm tra trực quan giả định tỷ lệ cược tỷ lệ trong R, xem: Bài viết: Các mô hình hồi quy phản ứng thông thường trong sinh thái Tác giả: Antoine Guisan và Frank E. Harrell Nguồn: Tạp chí Khoa học thực vật, Vol. 11, Số 5 (Tháng Mười, 2000), trang 617-626


3
Tôi chân thành đánh giá cao phản ứng của bạn. Tuy nhiên, mục đích của StackExchange là cung cấp câu trả lời, không phải tài liệu tham khảo. Các nhà thống kê có vẻ đặc biệt thiên về vấn đề tham khảo này. Có bất kỳ chi tiết nào bạn có thể thêm về cách sử dụng phần dư.lrm không? Ví dụ, một lệnh ví dụ và một ví dụ về diễn giải biểu đồ cho ví dụ house.plr?
dfrankow

1
Cập nhật từ trang web của tác giả: "Gói Thiết kế hiện đã lỗi thời. Người dùng R phải sử dụng gói rms thay thế". Mark, phản ứng của bạn rất hữu ích cho tôi.
Tal Galili
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.