Confronto tra spline leviganti e loess per levigare?


25

Vorrei capire meglio i pro / contro per l'utilizzo di spessori di loess o smoothing per smussare una curva.

Un'altra variante della mia domanda è se esiste un modo per costruire una spline di livellamento in modo da ottenere gli stessi risultati dell'uso del loess.

Qualsiasi riferimento o approfondimento sono i benvenuti.


Tal, Il seguente articolo ben citato esamina molti approcci di regressione non parametrica Buja, A., Hastie, T., e Tibshirani, R. (1989). Smoothers lineari e modelli additivi . The Annals of Statistics , 17 (2), 453-510, meglio.
Alexis,

Risposte:


16

Ecco qualche codice / esempio R che ti permetterà di confrontare gli adattamenti per un adattamento loess e un adattamento spline:

library(TeachingDemos)
library(splines)

tmpfun <- function(x,y,span=.75,df=3) {
    plot(x,y)
    fit1 <- lm(y ~ ns(x,df))
    xx <- seq( min(x), max(x), length.out=250 )
    yy <- predict(fit1, data.frame(x=xx))
    lines(xx,yy, col='blue')
    fit2 <- loess(y~x, span=span)
    yy <- predict(fit2, data.frame(x=xx))
    lines(xx,yy, col='green')
    invisible(NULL)
}

tmplst <- list( 
    span=list('slider', from=0.1, to=1.5, resolution=0.05, init=0.75),
    df=list('slider', from=3, to=25, resolution=1, init=3))

tkexamp( tmpfun(ethanol$E, ethanol$NOx), tmplst )

Puoi provarlo con i tuoi dati e cambiare il codice per provare altri tipi o opzioni. Potresti anche voler esaminare la loess.demofunzione nel pacchetto TeachingDemos per una migliore comprensione di ciò che fa l'algoritmo di loess. Si noti che ciò che si vede da loess è spesso una combinazione di loess con un secondo livellamento di interpolazione (a volte esso stesso una spline), la loess.demofunzione mostra in realtà sia l'adattamento levigato che quello grezzo.

Teoricamente puoi sempre trovare una spline che si avvicina a un'altra funzione continua il più vicino possibile, ma è improbabile che ci sia una semplice scelta di nodi che fornirà in modo affidabile una stretta approssimazione a un adattamento loess per qualsiasi set di dati.


Ciao Greg: 1) Grazie per la risposta. 2) Adoro la tua funzione loess.demo ...
Tal Galili,

29

I risultati effettivi di una spline levigante o di un loess saranno abbastanza simili. Potrebbero apparire un po 'diversi ai bordi del supporto, ma finché ti assicuri che sia una spline di levigatura "naturale" sembreranno molto simili.

Se ne stai semplicemente usando uno per aggiungere un "più liscio" a un diagramma a dispersione, non c'è alcun motivo reale per preferire l'uno all'altro. Se invece vuoi fare previsioni su nuovi dati, è generalmente molto più facile usare una spline di smoothing. Questo perché la spline di smoothing è un'espansione di base diretta dei dati originali; se hai usato 100 nodi per farlo significa che hai creato ~ 100 nuove variabili dalla variabile originale. Loess invece stima solo la risposta a tutti i valori sperimentati (o un sottoinsieme stratificato per dati di grandi dimensioni).

In generale, esistono algoritmi consolidati per ottimizzare il valore di penalità per levigare le spline (mgcv in R probabilmente fa questo al meglio). Loess non è altrettanto chiaro, ma generalmente otterrai comunque un risultato ragionevole da qualsiasi implementazione. MGCV ti dà anche un'idea di gradi di libertà equivalenti, così puoi avere un'idea di quanto siano "non lineari" i tuoi dati.

Trovo che quando si modella su dati molto grandi, una spline naturale più semplice spesso fornisce risultati simili per un calcolo minimo rispetto a una spline di livellamento o a un loess.


+1, bella risposta! Mi piace la chiara esposizione teorica.
gung - Ripristina Monica

Perché differiscono però vicino ai bordi del supporto?
imu96

1
@ imu96 AFAIK, i metodi di regressione non parametrica cadono alle estremità perché si basano su una vicinanza di dati su entrambi i lati del punto lungo il Xl'asse viene stimato e verso i bordi ci sono dati solo su un lato, quindi gli EC diventano molto ampi e le stime sono leggermente distorte. Ogni metodo soffre in questo modo in modo diverso a causa di pesi diversi, modi diversi di definire il vicinato dei dati, ecc.
Alexis
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.