Próbuję dowiedzieć się, jak kontrolować parametry wygładzania w modelu mgcv: gam.
Mam zmienną dwumianową, którą próbuję zamodelować jako przede wszystkim funkcję współrzędnych xiy na ustalonej siatce plus kilka innych zmiennych o mniejszych wpływach. W przeszłości zbudowałem dość dobry model regresji lokalnej, używając locfit pakietu i tylko wartości (x, y).
Chciałbym jednak spróbować włączyć inne zmienne do modelu i wyglądało na to, że uogólnione modele addytywne (GAM) były dobrą możliwością. Po przyjrzeniu się pakietom gam i mgcv, z których oba mają funkcję GAM, zdecydowałem się na ten drugi, ponieważ wydaje się, że poleca go szereg komentarzy w wątkach na liście mailingowej. Jednym minusem jest to, że wydaje się, że nie obsługuje ono łagodniejszej regresji lokalnej, takiej jak less lub locfit.
Na początek chciałem po prostu spróbować zreplikować w przybliżeniu model locfit, używając tylko współrzędnych (x, y). Próbowałem z gładkimi produktami zarówno zwykłymi, jak i tensorowymi:
my.gam.te <- gam(z ~ te(x, y), family=binomial(logit), data=my.data, scale = -1)
my.gam.s <- gam(z ~ s(x, y), family=binomial(logit), data=my.data, scale = -1)
Jednak wykreślając prognozy z modelu, są one znacznie bardziej wygładzone w porównaniu do modelu locfit. Próbowałem więc dostroić model, aby nie przesadził. Próbowałem dostosować parametry sp i k, ale nie jest dla mnie jasne, jak wpływają na wygładzanie. W locfit parametr nn kontroluje rozpiętość używanego sąsiedztwa, przy czym mniejsze wartości pozwalają na mniej wygładzanie i więcej „poruszania się”, co pomaga uchwycić niektóre obszary na siatce, w których prawdopodobieństwo wyników dwumianowych zmienia się gwałtownie. Jak powinienem skonfigurować model gry, aby działał podobnie?