Riepilogo di un adattamento GAM


12

Se inseriamo un GAM come:

gam.fit = gam::gam(Outstate ~ Private + s(Room.Board, df = 2) + s(PhD, df = 2) + 
    s(perc.alumni, df = 2) + s(Expend, df = 5) + s(Grad.Rate, df = 2), data = College)

Dove, usiamo il set di dati College, che può essere trovato all'interno del pacchetto ISLR.
Ora, se troviamo il riepilogo di questo adattamento, allora possiamo vedere che:

> summary(gam.fit)

Call: gam(formula = Outstate ~ Private + s(Room.Board, df = 2) + s(PhD, 
    df = 2) + s(perc.alumni, df = 2) + s(Expend, df = 5) + s(Grad.Rate, 
    df = 2), data = College)
Deviance Residuals:
     Min       1Q   Median       3Q      Max 
-7522.66 -1140.99    55.18  1287.51  7918.22 

(Dispersion Parameter for gaussian family taken to be 3475698)

    Null Deviance: 12559297426 on 776 degrees of freedom
Residual Deviance: 2648482333 on 762.0001 degrees of freedom
AIC: 13924.52 

Number of Local Scoring Iterations: 2 

Anova for Parametric Effects
                        Df     Sum Sq    Mean Sq F value    Pr(>F)    
Private                  1 3377801998 3377801998 971.834 < 2.2e-16 ***
s(Room.Board, df = 2)    1 2484460409 2484460409 714.809 < 2.2e-16 ***
s(PhD, df = 2)           1  839368837  839368837 241.496 < 2.2e-16 ***
s(perc.alumni, df = 2)   1  509679160  509679160 146.641 < 2.2e-16 ***
s(Expend, df = 5)        1 1019968912 1019968912 293.457 < 2.2e-16 ***
s(Grad.Rate, df = 2)     1  148052210  148052210  42.596 1.227e-10 ***
Residuals              762 2648482333    3475698                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Anova for Nonparametric Effects
                       Npar Df Npar F   Pr(F)    
(Intercept)                                      
Private                                          
s(Room.Board, df = 2)        1  3.480 0.06252 .  
s(PhD, df = 2)               1  1.916 0.16668    
s(perc.alumni, df = 2)       1  1.471 0.22552    
s(Expend, df = 5)            4 34.350 < 2e-16 ***
s(Grad.Rate, df = 2)         1  1.981 0.15971    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Qui, non capisco il significato della parte "Anova per effetti parametrici" e "Anova per effetti non parametrici". Anche se conosco il funzionamento del test ANOVA, ma non sono in grado di comprendere la parte "sintesi" degli effetti "parametrici" e "effetti non parametrici". Cosa significano? Qual è il loro significato?


Questa domanda è nata a causa della (d) parte di questa risposta, per la domanda 10, capitolo 7 dell'Introduzione all'apprendimento statistico .

Risposte:


22

Il modo in cui è strutturato l'output di questo approccio all'adattamento dei GAM è di raggruppare le parti lineari dei smoother con gli altri termini parametrici. L'avviso Privateha una voce nella prima tabella ma la sua voce è vuota nella seconda. Questo perché Privateè un termine strettamente parametrico; è una variabile fattore e quindi è associata a un parametro stimato che rappresenta l'effetto di Private. Il motivo per cui i termini uniformi sono separati in due tipi di effetti è che questo output consente di decidere se un termine regolare ha

  1. un effetto non lineare : osserva la tabella non parametrica e valuta il significato. Se significativo, lascia come effetto liscio non lineare. Se insignificante, considera l'effetto lineare (2. sotto)
  2. un effetto lineare : osserva la tabella parametrica e valuta il significato dell'effetto lineare. Se significativo, puoi trasformare il termine in liscio s(x)-> xnella formula che descrive il modello. Se insignificante potresti considerare di eliminare del tutto il termine dal modello (ma fai attenzione con questo --- ciò equivale a una forte affermazione che il vero effetto è == 0).

Tabella parametrica

Le voci qui sono come quelle che si otterrebbero se si inserisse questo modello lineare e si calcolasse la tabella ANOVA, tranne per il fatto che non vengono mostrate stime per i coefficienti dei modelli associati. Invece di coefficienti stimati ed errori standard e test t o Wald associati , la quantità di varianza spiegata (in termini di somme di quadrati) viene mostrata accanto ai test F. Come con altri modelli di regressione dotati di più covariate (o funzioni di covariate), le voci nella tabella sono subordinate agli altri termini / funzioni del modello.

Tabella non parametrica

Gli effetti non parametrici si riferiscono alle parti non lineari dei rasoi montati. Nessuno di questi effetti non lineari è significativo ad eccezione dell'effetto non lineare di Expend. Ci sono alcune prove di un effetto non lineare di Room.Board. Ognuno di questi è associato a un certo numero di gradi di libertà non parametrici ( Npar Df) e spiegano una quantità di variazione nella risposta, la cui quantità viene valutata tramite un test F (per impostazione predefinita, vedere l'argomento test).

Questi test nella sezione non parametrica possono essere interpretati come test dell'ipotesi nulla di una relazione lineare anziché di una relazione non lineare .

Il modo in cui puoi interpretarlo è che solo i Expendwarrant sono trattati come un liscio effetto non lineare. Gli altri smooth potrebbero essere convertiti in termini parametrici lineari. Potresti voler verificare che il smooth di Room.Boardcontinui ad avere un effetto non parametrico non significativo una volta convertiti gli altri smooth in termini lineari e parametrici; può darsi che l'effetto di Room.Boardsia leggermente non lineare, ma ciò è influenzato dalla presenza di altri termini uniformi nel modello.

Tuttavia, molto di questo potrebbe dipendere dal fatto che a molti smooth è stato permesso di usare solo 2 gradi di libertà; perché 2?

Selezione automatica della scorrevolezza

Gli approcci più recenti per l'adattamento dei GAM sceglierebbero il grado di scorrevolezza per te tramite approcci di selezione automatica della scorrevolezza come l'approccio spline penalizzato di Simon Wood come implementato nel pacchetto raccomandato mgcv :

data(College, package = 'ISLR')
library('mgcv')

set.seed(1)
nr <- nrow(College)
train <- with(College, sample(nr, ceiling(nr/2)))
College.train <- College[train, ]
m <- mgcv::gam(Outstate ~ Private + s(Room.Board) + s(PhD) + s(perc.alumni) + 
               s(Expend) + s(Grad.Rate), data = College.train,
               method = 'REML')

Il riepilogo del modello è più conciso e considera direttamente la funzione smooth nel suo insieme piuttosto che come contributi lineari (parametrici) e non lineari (non parametrici):

> summary(m)

Family: gaussian 
Link function: identity 

Formula:
Outstate ~ Private + s(Room.Board) + s(PhD) + s(perc.alumni) + 
    s(Expend) + s(Grad.Rate)

Parametric coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   8544.1      217.2  39.330   <2e-16 ***
PrivateYes    2499.2      274.2   9.115   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
                 edf Ref.df      F  p-value    
s(Room.Board)  2.190  2.776 20.233 3.91e-11 ***
s(PhD)         2.433  3.116  3.037 0.029249 *  
s(perc.alumni) 1.656  2.072 15.888 1.84e-07 ***
s(Expend)      4.528  5.592 19.614  < 2e-16 ***
s(Grad.Rate)   2.125  2.710  6.553 0.000452 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

R-sq.(adj) =  0.794   Deviance explained = 80.2%
-REML = 3436.4  Scale est. = 3.3143e+06  n = 389

Ora l'output riunisce i termini smooth e quelli parametrici in tabelle separate, con quest'ultima che ottiene un output più familiare simile a quello di un modello lineare. I termini uniformi dell'intero effetto sono mostrati nella tabella inferiore. Questi non sono gli stessi test del gam::gammodello che mostri; sono test contro l'ipotesi nulla che l'effetto liscio sia una linea piatta, orizzontale, un effetto nullo o che mostri un effetto zero. L'alternativa è che il vero effetto non lineare è diverso da zero.

Si noti che i FES sono tutti più grandi di 2 tranne s(perc.alumni), suggerendo che il gam::gammodello potrebbe essere un po 'restrittivo.

I smooth montati per il confronto sono dati da

plot(m, pages = 1, scheme = 1, all.terms = TRUE, seWithMean = TRUE)

che produce

inserisci qui la descrizione dell'immagine

La selezione automatica della levigatezza può anche essere cooptata per ridurre completamente i termini fuori dal modello:

Fatto ciò, vediamo che l'adattamento del modello non è realmente cambiato

> summary(m2)

Family: gaussian 
Link function: identity 

Formula:
Outstate ~ Private + s(Room.Board) + s(PhD) + s(perc.alumni) + 
    s(Expend) + s(Grad.Rate)

Parametric coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   8539.4      214.8  39.755   <2e-16 ***
PrivateYes    2505.7      270.4   9.266   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
                 edf Ref.df      F  p-value    
s(Room.Board)  2.260      9  6.338 3.95e-14 ***
s(PhD)         1.809      9  0.913  0.00611 ** 
s(perc.alumni) 1.544      9  3.542 8.21e-09 ***
s(Expend)      4.234      9 13.517  < 2e-16 ***
s(Grad.Rate)   2.114      9  2.209 1.01e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

R-sq.(adj) =  0.794   Deviance explained = 80.1%
-REML = 3475.3  Scale est. = 3.3145e+06  n = 389

Tutti i levigati sembrano suggerire effetti leggermente non lineari anche dopo che abbiamo ridotto le parti lineari e non lineari delle spline.

Personalmente, trovo che l'output di mgcv sia più facile da interpretare, e poiché è stato dimostrato che i metodi di selezione automatica della levigatura tenderanno ad adattarsi a un effetto lineare se supportato dai dati.


4
+1 Ottima spiegazione. (Sono curioso di sapere cosa intendi per "test F non parametrico", però: in che modo differirebbe da un test F standard, se non del tutto?)
whuber

4
@whuber che è solo un povero fraseggio; è un test F standard, ma a causa della decomposizione dei smooth in parti lineari e non lineari, questi sono test di ciò che l'uscita chiama il bit "non parametrico". Lo modificherò.
Ripristina Monica - G. Simpson,

3
i valori p non funzionano in questo modo; per eseguire il test, abbiamo ipotizzato che l'ipotesi nulla sia vera . Quello che sta facendo quel test è, supponiamo che la relazione sia lineare, quanto in conflitto con tale presupposto siano le prove fornite dai dati? Se le prove fornite dai dati sono coerenti con quelle che ci aspettiamo se il valore nullo fosse vero. Se l'evidenza è incompatibile con l'ipotesi nulla, allora sarebbe improbabile che avessimo osservato i dati che avevamo fatto se il valore nullo fosse vero. Il valore p è una misura dell'evidenza rispetto al null.
Ripristina Monica - G. Simpson,

1
Dici della tabella parametrica: "Le voci qui sono essenzialmente ciò che otterresti se lo adattassi come modello lineare e calcoli la tabella ANOVA." Presumo che ciò non sia letteralmente vero (cioè che la parte non lineare del modello non influisce affatto sulle stime di significatività per la parte lineare). Sicuramente la stima delle parti lineari e non lineari viene eseguita congiuntamente, e la parte non lineare influenza i coefficienti per la parte lineare e la loro importanza, giusto?
Jacob Socolar,

1
@JacobSocolar Per quanto ho capito, la spline è scomponibile in un componente lineare e in alcuni componenti non lineari (il cui numero dipende dai gradi di libertà consentiti per la spline). Quello che intendevo dire era questo il tipo di output che otterresti da un adattamento del modello lineare seguito da ANOVA (ovvero un test F per il quadrato medio). Bute sì, si tratta di effetti parziali nel senso che la varianza spiegata da una parte del modello dipende dagli altri termini (e funzioni di base) nel modello. E sì, non intendevo letteralmente quella citazione; Ti riformulo per "mi piace quello che vorresti ...".
Ripristina Monica - G. Simpson,
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.