Vergleichen Sie Glättungssplines mit Löss zum Glätten?


25

Ich möchte die Vor- und Nachteile der Verwendung von Löss- oder Glättungssplines zum Glätten einiger Kurven besser verstehen.

Eine andere Variante meiner Frage ist, ob es eine Möglichkeit gibt, einen Glättungsspline so zu konstruieren, dass die gleichen Ergebnisse wie bei der Verwendung von Löss erzielt werden.

Jede Referenz oder Einsicht ist willkommen.


Tal, Der folgende gut zitierte Artikel befasst sich mit vielen nicht-parametrischen Regressionsansätzen von Buja, A., Hastie, T. und Tibshirani, R. (1989). Lineare Glätter und additive Modelle . The Annals of Statistics , 17 (2), 453–510, am besten.
Alexis

Antworten:


16

Hier ist ein R-Code / Beispiel, mit dem Sie die Passungen für eine Löß-Passung und eine Spline-Passung vergleichen können:

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 )

Sie können es mit Ihren Daten versuchen und den Code ändern, um andere Typen oder Optionen auszuprobieren. Sie können sich auch die loess.demoFunktion im TeachingDemos-Paket ansehen, um besser zu verstehen, was der Löß-Algorithmus tut. Beachten Sie, dass das, was Sie von Löß sehen, häufig eine Kombination von Löß mit einer zweiten Interpolationsglättung ist (manchmal selbst ein Spline). Die loess.demoFunktion zeigt tatsächlich sowohl die geglättete als auch die rohe Lößanpassung an.

Theoretisch können Sie immer einen Spline finden, der einer anderen stetigen Funktion so nahe kommt, wie Sie möchten, aber es ist unwahrscheinlich, dass es eine einfache Auswahl von Knoten gibt, die zuverlässig eine enge Annäherung an eine Lößanpassung für einen beliebigen Datensatz ergibt.


Hallo Greg: 1) Danke für die Antwort. 2) Ich liebe deine loess.demo Funktion ...
Tal Galili

29

Die tatsächlichen Ergebnisse eines glättenden Splines oder Lösses werden ziemlich ähnlich sein. Sie sehen an den Kanten der Stütze möglicherweise etwas anders aus, aber solange Sie sicherstellen, dass es sich um einen "natürlichen" glättenden Spline handelt, sehen sie sich sehr ähnlich.

Wenn Sie nur einen verwenden, um einem Streudiagramm einen "weicheren" Effekt hinzuzufügen, gibt es keinen wirklichen Grund, einen anderen vorzuziehen. Wenn Sie stattdessen Vorhersagen für neue Daten treffen möchten, ist es im Allgemeinen viel einfacher, einen Glättungsspline zu verwenden. Dies liegt daran, dass der Glättungsspline eine direkte Basiserweiterung der ursprünglichen Daten ist. Wenn Sie 100 Knoten verwendet haben, bedeutet dies, dass Sie ~ 100 neue Variablen aus der ursprünglichen Variablen erstellt haben. Löss schätzt stattdessen nur die Antwort auf alle erlebten Werte (oder eine geschichtete Teilmenge für große Datenmengen).

Im Allgemeinen gibt es etablierte Algorithmen, um den Abzugswert für das Glätten von Splines zu optimieren (mgcv in R macht dies wahrscheinlich am besten). Löss ist nicht ganz so eindeutig, aber Sie werden im Allgemeinen immer noch eine vernünftige Ausgabe von jeder Implementierung erhalten. MGCV vermittelt Ihnen auch ein Gefühl für äquivalente Freiheitsgrade, damit Sie ein Gefühl dafür bekommen, wie "nicht linear" Ihre Daten sind.

Ich stelle fest, dass bei der Modellierung sehr großer Datenmengen ein einfacherer natürlicher Spline oft ähnliche Ergebnisse für minimale Berechnungen liefert wie ein glättender Spline oder ein Löss.


+1, nette Antwort! Ich mag die klare theoretische Darstellung.
gung - Wiedereinsetzung von Monica

Warum unterscheiden sie sich jedoch in der Nähe der Stützkanten?
imu96

1
x
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.