Come calcolare la bontà di adattamento in glm (R)


21

Ho il seguente risultato dall'esecuzione della funzione glm.

Come posso interpretare i seguenti valori:

  • Deviazione nulla
  • Devianza residua
  • AIC

Hanno qualcosa a che fare con la bontà di adattarsi? Posso calcolare la bontà della misura di adattamento da questi risultati come R-quadrato o qualsiasi altra misura?

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

Mi rendo conto che questo è stato migrato dalla SO, dove normalmente non si cercano informazioni su questi termini statistici. Hai una grande risorsa qui! Ad esempio, vedi cosa puoi imparare da una ricerca su alcuni dei tuoi termini, come AIC . Un po 'di tempo dedicato a questo dovrebbe rispondere completamente alla tua domanda o almeno guidarti a farne una più specifica.
whuber

Non correlato ai glms gaussiani, ma se si dispone di un glm bernoulli adattato ai dati binari, non è possibile utilizzare la devianza residua per valutare l'adattamento del modello, poiché risulta che i dati vengono annullati nella formula di devianza. Ora, puoi usare la differenza di deviazioni residue in quel caso per confrontare due modelli, ma non la deviazione residua stessa.
FisherDisinformation

Risposte:


15

La famiglia di errori predefinita per un glmmodello in (la lingua) R è gaussiana, quindi con il codice inviato si ottiene una regressione lineare ordinaria in cui è una misura ampiamente accettata di "bontà di adattamento". La funzione R non riporta Nagelkerke-pseudo- " " ma piuttosto l'AIC (Akaike Information Criterion). Nel caso di un modello OLS, la misura Nagelkerke GOF sarà all'incirca la stessa di .R2glmR2R2

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

C'è un dibattito su come viene interpretata una misura del genere su LHS, ma solo quando i modelli si discostano dalla più semplice situazione gaussiana / OLS. Ma nei GLM in cui la funzione di collegamento potrebbe non essere "identità", come era qui, e "l'errore al quadrato" potrebbe non avere la stessa chiara interpretazione, quindi l'Akaike Information Criterion viene riportato anche perché sembra essere più generale. Ci sono molti altri contendenti nelle lotterie GLM GOF senza un chiaro vincitore.

Si consiglia di non segnalare una misura GOF se si intende utilizzare GLM con altre strutture di errore: quale misura pseudo- è quella da segnalare per la regressione logistica (Cox & Snell o Nagelkerke)?R2


7
Dove si trova esattamente "Nagelkerke-pseudo-" R2 "" nell'output sopra?
Tom,

1
Sto facendo eco alla domanda di Tom. Dove si trova l'output di Nagelkerke-pseudo- "R2" o come trovarlo? Non sto cercando ulteriori informazioni sul valore, ma piuttosto dove posso trovarlo nell'output di R. Nell'output di esempio della domanda non c'è nulla che mi sembri una bontà del valore di adattamento nell'intervallo [0-1], quindi sono confuso.
Kevin - Ripristina Monica il

Vedere stats.stackexchange.com/questions/8511/... e stackoverflow.com/questions/6242818/... ... non vedo alcun R ^ 2 sia l'oggetto glm o l'uscita di sintesi. Potrei aver pensato al solito output delle funzioni di riepilogo rms, poiché questo è il mio ambiente di modellazione preferito.
DWin,

9

Usa Null Deviance e Residual Deviance, in particolare:

1 - (Residual Deviance/Null Deviance)

Se ci pensate, state provando a misurare il rapporto tra la devianza nel vostro modello e il nulla; quanto è migliore il tuo modello (devianza residua) rispetto all'intercettazione (devianza nulla). Se quel rapporto è minuscolo, stai "spiegando" la maggior parte della devianza nel nulla; 1 meno per ottenere il tuo R-quadrato.

Nel tuo caso otterrai .998.

Se chiami semplicemente il modello lineare (lm) invece di glm, questo ti darà esplicitamente un R-quadrato nel sommario e puoi vedere che è lo stesso numero.


5

Se stai eseguendo un modello logistico binario, puoi anche eseguire il test di bontà di adattamento di Hosmer Lemeshow sul tuo modello glm (). Utilizzo della libreria 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)

Si noti che questo funziona solo per i modelli variabili dipendenti binari (ad es. Se era stato impostato family = "binomialOP. L'esempio di OP è la regressione lineare.
Matteo

@Matthew Questo è vero, mi dispiace averlo perso. Ho usato regressioni logistiche binarie così tanto ultimamente che il mio cervello è appena andato alhoslem.test()
dylanjm

Comprensibile :) Ho suggerito una modifica al tuo post ma ho dimenticato di aggiornare anche il codice R. Potresti volerlo cambiare solo per motivi di chiarezza.
Matteo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.