Comment calculer la qualité de l'ajustement en glm (R)

21

J'ai le résultat suivant en exécutant la fonction glm.

Comment interpréter les valeurs suivantes:

  • Déviance nulle
  • Déviance résiduelle
  • AIC

Ont-ils quelque chose à voir avec la qualité de l'ajustement? Puis-je calculer une mesure de la qualité de l'ajustement à partir de ces résultats, comme le carré R ou toute autre mesure?

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
apprenant
la source
Je me rends compte que cela a été migré de SO, où l'on ne chercherait normalement pas d'informations sur ces termes statistiques. Vous avez une excellente ressource ici! Par exemple, voyez ce que vous pouvez apprendre d'une recherche sur certains de vos termes, comme AIC . Un peu de temps consacré à cela devrait soit répondre pleinement à votre question, soit au moins vous guider pour en poser une plus spécifique.
whuber
Non lié aux glms gaussiens, mais si vous avez un glm bernoulli adapté aux données binaires, vous ne pouvez pas utiliser la déviance résiduelle pour évaluer l'ajustement du modèle, car il s'avère que les données sont annulées dans la formule de déviance. Maintenant, vous pouvez utiliser la différence des déviations résiduelles dans ce cas pour comparer deux modèles, mais pas la déviance résiduelle elle-même.
FisherDisinformation

Réponses:

15

glmR2glmR2R2

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

Il y a un débat sur la façon dont une telle mesure sur le LHS est interprétée, mais seulement lorsque les modèles s'écartent de la situation gaussienne / OLS plus simple. Mais dans les GLM où la fonction de lien peut ne pas être "identité", comme c'était le cas ici, et "l'erreur quadratique" peut ne pas avoir la même interprétation claire, donc le critère d'information d'Akaike est également signalé car il semble être plus général. Il y a plusieurs autres prétendants au tirage au sort GLM GOF sans vainqueur clair.

R2

DWin
la source
7
Où est exactement le "Nagelkerke-pseudo-" R2 "" dans la sortie ci-dessus?
Tom
1
Je fais écho à la question de Tom. Où dans la sortie se trouve le Nagelkerke-pseudo- "R2", ou comment le trouver? Je ne cherche pas plus d'informations sur la valeur, mais plutôt où je peux la trouver dans la sortie de R. Il n'y a rien dans l'exemple de sortie de la question qui me semble être une valeur d'ajustement dans la plage [0-1], donc je suis confus.
Kevin - Réintègre Monica le
Voir stats.stackexchange.com/questions/8511/… et stackoverflow.com/questions/6242818/… ... Je ne vois aucun R ^ 2 dans l'objet glm ou la sortie récapitulative. J'ai peut-être pensé à la sortie habituelle des fonctions de résumé rms, car c'est mon environnement de modélisation préféré.
DWin
9

Utilisez la déviation nulle et la déviance résiduelle, en particulier:

1 - (Residual Deviance/Null Deviance)

Si vous y réfléchissez, vous essayez de mesurer le rapport de la déviance dans votre modèle au zéro; à quel point votre modèle est meilleur (déviance résiduelle) que la simple interception (déviance nulle). Si ce rapport est minuscule, vous «expliquez» la majeure partie de la déviance dans le nul; 1 moins qui vous donne votre R au carré.

Dans votre cas, vous obtiendrez .998.

Si vous appelez simplement le modèle linéaire (lm) au lieu de glm, il vous donnera explicitement un R au carré dans le résumé et vous pouvez voir que c'est le même nombre.

noLongerRandom
la source
5

Si vous exécutez un modèle logistique binaire, vous pouvez également exécuter le test d'adéquation Hosmer Lemeshow sur votre modèle glm (). Utilisation de la bibliothèque 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)
dylanjm
la source
Notez cependant que cela ne fonctionne que pour les modèles de variables dépendantes binaires (par exemple, si OP a été défini family = "binomial. L'exemple de OP est la régression linéaire.
Matthew
@Matthew C'est vrai, je suis désolé d'avoir raté ça. J'utilise tellement les régressions logistiques binaires ces derniers temps, mon cerveau vient de se rendre auhoslem.test()
dylanjm
Compréhensible :) J'ai suggéré une modification à votre message, mais j'ai également oublié de mettre à jour le code R. Vous voudrez peut-être changer cela juste pour des raisons de clarté.
Matthew