Làm thế nào để tính toán mức độ phù hợp trong glm (R)


21

Tôi có kết quả sau khi chạy chức năng glm.

Làm thế nào tôi có thể giải thích các giá trị sau đây:

  • Sai lệch
  • Tàn dư
  • AIC

Họ có một cái gì đó để làm với sự tốt đẹp của phù hợp? Tôi có thể tính toán mức độ phù hợp của các biện pháp phù hợp từ các kết quả này như R-vuông hoặc bất kỳ biện pháp nào khác không?

Call:
glm(formula = tmpData$Y ~ tmpData$X1 + tmpData$X2 + tmpData$X3 + 
    as.numeric(tmpData$X4) + tmpData$X5 + tmpData$X6 + tmpData$X7)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-0.52628  -0.24781  -0.02916   0.25581   0.48509  

Coefficients:
                     Estimate Std. Error  t value Pr(>|t|)    
(Intercept         -1.305e-01  1.391e-01   -0.938   0.3482    
tmpData$X1         -9.999e-01  1.059e-03 -944.580   <2e-16 ***
tmpData$X2         -1.001e+00  1.104e-03 -906.787   <2e-16 ***
tmpData$X3         -5.500e-03  3.220e-03   -1.708   0.0877 .  
tmpData$X4         -1.825e-05  2.716e-05   -0.672   0.5017    
tmpData$X5          1.000e+00  5.904e-03  169.423   <2e-16 ***
tmpData$X6          1.002e+00  1.452e-03  690.211   <2e-16 ***
tmpData$X7          6.128e-04  3.035e-04    2.019   0.0436 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

(Dispersion parameter for gaussian family taken to be 0.08496843)

    Null deviance: 109217.71  on 3006  degrees of freedom
Residual deviance:    254.82  on 2999  degrees of freedom
  (4970 observations deleted due to missingness)
AIC: 1129.8

Number of Fisher Scoring iterations: 2

Tôi nhận ra điều này đã được di chuyển từ SO, nơi người ta thường không tìm kiếm thông tin về các thuật ngữ thống kê này. Bạn có một nguồn lực lớn ở đây! Ví dụ: xem những gì bạn có thể học được từ một tìm kiếm trên một số thuật ngữ của bạn, như AIC . Một chút thời gian dành cho việc này sẽ trả lời đầy đủ câu hỏi của bạn hoặc ít nhất là hướng dẫn bạn hỏi một câu hỏi cụ thể hơn.
whuber

Không liên quan đến gaussian glms, nhưng nếu bạn có một bernoulli phù hợp với dữ liệu nhị phân, bạn không thể sử dụng độ lệch còn lại để đánh giá sự phù hợp của mô hình, vì nó chỉ ra dữ liệu hủy bỏ trong công thức sai lệch. Bây giờ, bạn có thể sử dụng sự khác biệt của độ lệch dư trong trường hợp đó để so sánh hai mô hình, nhưng không phải là độ lệch còn lại.
FisherDisinifying

Câu trả lời:


15

glmR2glmR2R2

RGLM2= =1-(Σtôidtôi,modetôi2)2/N(Σtôidtôi,nbạntôitôi2)2/N        .= =.        1-SSE/n[modetôi]SST/n[totmộttôi]= =RÔiLS2

Có một số tranh luận về cách một biện pháp như vậy trên LHS được diễn giải, nhưng chỉ khi các mô hình khởi hành từ tình huống Gaussian / OLS đơn giản hơn. Nhưng trong GLM nơi chức năng liên kết có thể không phải là "danh tính", như ở đây và "lỗi bình phương" có thể không có cùng một cách giải thích rõ ràng, do đó, Tiêu chí Thông tin Akaike cũng được báo cáo vì nó có vẻ chung chung hơn. Có một số ứng cử viên khác trong rút thăm trúng thưởng GLM GOF mà không có người chiến thắng rõ ràng.

R2


7
Chính xác thì "Nagelkerke-pseudo-" R2 "" ở đầu ra trên?
Tom

1
Tôi đang lặp lại câu hỏi của Tom. Trường hợp đầu ra là Nagelkerke-pseudo- "R2", hoặc làm thế nào để tôi tìm thấy nó? Tôi không tìm kiếm thêm thông tin về giá trị, mà là nơi tôi có thể tìm thấy nó trong đầu ra của R. Không có gì trong đầu ra ví dụ của câu hỏi trông giống như một mức độ phù hợp của giá trị phù hợp trong phạm vi [0-1], vì vậy tôi bối rối.
Kevin - Tái lập Monica

Xem stats.stackexchange.com/questions/8511/ và và stackoverflow.com/questions/6242818/ Ấn ... Tôi không thấy bất kỳ R ^ 2 nào trong đối tượng glm hoặc đầu ra tóm tắt. Tôi có thể đã nghĩ về đầu ra thông thường từ các hàm tóm tắt rms, vì đó là môi trường mô hình yêu thích của tôi.
DWin

9

Sử dụng Null Deviance và Residual Deviance, cụ thể:

1 - (Residual Deviance/Null Deviance)

Nếu bạn nghĩ về nó, bạn đang cố gắng đo tỷ lệ độ lệch trong mô hình của bạn thành null; mô hình của bạn tốt hơn bao nhiêu (độ lệch dư) so với chỉ chặn (độ lệch null). Nếu tỷ lệ đó rất nhỏ, bạn sẽ 'giải thích' hầu hết sự sai lệch trong null; 1 điểm trừ giúp bạn có R bình phương.

Trong trường hợp của bạn, bạn nhận được 0,998.

Nếu bạn chỉ gọi mô hình tuyến tính (lm) thay vì glm, nó sẽ cung cấp cho bạn một bình phương R trong tóm tắt và bạn có thể thấy đó là cùng một số.


5

Nếu bạn đang chạy một mô hình logistic nhị phân, bạn cũng có thể chạy thử nghiệm Goodness of Fit của Hosmer Lemeshow trên mô hình glm () của bạn. Sử dụng thư viện ResourceSelection.

library(ResourceSelection)

model <- glm(tmpData$Y ~ tmpData$X1 + tmpData$X2 + tmpData$X3 + 
           as.numeric(tmpData$X4) + tmpData$X5 + tmpData$X6 + tmpData$X7, family = binomial)

summary(model)
hoslem.test(model$y, model$fitted)

Mặc dù lưu ý rằng điều này chỉ hoạt động đối với các mô hình biến phụ thuộc nhị phân (ví dụ: nếu OP đã đặt family = "binomial. Ví dụ của OP là hồi quy tuyến tính.
Matthew

@Matthew Điều này là đúng, tôi xin lỗi tôi đã bỏ lỡ điều đó. Tôi đã sử dụng hồi quy logistic nhị phân rất nhiều gần đây bộ não của tôi đã đi đếnhoslem.test()
dylanjm

Có thể hiểu được :) Tôi đã đề xuất một chỉnh sửa cho bài viết của bạn nhưng cũng quên cập nhật mã R. Bạn có thể muốn thay đổi điều đó chỉ vì mục đích rõ ràng.
Matthew
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.