Qual è la differenza tra AIC () e extractAIC () in R?


11

La documentazione R per entrambi non fa molta luce. Tutto quello che posso ottenere da questo link è che usare uno dei due dovrebbe andare bene. Quello che non capisco è perché non sono uguali.

Fatto: La funzione di regressione stepwise in R, step()usi extractAIC().

È interessante notare che l'esecuzione di un lm()modello e di un modello glm()"null" (solo l'intercettazione) sul set di dati "mtcars" di R fornisce risultati diversi per AICe extractAIC().

> null.glm = glm(mtcars$mpg~1)
> null.lm = lm(mtcars$mpg~1)

> AIC(null.glm)
[1] 208.7555
> AIC(null.lm)
[1] 208.7555
> extractAIC(null.glm)
[1]   1.0000 208.7555
> extractAIC(null.lm)
[1]   1.0000 115.9434

È strano, dato che entrambi i modelli sopra sono uguali e AIC()dà gli stessi risultati per entrambi.

Qualcuno può far luce sulla questione?

Risposte:


6

Secondo l'aiuto per queste due funzioni (usare? AIC e? ExtractAIC) questo è previsto.

Si noti che l'AIC è appena definito fino a una costante additiva, poiché questo è anche il caso della probabilità logaritmica. Questo significa che dovresti verificare se

extractAIC(full.modell) - extractAIC(null.modell)

e

AIC(full.modell) - AIC(null.modell)

dare lo stesso risultato. Finché lo fanno, entrambe le funzioni sono equivalenti per tutti gli scopi pratici.


2
Probabilmente mi manca qualcosa, ma ancora non capisco perché extractAIC(null.lm) != AIC(null.lm), extractAIC(null.glm) == AIC(null.glm)sebbene null.lmsia lo stesso modello null.glm. Potresti espandere leggermente la tua risposta?
— smillig

2
@smillig extractAICutilizza diversi metodi per lmadatta e glmsi adatta, cioè, extractAIC.lme extractAIC.glm. Puoi usare getAnywhereper studiare il loro codice. AICutilizza lo stesso metodo per entrambi.
— Roland,

Ho diverse coppie di modelli (con predittori multipli) per le quali entrambe le funzioni danno risultati diversi. Modello 1: y = x1 + x2, Modello 2: y = z + x1 + x2 * z. extractAIC()fornisce un valore più basso (negativo) per il Modello 1, mentre AIC fornisce un valore più basso (positivo) per il Modello 2.
— Maxim.K

1
@ Maxim.K Fornisci poche informazioni sul tipo di variabili e modelli utilizzati. Se lo hai fatto e ci sono alcune differenze rispetto a questa domanda, potrebbe essere utile pubblicarlo come una nuova domanda. Difficile a dirsi, senza conoscere i dettagli.
— Erik,

@Erik Dubito che varrà molto se dico che z è continuo e x2 è categorico (dummified). Uno avrebbe bisogno dei dati per riprodursi e non posso pubblicarli, temo.
— Maxim.K
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.