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 k
funzione 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()
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 times
e della misura utilizzate ~ 14 gradi di libertà
plot(m1, scheme = 1, residuals = TRUE, pch= 16)
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.
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 ( bs
può 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.