Como calcular a qualidade do ajuste na glm (R)


21

Eu tenho o seguinte resultado da execução da função glm.

Como posso interpretar os seguintes valores:

  • Desvio nulo
  • Desvio residual
  • AIC

Eles têm algo a ver com a bondade do ajuste? Posso calcular alguma medida de qualidade de ajuste a partir desses resultados, como quadrado R ou qualquer outra medida?

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

Sei que isso foi migrado do SO, onde normalmente não seria necessário procurar informações sobre esses termos estatísticos. Você tem um ótimo recurso aqui! Por exemplo, veja o que você pode aprender com uma pesquisa em alguns de seus termos, como AIC . Um pouco de tempo gasto para fazer isso deve responder totalmente à sua pergunta ou pelo menos guiá-lo a fazer uma pergunta mais específica.
whuber

Não está relacionado aos glms gaussianos, mas se você tiver um bernoulli glm ajustado aos dados binários, não poderá usar o desvio residual para avaliar o ajuste do modelo, porque os dados são cancelados na fórmula de desvio. Agora, você pode usar a diferença de desvios residuais nesse caso para comparar dois modelos, mas não o desvio residual em si.
FisherDisinformation

Respostas:


15

glmR2glmR2R2

RGLM2=1(idi,model2)2/N(idi,null2)2/N        .=.        1SSE/n[model]SST/n[total]=ROLS2

Há algum debate sobre como essa medida no LHS é interpretada, mas apenas quando os modelos se afastam da situação Gaussiana / OLS mais simples. Mas nos GLMs onde a função de link pode não ser "identidade", como estava aqui, e o "erro ao quadrado" pode não ter a mesma interpretação clara, portanto o Critério de Informação de Akaike também é relatado porque parece ser mais geral. Existem vários outros candidatos nos sorteios do GLM GOF sem nenhum vencedor claro.

R2


7
Onde exatamente está o "Nagelkerke-pseudo-" R2 "" na saída acima?
Tom

1
Estou ecoando a pergunta de Tom. Onde na saída está o Nagelkerke-pseudo- "R2", ou como o encontro? Não estou procurando mais informações sobre o valor, mas onde posso encontrá-lo na saída de R. Não há nada no exemplo de saída da pergunta que me pareça um valor de ajuste adequado no intervalo [0-1], por isso estou confuso.
Kevin - Restabelece Monica

Consulte stats.stackexchange.com/questions/8511/… e stackoverflow.com/questions/6242818/… ... Não vejo nenhum R ^ 2 no objeto glm ou na saída de resumo. Eu posso estar pensando na saída usual das funções de resumo de rms, já que esse é o meu ambiente de modelagem favorito.
Dwin

9

Use o desvio nulo e o desvio residual, especificamente:

1 - (Residual Deviance/Null Deviance)

Se você pensar bem, está tentando medir a proporção do desvio no seu modelo para o nulo; quão melhor é o seu modelo (desvio residual) do que apenas a interceptação (desvio nulo). Se essa proporção for pequena, você estará 'explicando' a maior parte do desvio no nulo; 1 menos que você recebe seu R-quadrado.

Na sua instância, você receberá 0,998.

Se você apenas chamar o modelo linear (lm) em vez de glm, ele explicitamente fornecerá um R-quadrado no resumo e você poderá ver que é o mesmo número.


5

Se você estiver executando um modelo logístico binário, também poderá executar o teste Hosmer Lemeshow Goodness of Fit no seu modelo glm (). Usando a biblioteca 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)

Embora note que este é apenas funciona para os modelos de variáveis dependentes binárias (por exemplo, se OP tinha definido family = "binomialo exemplo do OP é a regressão linear..
Mateus

@ Matthew Isso é verdade, me desculpe, eu perdi isso. Estou usando regressões logísticas binárias tanto ultimamente meu cérebro só fui para ahoslem.test()
dylanjm

Compreensível :) Sugeri uma edição para o seu post, mas esqueci de atualizar o código R também. Você pode mudar isso apenas por uma questão de clareza.
Matthew
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.