Multivariate Adaptive Regression Splines (MARSplines) (Wielozmienna regresja adaptacyjna z użyciem funkcji sklejanych) jest implementacją uogólnienia techniki wprowadzonej do szerokiego użytku przez Friedman'a (1991), a służącej do rozwiązywania zarówno problemów regresyjnych (patrz, regresja wieloraka ) jak i klasyfikacyjnych, w których celem jest znalezienie wartości zmiennych wyjściowych (zależnych) na podstawie zmiennych wejściowych (predykcyjnych). Jest wiele metod służących do dopasowania modelu do zmiennych ilościowych, takie jak regresja liniowa [np. Regresja wieloraka , Ogólny model liniowy (GLM) ], regresja nieliniowa (Uogólnione modele liniowe i nieliniowe ), drzewa regresyjne (patrz Drzewa klasyfikacyjne i regresyjne ), CHAID , Sieci neuronowe , itd. (zob. także Hastie, Tishirani, i Friedman, 2001,).
Multivariate Adaptive Regression Splines (MARSplines) jest procedurą nieparametryczną, nie wymagającą założeń na temat funkcyjnej zależności między zmiennymi zależnymi, a niezależnymi. MARSplines modeluje tę zależność za pomocą zbioru współczynników i funkcji bazowych, "wyprowadzanych" wyłącznie z danych. Zastosowana jest tu strategia, do której określenia można użyć powiedzenia "dziel i rządź". Otóż, przestrzeń wejściowa dzielona jest na obszary, w których określane są osobne funkcje regresyjne lub klasyfikacyjne. Takie podejście czyni MARSplines szczególnie użytecznym przy większej liczbie wymiarów na wejściu (więcej niż dwie zmienne), kiedy, w przypadku innych technik zagrażać zaczyna problem wymiarowości.
Technika MARSplines szczególnie znana jest na polu data miningu , ze względu na brak konieczności zakładania czegokolwiek o typie zależności (liniowa, logistyczna, ...) pomiędzy zmiennymi zależnymi, a niezależnymi. Bardzo dobre modele (dające dokładne predykcje) otrzymamy właśnie w sytuacjach, gdzie zależności są bardzo skomplikowane, niemonotoniczne i trudne do jakiegokolwiek parametrycznego modelowania. Więcej o tej technice, a także o porównaniach z innymi metodami regresji nieliniowej (lub drzew regresyjnych), patrz Hastie, Tibshirani i Friedman (2001).
W przypadku regresji określamy zależność między zbiorem ilościowych zmiennych zależnych (wyjściowych, odpowiedzi), a zbiorem zmiennych niezależnych (wejściowych, predykcyjnych). Tak więc, na bazie znajomości wartości zmiennych wejściowych chcemy poznać wartość zmiennej wyjściowej. Na przykład, możemy interesować się liczbą drogowych wypadków samochodowych, których przyczyną jest (1) zła pogoda i (2) pijany kierowca. Zależność mogłaby wyglądać następująco:
Liczba_wypadków = Stała + 0,5*Zła_pogoda + 2,0*Poziom_alkoholu
Zmienna Liczba_wypadków jest zmienną zależną, uzależnioną, jak sądzimy (między innymi) od zmiennych Zła_pogoda i Poziom_alkoholu. Zmienne niezależne mnożone są w równaniu przez liczby 0,5 i 2,0, będące współczynnikami regresji. Im większy współczynnik, tym silniejszy wpływ zmiennej niezależnej na zmienną zależną. Jeżeli obie zmienne predykcyjne w tym (fikcyjnym) przykładzie mierzone byłyby na tej samej skali (mogłyby, na przykład, być unormowane do zerowej średniej i jednostkowego odchylenia standardowego), to z równania widać, że Poziom_alkoholu ma czterokrotnie większy wpływ na wypadki niż Zła_pogoda. Jeżeli natomiast Poziom_alkoholu mierzony jest, po prostu w promilach, a Zła_pogoda, na przykład w metrach widoczności, to współczynników regresji nie możemy porównywać ze sobą.
Dodatkowe szczegóły na temat podobnego typu modeli statystycznych znaleźć można w rozdziale Regresja wieloraka lub Ogólne modele liniowe (GLM) , jak również Ogólne modele regresji (GRM) . Ogólnie, w socjologii, w naukach przyrodniczych, procedury regresyjne są stosowane w bardzo szerokim zakresie. Regresja pozwala badaczowi poszukiwać (i znajdować) odpowiedzi na pytanie o najlepszy predyktor jakiejś cechy. Pedagog, na przykład, może poszukiwać najlepszego predyktora sukcesów studenta na uczelni. Psycholog pytał będzie, która z cech osobowości pozwala najlepiej ocenić socjalne przystosowanie osoby. Socjolog zaś może się interesować, które z wielu wskaźników socjalnych pozwolą ocenić jak nowa grupa imigrantów zaadaptuje się w nowych warunkach.
Multivariate Adaptive Regression Splines
Przytoczony wcześniej przykład z wypadkami drogowymi był typowym wynikiem zastosowania regresji liniowej, gdzie co do zmiennej odpowiedzi, przypuszcza się, że zależy w sposób liniowy od zmiennych predykcyjnych. Regresja liniowa należy do metod parametrycznych, w których zakłada się konkretną postać funkcyjną zależności (np. liniową) i tylko liczbowe parametry funkcji podlegają ocenie na podstawie danych. W metodach nieparametrycznych (patrz, np. korelacje nieparametryczne ) natomiast, nie czyni się żadnych założeń a priori co do zależności pomiędzy zmiennymi. Budowa modelu zależności w pełni "sterowana" jest przez dane.
Multivariate Adaptive Regression Splines (MARSplines) jest procedurą nieparametryczną, która nie potrzebuje żadnych założeń dotyczących funkcjonalnej zależności zmiennych zależnych od zmiennych niezależnych. W MARSplines, zależność budowana jest ze współczynników i tak zwanych funkcji bazowych, w pełni determinowanych przez dane. Ogólny mechanizm działania MARSplines wyobrażać można sobie jako wielokrotną, odcinkową regresję liniową (patrz, estymacja nieliniowa ). Granice odcinków (wyznaczone na podstawie danych) określają "zakresy stosowalności" poszczególnych równań liniowych.
Funkcje bazowe. MARSplines używa dwustronnych, obciętych funkcji liniowych (widocznych niżej), jako bazowych funkcji dla liniowej/nieliniowej aproksymacji zależności pomiędzy zmiennymi predykcyjnymi i zmiennymi odpowiedzi.

Na powyższym rysunku pokazany jest prosty przykład dwóch funkcji bazowych (t-x)+ i (x-t)+ (wg Hastie, i inni 2001, Rys. 9.9). Parametr t, to węzeł funkcji bazowej (określający "odcinki" odcinkowej regresji liniowej); położenie węzłów (wartość parametru t ) wynika z danych. Znaczki "+" za wyrażeniami (t-x) i (x-t) oznaczają, po prostu, że bierzemy tylko dodatnią część funkcji liniowej. Zamiast ujemnych wartości przyjmuje się zero, co widać na wykresie.
Model MARSplines. Funkcje bazowe wraz z parametrami modelu (znalezionymi za pomocą metody najmniejszych kwadratów ) pozwalają dokonać predykcji wyjścia na podstawie zmiennych wejściowych. Ogólne równanie MARSplines (Hastie i inni, 2001, równanie 9.19) dane jest przez:
![]()
gdzie sumowanie przebiega przez wszystkie M funkcyjnych składników modelu (więcej szczegółów o modelu, patrz Uwagi techniczne
). Tak więc, y obliczane jest jako funkcja zmiennych predykcyjnych X (i ich interakcji). Elementami tej funkcji są, rzędna początkowa (
) i ważona (wagami
) suma jednej lub wielu funkcji bazowych
, takich jak pokazane na rysunku. Na model ten możemy patrzeć jak na ważoną sumę funkcji bazowych, wybranych ze zbioru dużej liczby takich funkcji, pokrywających wszystkie wartości, każdego z predyktorów (w zbiorze tym mamy funkcję bazową i parametr t dla każdej, poszczególnej wartości, każdego predyktora). Algorytm MARSplines przeszukuje przestrzeń wszystkich wartości wejściowych i predykcyjnych (położeń węzłów t) jak i interakcji między zmiennymi. Do modelu dodawane są wtedy kolejne funkcje bazowe (wybierane ze zbioru wszystkich dopuszczalnych funkcji), w taki sposób, by maksymalizować ogólny poziom dopasowania (wg minimum sumy kwadratów). Wynikiem tej operacji jest znalezienie najważniejszych zmiennych niezależnych, oraz najważniejszych ich interakcji. Szczegóły algorytmu, patrz Uwagi techniczne
lub (Hastie i inni 2001).
Predyktory jakościowe. MARSplines jest dostosowany do zadań, w których występują zarówno ilościowe jak i jakościowe zmienne predykcyjne. Jednakże, algorytm podstawowy MARSplines zakłada, że predyktory są ilościowe i tak na przykład, obliczonych węzłów program zazwyczaj nie powiąże z kodami klas zmiennych jakościowych. Szczegółowe informacje na temat zmiennych jakościowych w MARSplines zob. Friedman (1993).
Wiele zmiennych zależnych (wyjściowych). Algorytm MARSplines może być stosowany do przypadku wielu zmiennych wyjściowych. W takim przypadku, przy wielowymiarowym wyjściu, algorytm określa wspólny zbiór funkcji bazowych dla predyktorów, lecz osobne zbiory współczynników, dla każdej zmiennej wyjściowej. Takie podejście do wielowymiarowej zmiennej wyjściowej przypomina pewne algorytmy sieci neuronowych , gdzie wielokrotne wyjście obliczane jest na bazie wspólnych neuronów; w MARSplines, wielokrotne wyjście obliczane jest ze wspólnych funkcji bazowych, ze specyficznymi (dla każdej zmiennej wyjściowej) współczynnikami.
MARSplines i klasyfikacja. Ponieważ MARSplines radzi sobie z wielokrotnymi zmiennymi wyjściowymi, łatwo jest również zastosować go do zagadnień klasyfikacyjnych. W takiej sytuacji, MARSplines najpierw koduje jakościową zmienną wyjściową, przetwarzając ją na wielowymiarową zmienną wskaźnikową (1 = przypadek należy do klasy k, 0 = przypadek nie należy do klasy k), następnie dopasowuje model i oblicza ciągłą predykcję, a w ostatnim etapie przypisuje przypadkom klasy według największych wartości predykcji (opis procedury, patrz, Hastie, Tibshirani i Freedman 2001). Zauważmy, iż takie zastosowanie daje heurystyczną klasyfikację, która może bardzo dobrze działać w praktyce, ale prawdopodobieństwa klasyfikacyjne nie są tworzone na podstawie modelu statystycznego.
Wybór modelu i jego redukowanieGeneralnie, modele nieparametryczne dobrze dostosowują się do danych, są bardzo elastyczne, co może prowadzić do niekorzystnego zjawiska nadmiernego dopasowania (przeuczenia, overfitting), o ile się temu nie przeciwdziała. Modele takie mogą względnie łatwo osiągnąć zerowy błąd na danych uczących (jeżeli dopuścimy dostatecznie dużą liczbę parametrów), lecz będą źle działały dla nowych danych (gdyż w modelu nie będzie dobrze zgeneralizowana wiedza pobrana z danych uczących). MARSplines, podobnie jak większość tego typu metod, ma tendencję do nadmiernego dopasowywania się do danych. Do zwalczania problemu, w MARSplines korzysta się z techniki redukcji (pruning), analogicznej do przycinania (w drzewach klasyfikacyjnych), ograniczającej złożoność modelu przez redukowanie liczby funkcji bazowych.
MARSplines jako metoda doboru cech (predyktorów). Wybieranie najważniejszych i redukowanie (usuwanie) najmniej ważnych funkcji bazowych, jest operacją, której wynik można wykorzystać do wybierania istotnych predyktorów. Algorytm MARSplines wybierze tylko te funkcje bazowe (czyli te zmienne predykcyjne), które dają "mierzalny" wkład do predykcji (bliższe szczegóły, patrz Uwagi techniczne ).
ZastosowaniaMARSplines zyskał popularność dzięki znajdowaniu modeli predykcyjnych w "trudnych" problemach data mining , tzn. tam, gdzie zmienna zależna nie zależy od predyktorów w prosty, albo przynajmniej monotoniczny sposób. W takich wypadkach, alternatywnie można rozważać modele CHAID , Drzewa klasyfikacyjne i regresyjne lub którąkolwiek z wielu architektur sieci neuronowych . Ze względu na szczególny sposób dobierania predyktorów dla modelu, stosowany w MARSplines (funkcje bazowe ), algorytm ten działa z reguły "dobrze" tam, gdzie dają się zastosować drzewa regresyjne, tzn. gdzie dobrze funkcjonuje hierarchiczny, sukcesywny podział predyktorów. Bo też, zamiast traktować tę technikę jako uogólnienie regresji wielorakiej (jak to było we Wprowadzeniu), można patrzeć na MARSplines jak na uogólnienie drzew regresyjnych, w których "twarde" podziały binarne zostały zastąpione bardziej miękkimi funkcjami bazowymi. Bliższe szczegóły znajdziemy w literaturze: Hastie, Tibshirani i Friedman (2001).
| Indeks |
Algorytm MARSplines (Multivariate Adaptive Regression Splines) to dwuetapowa procedura stosowana sukcesywnie, aż do otrzymania żądanego modelu. W pierwszym etapie budujemy model, tzn. zwiększamy jego złożoność (wielkość) dodając kolejne funkcje bazowe , aż do osiągnięcia maksymalnego (określonego przez użytkownika) stopnia złożoności. Następnie uruchamiana jest procedura wsteczna, usuwania z modelu najmniej znaczących funkcji bazowych, czyli takich, których usunięcie najmniej pogarsza dopasowanie modelu (w sensie najmniejszych kwadratów). Implementacja algorytmu przebiega więc w następujących krokach:
Uruchomienie algorytmu z najprostszym modelem, z funkcją bazową o stałej wartości.
Przeszukiwanie, dla każdej zmiennej i możliwych węzłów, przestrzeni funkcji bazowych i dodawanie do modelu tych funkcji, które maksymalizują pewną miarę dobroci dopasowania modelu (minimalizują błąd predykcji).
Krok 2 powtarzany jest aż do osiągnięcia wstępnie założonego, maksymalnego stopnia złożoności modelu.
Na końcu "odczyszcza" się model z funkcji bazowych, które dają za mały wkład do poprawy dobroci modelu (w sensie najmniejszych kwadratów ).
| Indeks |
Algorytm MARSplines (Multivariate Adaptive Regression Splines) buduje modele z dwustronnych, obciętych funkcji predyktorów (x), o następującej postaci:
![]()
Są to funkcje bazowe służące, poprzez liniową/nieliniową aproksymację, do modelowania rzeczywistej zależności f(x).
Model MARSplines, dla zmiennych zależnych (wyjściowych) y, mający M wyrażeń, można zapisać następującym równaniem:
![]()
gdzie sumowanie przebiega przez wszystkie M składników modelu, a bo i bm to parametry modelu (podobnie jak węzły t każdej funkcji bazowej , wyznaczane z danych). Funkcja H określona jest następująco:
![]()
gdzie xv(k,m) jest predyktorem k w m-tym iloczynie. Dla rzędu interakcji K=1 mamy model addytywny, dla rzędu K=2 model jest parami interakcyjny.
W krokowej procedurze postępującej, do modelu dodawane są kolejne funkcje bazowe, do zadanej, maksymalnej liczby, która powinna być dostatecznie duża (co najmniej dwa razy większa od optymalnej, pod względem minimum kwadratów).
Po zastosowaniu algorytmu postępującego wyboru funkcji bazowych, uruchamia się procedurę wsteczną, w której z modelu wyrzuca się kolejno te funkcje bazowe, które dają najmniejsze polepszenie dopasowania modelu (w sensie najmniejszych kwadratów). Obliczana jest funkcja błędu najmniejszych kwadratów (odwrotność dopasowania). Miarą dopasowania jest błąd tzw. uogólnionego sprawdzianu krzyżowego (Generalized Cross Validation), który uwzględnia nie tylko błąd resztowy, lecz również złożoność modelu. Dany jest on przez:

gdzie
![]()
natomiast N jest liczbą przypadków w danych, d jest efektywną liczbą stopni swobody, równą liczbie niezależnych funkcji bazowych. Parametr c steruje wielkością kary za dodawanie funkcji bazowych. Z doświadczenia wynika, że najlepsze C otrzymuje się przy 2 < d < 3 (patrz Hastie i inni, 2001).
| Indeks |
