Adaptacyjny GAM wygładza w mgcv

9

Książka Simona Wooda na temat GAM i związany z nią pakiet R mgcv są zarówno bardzo szczegółowe, jak i pouczające, jeśli chodzi o teorię GAM i dopasowanie modelu do rzeczywistych i symulowanych danych.

W przypadku wygładzania 1D naprawdę nie ma się czym martwić, z wyjątkiem decyzji o wdrożeniu cyklicznych vs. adaptacyjnych funkcji bazowych, które mogą dawać bardzo różne wyniki przewidywania w porównaniu do wygładzania sześciennych, cienkich płyt i P-splajn, ponieważ w adaptacyjna obudowa, wiele GAM jest dopasowanych do różnych regionów wzdłuż splajnu. O ile mogę powiedzieć, zasady cykliczne są powszechne w modelowaniu szeregów czasowych, podczas gdy gładkie adaptacyjne należy wziąć pod uwagę, gdy dane bardzo się różnią w odniesieniu do zmiennej odpowiedzi; jednak gładkich elementów adaptacyjnych należy używać „oszczędnie i ostrożnie”.

Od jakiegoś czasu badam gry GAM i biorąc pod uwagę moje pytanie badawcze, bardzo zmieniam zdanie, jeśli chodzi o łatwość wdrożenia. mgcv zawiera 17 różnych gładzi do wyboru (według moich obliczeń). Rozważyłem zarówno wygładzanie sześcienne, jak i P-splajn.

Moje pytanie brzmi teraz : kiedy należy rozważyć wygładzanie adaptacyjne w stosunku do nieadaptacyjnych odpowiedników, jeśli ostatecznym celem jest użycie dopasowanych GAM do celów prognozowania? Do moich celów trzymam się domyślnego kryterium gładkości GCV, nawet jeśli ma on tendencję do nied wygładzania.

Literatura rośnie w zakresie stosowanych ekologicznych gier hazardowych, ale jeszcze nie spotkałem się z badaniem, które wdraża płynność adaptacyjną.

Wszelkie porady są mile widziane.

kompbiostaty
źródło

Odpowiedzi:

20

Większość dodatkowych wygładzeń w przyborniku mgcv jest naprawdę dostępna dla specjalistycznych aplikacji - możesz je w dużej mierze zignorować w przypadku ogólnych GAM, szczególnie wygładzeń jednowymiarowych (nie potrzebujesz splajnu z efektem losowym, splajnu na kuli, losowego pola Markowa, lub gładszy film mydlany, jeśli masz na przykład dane jednoczynnikowe).

Jeśli możesz ponieść koszty instalacji, użyj splajnów regresji cienkiej płyty (TPRS).

Splajny te są optymalne w asymptotycznym sensie MSE, ale wymagają jednej funkcji bazowej na obserwację. To, co Simon robi w mgcv, to generowanie niskiej rangi wersji standardowego TPRS poprzez przyjęcie pełnej podstawy TPRS i poddanie go składowi eigend. Tworzy to nową podstawę, w której funkcja pierwszej kpodstawy w nowej przestrzeni zachowuje większość sygnału w podstawie oryginalnej, ale w wielu mniejszej liczbie funkcji podstawy. W ten sposób mgcv udaje się uzyskać TPRS, który wykorzystuje tylko określoną liczbę funkcji bazowych zamiast jednej na obserwację. Ta składowa eigend zachowuje wiele optymalności klasycznej podstawy TPRS, ale przy znacznym wysiłku obliczeniowym dla dużych zestawów danych.

Jeśli nie możesz znieść kosztów konfiguracji TPRS, użyj splajnów regresji sześciennej (CRS)

Jest to szybka podstawa do wygenerowania i dlatego nadaje się do problemów z dużą ilością danych. Jest jednak oparty na węzłach, więc do pewnego stopnia użytkownik musi teraz wybrać, gdzie te węzły powinny zostać umieszczone. W przypadku większości problemów niewiele można osiągnąć, wykraczając poza domyślne umieszczanie węzłów (na granicy danych i równomiernie rozmieszczonych między nimi), ale jeśli masz szczególnie nierównomierne próbkowanie w zakresie współzmiennej, możesz umieścić węzły na przykład równomiernie rozmieszczone próbki kwantyli współzmiennej.

Każda inna gładkość w mgcv jest wyjątkowa, jest stosowana tam, gdzie chcesz gładkości izotropowych lub dwóch lub więcej zmiennych towarzyszących, lub do wygładzania przestrzennego, lub które realizują skurcz, lub efekty losowe i losowe splajny, lub gdzie zmienne towarzyszące są cykliczne lub wahania różnią się w zależności od zakres współzmiennej. Ty tylko trzeba zaryzykować tak daleko do sprawnego przybornik jeśli masz problem, który wymaga specjalnego traktowania.

Kurczenie się

Istnieją wersje skurczowe zarówno TPRS, jak i CRS w mgcv . Wprowadzają one splajn, w którym idealnie gładka część podstawy podlega również karze gładkości. Pozwala to procesowi wyboru gładkości skurczyć gładki tył poza nawet funkcję liniową zasadniczo do zera. Dzięki temu kara za gładkość może również dokonywać wyboru funkcji.

Splajny Duchona, splajny P i splajny B.

Te splajny są dostępne dla aplikacji specjalistycznych, w których należy osobno określić kolejność podstawową i karę pieniężną. Splajny Duchona uogólniają TPRS. Odnoszę wrażenie, że splciny P zostały dodane do mgcv, aby umożliwić porównanie z innymi karami opartymi na prawdopodobieństwie, a ponieważ są to splajny używane przez Eilers & Marks w artykule z 1996 r., Który zainspirował wiele późniejszych prac w GAM. Splajny P są również przydatne jako podstawa dla innych splajnów, takich jak splajny z ograniczeniami kształtu i splajny adaptacyjne.

Splajny B, zaimplementowane w mgcv, zapewniają dużą elastyczność w ustalaniu kary i węzłów dla splajnów, co może pozwolić na pewną ekstrapolację poza zakres obserwowanych danych.

Cykliczne splajny

Jeśli zakres wartości dla zmiennej towarzyszącej można uznać za koło, na którym punkty końcowe zakresu powinny być faktycznie równoważne (miesiąc lub dzień roku, kąt ruchu, aspekt, kierunek wiatru), można nałożyć to ograniczenie na podstawy. Jeśli masz podobne zmienne, wówczas nałożenie tego ograniczenia ma sens.

Adaptacyjne wygładzacze

Zamiast pasować do oddzielnego GAM w sekcjach zmiennych towarzyszących, adaptacyjne splajny używają ważonej macierzy kar, w których wagi mogą zmieniać się płynnie w zakresie zmiennej współzmiennej. Na przykład dla splajnów TPRS i CRS zakładają one taki sam stopień gładkości w całym zakresie współzmiennej. Jeśli masz związek, w którym tak nie jest, możesz skończyć stosując więcej stopni swobody niż oczekiwano, aby umożliwić splajnowi dostosowanie się do części kręconych i niewibrujących. Klasycznym przykładem w literaturze wygładzającej jest

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()

wprowadź opis zdjęcia tutaj

Dane te wyraźnie pokazują okresy o różnej gładkości - skutecznie zero dla pierwszej części serii, partii podczas uderzenia, a następnie zmniejszają się.

jeśli dopasujemy standardowy GAM do tych danych,

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

uzyskujemy rozsądne dopasowanie, ale na początku i na końcu jest pewna dodatkowa kruchość timesi zastosowane dopasowanie ~ 14 stopni swobody

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

wprowadź opis zdjęcia tutaj

Aby przystosować się do zmienności ruchów, adaptacyjny splajn wykorzystuje ważoną macierz kar, przy czym ciężary zmieniają się płynnie wraz ze zmienną towarzyszącą. Tutaj zmieniam oryginalny model z tym samym wymiarem bazowym (k = 20), ale teraz mamy 5 parametrów gładkości (domyślnie jest m = 5) zamiast 1 oryginału.

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

Zauważ, że ten model wykorzystuje znacznie mniej stopni swobody (~ 8), a dopasowana gładkość jest znacznie mniej perigacyjna na końcach, a jednocześnie jest w stanie odpowiednio dopasować duże zmiany przyspieszenia głowy podczas uderzenia.

wprowadź opis zdjęcia tutaj

To, co tak naprawdę dzieje się tutaj, to to, że splajn ma podstawę dla gładkości i podstawę dla kary (aby umożliwić, aby wagi zmieniały się płynnie z współzmienną). Domyślnie oba te są P wypusty, ale można również używać typów bazowych CRS też ( bsmoże być tylko jeden 'ps', 'cr', 'cc', 'cs').

Jak zilustrowano tutaj, wybór, czy wybrać adaptację, czy nie, zależy od problemu; jeśli masz relację, dla której zakładasz, że forma funkcjonalna jest gładka, ale stopień gładkości zmienia się w zakresie współzmiennej w relacji, wówczas adaptacyjny splajn może mieć sens. Jeśli Twoja seria miała okresy szybkiej zmiany i okresy niskiej lub bardziej stopniowej zmiany, może to wskazywać, że może być potrzebna płynna adaptacja.

Gavin Simpson
źródło
1
Dzięki Gavin! To naprawdę doskonała odpowiedź, która moim zdaniem pomoże również innym z podobną troską.
compbiostats
Dla mojego problemu dopasowuję monotoniczną krzywą rosnącą, która ostatecznie staje się płaską do poziomej asymptoty. Na początku mojej krzywej dane rosną dość szybko, zanim ostatecznie zwolnią w kierunku asymptoty. W niektórych przypadkach konieczna jest ekstrapolacja (blisko / daleko) poza zakres obserwowanych danych. Moje modele są bardzo proste, ale zdaję sobie sprawę, że prognozy tutaj są w najlepszym razie spekulatywne.
compbiostats