Tôi tìm thấy một công thức cho giả trong cuốn sách Mở rộng mô hình tuyến tính với R, Julian J. Faraway (trang 59).
Đây có phải là một công thức phổ biến cho giả cho GLM không?
Tôi tìm thấy một công thức cho giả trong cuốn sách Mở rộng mô hình tuyến tính với R, Julian J. Faraway (trang 59).
Đây có phải là một công thức phổ biến cho giả cho GLM không?
Câu trả lời:
Có một số lượng lớn giả 2 cho GLiM. Trang web trợ giúp thống kê UCLA tuyệt vời có một cái nhìn tổng quan toàn diện về chúng ở đây . Danh sách bạn liệt kê có tên là McFadden's pseudo- R 2 . Liên quan đến kiểu chữ của UCLA, nó giống như R 2 theo nghĩa là nó lập chỉ mục cho sự cải tiến của mô hình được trang bị so với mô hình null. Một số phần mềm thống kê, đặc biệt là SPSS, nếu tôi nhớ chính xác, in ra McFadden của pseudo- R 2 theo mặc định với kết quả từ một số phân tích như hồi quy logistic, vì vậy tôi nghi ngờ nó là khá phổ biến, mặc dù pseudo- Cox & Snell và Nagelkerke R 2 s có thể thậm chí nhiều hơn như vậy. Tuy nhiên, giả của McFadden- không có tất cả các thuộc tính của R 2 (không có giả 2 R ). Nếu ai đó đang quan tâm đến việc sử dụng một pseudo- R 2 để hiểu một người mẫu, tôi khuyên các bạn nên đọc chủ đề này CV xuất sắc:Những pseudo- R 2 biện pháp là một trong những báo cáo cho hồi quy logistic (Cox & Snell hoặc Nagelkerke)? (Đối với những gì nó có giá trị, R 2 chính nó là slipperier hơn mọi người nhận ra, một cuộc biểu tình lớn trong số đó có thể được nhìn thấy trong @ whuber của câu trả lời ở đây:Is R 2 ? Hữu ích hoặc nguy hiểm)
R đưa ra độ lệch không và dư trong đầu ra để glm
bạn có thể thực hiện chính xác loại so sánh này (xem hai dòng cuối cùng bên dưới).
> x = log(1:10)
> y = 1:10
> glm(y ~ x, family = poisson)
>Call: glm(formula = y ~ x, family = poisson)
Coefficients:
(Intercept) x
5.564e-13 1.000e+00
Degrees of Freedom: 9 Total (i.e. Null); 8 Residual
Null Deviance: 16.64
Residual Deviance: 2.887e-15 AIC: 37.97
Bạn cũng có thể kéo các giá trị này ra khỏi đối tượng bằng model$null.deviance
vàmodel$deviance
Công thức mà bạn đề xuất đã được Maddala (1983) và Magee (1990) đề xuất để ước tính R bình phương trên mô hình logistic. Do đó, tôi không nghĩ rằng nó có thể áp dụng cho tất cả các mô hình glm (xem cuốn sách Phương pháp hồi quy hiện đại của Thomas P. Ryan ở trang 266).
Nếu bạn tạo một tập dữ liệu giả, bạn sẽ thấy rằng nó đánh giá thấp R bình phương ... cho ví dụ gaussian glm.
Tôi nghĩ rằng đối với một gaussian glm, bạn có thể sử dụng công thức bình phương R (lm) cơ bản ...
R2gauss<- function(y,model){
moy<-mean(y)
N<- length(y)
p<-length(model$coefficients)-1
SSres<- sum((y-predict(model))^2)
SStot<-sum((y-moy)^2)
R2<-1-(SSres/SStot)
Rajust<-1-(((1-R2)*(N-1))/(N-p-1))
return(data.frame(R2,Rajust,SSres,SStot))
}
Và đối với gia đình logistic (hoặc nhị thức trong r) tôi sẽ sử dụng công thức bạn đề xuất ...
R2logit<- function(y,model){
R2<- 1-(model$deviance/model$null.deviance)
return(R2)
}
Cho đến nay cho poisson glm tôi đã sử dụng phương trình từ bài này.
Ngoài ra còn có một bài viết tuyệt vời về giả R2 có sẵn trên các cổng nghiên cứu ... đây là liên kết:
Tôi hy vọng sự giúp đỡ này.
1-summary(GLM)$deviance/summary(GLM)$null.deviance
và bạn sẽ thấy R2 không khớp với giá trị R2 của hồi quy OLS thông thường, vì vậy câu trả lời trên là chính xác! Xem thêm bài viết của tôi ở đây - stats.stackexchange.com/questions/412580/ Kẻ
Các gói phần mềm R modEvA
tính toán D-Squared
như 1 - (mod$deviance/mod$null.deviance)
như đã đề cập bởi David J. Harris
set.seed(1)
data <- data.frame(y=rpois(n=10, lambda=exp(1 + 0.2 * x)), x=runif(n=10, min=0, max=1.5))
mod <- glm(y~x,data,family = poisson)
1- (mod$deviance/mod$null.deviance)
[1] 0.01133757
library(modEvA);modEvA::Dsquared(mod)
[1] 0.01133757
D-Squared hoặc giải thích Deviance của mô hình được giới thiệu trong (Guisan & Zimmermann 2000) https://doi.org/10.1016/S0304-3800(00)00354-9
Colin Cameron, A., & Windmeijer, F. A. (1997). An R-squared measure of goodness of fit for some common nonlinear regression models. Journal of Econometrics, 77(2), 329-342.