Saya menemukan formula untuk pseudo dalam buku Extending the Linear Model with R, Julian J. Faraway (hlm. 59).
Apakah ini formula umum untuk pseudo untuk GLM?
Saya menemukan formula untuk pseudo dalam buku Extending the Linear Model with R, Julian J. Faraway (hlm. 59).
Apakah ini formula umum untuk pseudo untuk GLM?
Jawaban:
Ada sejumlah besar pseudo- s untuk GLiMs. Situs bantuan statistik UCLA yang sangat baik memiliki tinjauan umum yang komprehensif di sini . Yang Anda daftarkan disebut pseudo- McFadden . Relatif dengan tipologi UCLA, itu seperti dalam arti bahwa indeks peningkatan model yang dipasang di atas model nol. Beberapa perangkat lunak statistik, terutama SPSS, jika saya ingat dengan benar, mencetak pseudo- McFadden secara default dengan hasil dari beberapa analisis seperti regresi logistik, jadi saya menduga ini cukup umum, meskipun Cox & Snell dan Nagelkerke pseudo- s mungkin lebih dari itu. Namun, pseudo- McFadden tidak memiliki semua properti (tidak ada pseudo- tidak). Jika seseorang tertarik menggunakan pseudo- untuk memahami suatu model, saya sangat merekomendasikan membaca thread CV yang luar biasa ini: Ukuran pseudo- manakah yang harus dilaporkan untuk regresi logistik (Cox & Snell atau Nagelkerke)? (Untuk apa nilainya, itu sendiri lebih licin daripada yang disadari orang, sebuah demonstrasi besar yang dapat dilihat pada jawaban @ whuber di sini: Apakah bermanfaat atau berbahaya? ) R 2 R 2 R 2 R 2
R memberikan null dan sisa penyimpangan dalam output glm
sehingga Anda dapat membuat perbandingan semacam ini (lihat dua baris terakhir di bawah).
> 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
Anda juga dapat menarik nilai-nilai ini dari objek dengan model$null.deviance
danmodel$deviance
Rumus yang Anda usulkan telah diusulkan oleh Maddala (1983) dan Magee (1990) untuk memperkirakan R kuadrat pada model logistik. Karena itu saya tidak berpikir itu berlaku untuk semua model glm (lihat buku Metode Regresi Modern oleh Thomas P. Ryan di halaman 266).
Jika Anda membuat kumpulan data palsu, Anda akan melihat bahwa itu meremehkan R kuadrat ... untuk gaussian glm sebagai contoh.
Saya pikir untuk gaussian glm Anda dapat menggunakan rumus kuadrat dasar (lm) ...
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))
}
Dan untuk logistik (atau keluarga binomial dalam r) saya akan menggunakan rumus yang Anda usulkan ...
R2logit<- function(y,model){
R2<- 1-(model$deviance/model$null.deviance)
return(R2)
}
Sejauh ini untuk poisson glm saya telah menggunakan persamaan dari posting ini.
Ada juga artikel bagus tentang pseudo R2 yang tersedia di gerbang penelitian ... di sini adalah tautannya:
Saya harap ini membantu.
1-summary(GLM)$deviance/summary(GLM)$null.deviance
dan Anda akan melihat bahwa R2 tidak cocok dengan nilai R2 dari regresi OLS biasa, sehingga jawaban di atas benar! Lihat juga posting saya di sini - stats.stackexchange.com/questions/412580/…
Paket R modEvA
menghitung D-Squared
sebagai 1 - (mod$deviance/mod$null.deviance)
seperti yang disebutkan oleh 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 atau menjelaskan Penyimpangan model diperkenalkan pada (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.