Encontrei uma fórmula para o pseudo no livro Estendendo o modelo linear com R, Julian J. Faraway (p. 59).
Essa é uma fórmula comum para o pseudo para GLMs?
Encontrei uma fórmula para o pseudo no livro Estendendo o modelo linear com R, Julian J. Faraway (p. 59).
Essa é uma fórmula comum para o pseudo para GLMs?
Respostas:
Há um grande número de pseudo- s para GLiMs. O excelente site de ajuda sobre estatísticas da UCLA tem uma visão abrangente sobre eles aqui . O que você lista é chamado pseudo- McFadden . Em relação à tipologia da UCLA, é como no sentido de indexar a melhoria do modelo ajustado em relação ao modelo nulo. Alguns softwares estatísticos, principalmente o SPSS, se bem me lembro, imprimem o pseudo- McFadden por padrão com os resultados de algumas análises como regressão logística, então suspeito que seja bastante comum, embora os pseudo- Cox & Snell e Nagelkerke s pode ser ainda mais. No entanto, o pseudo- McFadden não possui todas as propriedades deR 2 R 2 R 2 R 2 R 2 R 2 R 2 R 2 R 2 R 2 R 2 (nenhum pseudo- faz). Se alguém estiver interessado em usar um pseudo- para entender um modelo, eu recomendo fortemente a leitura deste excelente tópico do CV: Qual medida de pseudo- é a única a ser relatada para a regressão logística (Cox & Snell ou Nagelkerke)? (Por que vale a pena, em si é escorregadia que as pessoas imaginam, uma grande demonstração de que pode ser visto em @ de whuber resposta aqui: Is ? Útil ou perigoso )
R fornece desvio nulo e residual na saída para glm
que você possa fazer exatamente esse tipo de comparação (consulte as duas últimas linhas abaixo).
> 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
Você também pode extrair esses valores do objeto com model$null.deviance
emodel$deviance
A fórmula que você propôs foi proposta por Maddala (1983) e Magee (1990) para estimar R ao quadrado no modelo logístico. Portanto, não acho que seja aplicável a todo modelo glm (consulte o livro Métodos modernos de regressão de Thomas P. Ryan na página 266).
Se você criar um conjunto de dados falsos, verá que ele subestima o R ao quadrado ... para glm gaussiano, por exemplo.
Eu acho que para um glm gaussiano você pode usar a fórmula ao quadrado básica (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))
}
And for the logistic (or binomial family in r ) I would use the formula you proposed...
R2logit<- function(y,model){
R2<- 1-(model$deviance/model$null.deviance)
return(R2)
}
Até agora, para poisson glm, usei a equação deste post.
Há também um ótimo artigo sobre o pseudo R2 disponível nos portões de pesquisas ... aqui está o link:
Espero que isso ajude.
1-summary(GLM)$deviance/summary(GLM)$null.deviance
e você verá que o R2 corresponde ao valor R2 de uma regressão OLS regular, para que a resposta acima esteja correta! Veja também meu post aqui - stats.stackexchange.com/questions/412580/…
O pacote R modEvA
calcula D-Squared
como 1 - (mod$deviance/mod$null.deviance)
como mencionado por 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
O desvio-D ao quadrado ou explicado do modelo é apresentado em (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.