GAM adattivo leviga in mgcv


9

Il libro di Simon Wood su GAM e il relativo pacchetto R mgcv sono entrambi dettagliati e informativi quando si tratta di teoria GAM e adattamento del modello a dati reali e simulati.

Per i smooth 1D, non c'è davvero molto di cui preoccuparsi, salvo decidere se implementare funzioni di base cicliche o adattive, che possono dare risultati di previsione molto diversi rispetto ai smooths cubici, a piastra sottile e P-spline, perché, nel caso adattivo, più GAM sono adattati a diverse regioni lungo una spline. Per quanto ne so, le basi cicliche sono comuni nella modellizzazione delle serie temporali, mentre i smoothing adattivi dovrebbero essere considerati quando i dati variano molto rispetto alla variabile di risposta; tuttavia, i leviganti adattivi dovrebbero essere usati "con parsimonia e con cura".

Sto studiando GAM da un po 'di tempo e, data la mia domanda di ricerca, mi ritrovo a cambiare molto idea quando si tratta di quale agevole implementazione. mgcv include 17 diversi smooth tra cui scegliere (secondo il mio conteggio). Ho considerato levigati sia cubici che P-spline.

La mia domanda ora è : quando dovrebbero essere considerati gli smoothing adattivi rispetto alle controparti non adattative, se l'obiettivo finale è usare i GAM adattati a scopo di previsione? Per i miei scopi, sto rispettando il criterio di scorrevolezza GCV predefinito, anche se ha la tendenza a non regolare.

La letteratura sta crescendo in GAM ecologici applicati, ma devo ancora imbattermi in uno studio che implementa un approccio adattivo.

Qualsiasi consiglio è apprezzato.

Risposte:


20

La maggior parte degli smooths extra nella toolbox mgcv sono davvero lì per applicazioni specialistiche: puoi in gran parte ignorarli per GAM generali, in particolare smooth univariati (non hai bisogno di una spline di effetti casuali, una spline sulla sfera, un campo casuale di Markov, o un film di sapone più liscio se ad esempio si dispone di dati univariati.)

Se è possibile sostenere i costi di installazione, utilizzare le spline di regressione a piastra sottile (TPRS).

Queste spline sono ottimali in un senso di MSE asintotico, ma richiedono una funzione di base per osservazione. Quello che Simon fa in mgcv è generare una versione di basso livello del TPRS standard prendendo la base TPRS completa e sottoponendola a una composizione elettronica. Ciò crea una nuova base in cui la prima kfunzione di base nel nuovo spazio mantiene la maggior parte del segnale nella base originale, ma in molte meno funzioni di base. Questo è il modo in cui mgcv riesce a ottenere un TPRS che utilizza solo un numero specificato di funzioni di base anziché uno per osservazione. Questa eigendecomposition conserva gran parte dell'ottimalità della classica base TPRS, ma con notevoli sforzi computazionali per grandi set di dati.

Se non riesci a sostenere il costo di installazione di TPRS, utilizza le spline di regressione cubica (CRS)

Questa è una base rapida per generare e quindi è adatta a problemi con molti dati. Tuttavia, si basa sul nodo, quindi in una certa misura l'utente deve ora scegliere dove posizionare i nodi. Per la maggior parte dei problemi c'è poco da guadagnare andando oltre il posizionamento del nodo predefinito (al limite dei dati e spaziato in modo uniforme tra loro), ma se si ha un campionamento particolarmente irregolare nell'intervallo della covariata, è possibile scegliere di posizionare nodi ad esempio, quantili campione distribuiti uniformemente della covariata.

Ogni altro liscio in mgcv è speciale, viene utilizzato dove desideri levigati isotropi o due o più covariate, o sono per il livellamento spaziale, o che implementano il restringimento, o effetti casuali e spline casuali, o dove le covariate sono cicliche o la variabilità varia la gamma di una covariata. Hai solo bisogno di avventurarti così lontano nella cassetta degli attrezzi liscia se hai un problema che richiede una gestione speciale.

restringimento

Esistono versioni di restringimento sia di TPRS che di CRS in mgcv . Questi implementano una spline in cui anche la parte perfettamente liscia della base è soggetta alla penalità di scorrevolezza. Ciò consente al processo di selezione della levigatezza di ridurre a zero anche una parte posteriore liscia oltre una funzione lineare. Ciò consente alla penalità di levigatezza di eseguire anche la selezione delle funzioni.

Spline Duchon, spline P e spline B.

Queste spline sono disponibili per applicazioni specialistiche in cui è necessario specificare separatamente l'ordine di base e l'ordine di penalità. Le spline di Duchon generalizzano il TPRS. Ho l'impressione che le spline P siano state aggiunte a mgcv per consentire il confronto con altri approcci penalizzati basati sulla verosimiglianza, e perché sono spline utilizzate da Eilers & Marx nel loro documento del 1996 che ha stimolato gran parte del lavoro successivo nei GAM. Le spline P sono utili anche come base per altre spline, come spline con vincoli di forma e spline adattive.

Le spline B, come implementate in mgcv, offrono una grande flessibilità nell'impostare la penalità e i nodi per le spline, il che può consentire una certa estrapolazione oltre l'intervallo dei dati osservati.

Spline cicliche

Se l'intervallo di valori per una covariata può essere considerato come in un cerchio in cui i punti finali dell'intervallo dovrebbero effettivamente essere equivalenti (mese o giorno dell'anno, angolo di movimento, aspetto, direzione del vento), questo vincolo può essere imposto la base. Se hai covariate come questa, allora ha senso imporre questo vincolo.

Smoothers adattivi

Invece di inserire una GAM separata nelle sezioni della covariata, le spline adattive utilizzano una matrice di penalità ponderata, in cui i pesi possono variare senza intoppi nell'intervallo della covariata. Per le spline TPRS e CRS, ad esempio, assumono lo stesso grado di levigatezza nell'intervallo della covariata. Se hai una relazione in cui questo non è il caso, puoi finire per usare più gradi di libertà del previsto per consentire alla spline di adattarsi alle parti ondulate e non ondulate. Un esempio classico nella letteratura di smoothing è il

library('ggplot2')
theme_set(theme_bw())
library('mgcv')
data(mcycle, package = 'MASS')
pdata <- with(mcycle,
              data.frame(times = seq(min(times), max(times), length = 500)))

ggplot(mcycle, aes(x = times, y = accel)) + geom_point()

inserisci qui la descrizione dell'immagine

Questi dati mostrano chiaramente periodi di diversa fluidità - effettivamente zero per la prima parte della serie, lotti durante l'impatto, riducendo in seguito.

se adattiamo un GAM standard a questi dati,

m1 <- gam(accel ~ s(times, k = 20), data = mcycle, method = 'REML')

otteniamo una misura ragionevole ma c'è un po 'di instabilità all'inizio e alla fine della gamma timese della misura utilizzate ~ 14 gradi di libertà

plot(m1, scheme = 1, residuals = TRUE, pch= 16)

inserisci qui la descrizione dell'immagine

Per compensare la variabilità oscillante, una spline adattiva utilizza una matrice di penalità ponderata con i pesi che variano uniformemente con la covariata. Qui rimonto il modello originale con la stessa dimensione di base (k = 20) ma ora abbiamo 5 parametri di levigatezza (il valore predefinito è m = 5) invece di 1 dell'originale.

m2 <- gam(accel ~ s(times, k = 20, bs = 'ad'), data = mcycle, method = 'REML')

Si noti che questo modello utilizza molti meno gradi di libertà (~ 8) e il liscio montato è molto meno ondulato alle estremità, pur essendo in grado di adattarsi adeguatamente ai grandi cambiamenti nell'accelerazione della testa durante l'impatto.

inserisci qui la descrizione dell'immagine

Ciò che sta realmente accadendo qui è che la spline ha una base per il liscio e una base per la penalità (per consentire ai pesi di variare agevolmente con la covariata). Per impostazione predefinita Entrambi sono spline P, ma è anche possibile utilizzare i tipi di base CRS troppo ( bspuò essere solo uno dei 'ps', 'cr', 'cc', 'cs'.)

Come illustrato qui, la scelta di adattarsi o meno dipende dal problema; se si ha una relazione per la quale si assume che la forma funzionale sia regolare, ma il grado di scorrevolezza varia nell'intervallo della covariata nella relazione, allora una spline adattiva può avere senso. Se la tua serie ha avuto periodi di cambiamento rapido e periodi di cambiamento basso o più graduale, ciò potrebbe indicare che potrebbe essere necessario un adattamento adattivo.


1
Grazie Gavin! Questa è davvero un'ottima risposta che penso aiuterà anche gli altri con la stessa preoccupazione.
compbiostats,

Per il mio problema, ho inserito una curva crescente monotona che alla fine ha un plateau su un asintoto orizzontale. All'inizio della mia curva, i dati aumentano abbastanza rapidamente, prima di rallentare verso un asintoto. In alcuni casi, è necessaria l'estrapolazione (vicino / lontano) oltre l'intervallo dei dati osservati. I miei modelli sono molto semplici, ma mi rendo conto che le previsioni qui sono nel migliore dei casi speculative.
compbiostats,
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.