나는 R, Julian J. Faraway (p. 59)로 선형 모델 확장 책에서 pseudo 에 대한 공식을 찾았습니다 .
이것이 GLM에 대한 의사 의 일반적인 공식 입니까?
나는 R, Julian J. Faraway (p. 59)로 선형 모델 확장 책에서 pseudo 에 대한 공식을 찾았습니다 .
이것이 GLM에 대한 의사 의 일반적인 공식 입니까?
답변:
GLiM 에는 많은 의사 가 있습니다. 우수한 UCLA 통계 도움말 사이트에는 여기에 대한 포괄적 인 개요가 있습니다 . 당신이 나열한 것을 McFadden 's pseudo- 합니다. UCLA의 유형에 비해 널 모델에 비해 적합 모델의 개선을 색인한다는 점에서 와 같습니다 . SPSS와 같은 일부 통계 소프트웨어는 올바르게 기억한다면 기본적으로 로지스틱 회귀 분석과 같은 일부 분석 결과와 함께 McFadden의 의사 를 인쇄 하므로 Cox & Snell과 Nagelkerke pseudo- 이지만 매우 일반적이라고 생각합니다. 초가 더 그렇습니다. 그러나 McFadden의 의사 에는 다음과 같은 속성이 모두 없습니다. (의사 는 없음). 누군가 의사 를 사용하여 모형을 이해하는 데 관심 이있는 경우이 우수한 CV 스레드를 읽는 것이 좋습니다. 로지스틱 회귀 분석 (Cox & Snell 또는 Nagelkerke)에 대해 어떤 의사 측정치가보고됩니까? (그것의 가치, 무엇을 위해 자체가 사람들이 생각하는 것보다 slipperier입니다, 좋은 데모가있는 여기 @ whuber의 대답에서 볼 수있다 : IS ? 유용하거나 위험 )
R은 출력에 널 및 잔차 편차를 제공 glm
하므로 이러한 종류의 비교를 정확하게 수행 할 수 있습니다 (아래의 마지막 두 줄 참조).
> 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
또한 함께 객체에서 이러한 값을 뽑을 수 model$null.deviance
및model$deviance
제안한 공식은 Maddala (1983) 및 Magee (1990)가 로지스틱 모형에서 R 제곱을 추정하기 위해 제안했습니다. 따라서 모든 glm 모델에 적용 할 수는 없다고 생각합니다 (266 페이지의 Thomas P. Ryan의 현대 회귀 분석법 책 참조).
가짜 데이터 세트를 만들면 가우스 glm에 대한 R 제곱이 과소 평가됨을 알 수 있습니다.
가우시안 glm의 경우 기본 (lm) R 제곱 공식을 사용할 수 있다고 생각합니다.
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))
}
그리고 물류 (또는 r의 이항 군)에 대해 제안한 공식을 사용합니다 ...
R2logit<- function(y,model){
R2<- 1-(model$deviance/model$null.deviance)
return(R2)
}
지금까지 포아송 glm의 경우이 게시물의 방정식을 사용했습니다.
연구 게이트에서 의사 R2에 대한 훌륭한 기사도 있습니다 ... 링크는 다음과 같습니다.
도움이 되었기를 바랍니다.
1-summary(GLM)$deviance/summary(GLM)$null.deviance
하면 R2가 일반 OLS 회귀의 R2 값과 일치한다는 것을 알 수 있으므로 위의 대답이 정확합니다! 내 게시물을 참조하십시오 -stats.stackexchange.com/questions/412580/…
R 패키지 는 David J. Harris가 언급 한대로 D- 제곱
을 modEvA
계산합니다.1 - (mod$deviance/mod$null.deviance)
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- 제곱 또는 설명 편차는 (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.