Korzystam z modeli regresji LOESS w R i chcę porównać wyniki 12 różnych modeli o różnych wielkościach próbek. Potrafię opisać rzeczywiste modele bardziej szczegółowo, jeśli pomoże to w udzieleniu odpowiedzi na pytanie.
Oto przykładowe rozmiary:
Fastballs vs RHH 2008-09: 2002
Fastballs vs LHH 2008-09: 2209
Fastballs vs RHH 2010: 527
Fastballs vs LHH 2010: 449
Changeups vs RHH 2008-09: 365
Changeups vs LHH 2008-09: 824
Changeups vs RHH 2010: 201
Changeups vs LHH 2010: 330
Curveballs vs RHH 2008-09: 488
Curveballs vs LHH 2008-09: 483
Curveballs vs RHH 2010: 213
Curveballs vs LHH 2010: 162
Model regresji LOESS jest dopasowany do powierzchni, gdzie położenie X i położenie Y każdego boiska do baseballu służy do przewidywania sw, prawdopodobieństwa uderzenia wahadłowego. Chciałbym jednak porównać wszystkie 12 modeli, ale ustawienie tego samego zakresu (tj. Zakres = 0,5) przyniesie różne wyniki, ponieważ istnieje tak szeroki zakres wielkości próbek.
Moje podstawowe pytanie brzmi: w jaki sposób określasz rozpiętość swojego modelu? Wyższy zakres bardziej wygładza dopasowanie, podczas gdy niższy zakres przechwytuje więcej trendów, ale wprowadza szum statystyczny, jeśli jest za mało danych. Używam wyższej rozpiętości dla mniejszych próbek i niższej rozpiętości dla większych próbek.
Co powinienem zrobić? Jaka jest dobra zasada przy ustawianiu zakresu dla modeli regresji LOESS w R? Z góry dziękuję!
źródło
Odpowiedzi:
Często stosuje się walidację krzyżową, na przykład k- krotnie, jeśli celem jest znalezienie dopasowania z najniższym RMSEP. Podziel dane na k grup i pozostawiając po kolei każdą grupę, dopasuj model lessowy, używając k -1 grup danych i wybranej wartości parametru wygładzania, i użyj tego modelu do przewidzenia dla grupy pominiętej. Zapisz prognozowane wartości dla grupy pominiętej, a następnie powtarzaj ją, aż każda z k grup zostanie pominięta jeden raz. Korzystając z zestawu przewidywanych wartości, oblicz RMSEP. Następnie powtórz całość dla każdej wartości parametru wygładzania, który chcesz dostroić. Wybierz ten parametr wygładzania, który daje najniższy RMSEP w CV.
Jest to, jak widać, dość ciężkie obliczeniowo. Byłbym zaskoczony, gdyby nie było uogólnionej alternatywy weryfikacji krzyżowej (GCV) alternatywnej do prawdziwego CV, której można by używać z LOESS - Hastie i wsp. (Sekcja 6.2) wskazują, że jest to dość proste do zrobienia i jest omówione w jednym z ich ćwiczeń .
Proponuję przeczytać sekcje 6.1.1, 6.1.2 i 6.2, a także sekcje dotyczące regulacji regularności wygładzania splajnów (jak również tutaj treść) w rozdziale 5 Hastie i in. (2009) Elementy uczenia statystycznego: eksploracja danych, wnioskowanie i przewidywanie . 2. edycja. Skoczek. Plik PDF można pobrać bezpłatnie.
źródło
Sugeruję sprawdzenie uogólnionych modeli addytywnych (GAM, patrz pakiet mgcv w R). Sam się o nich uczę, ale zdają się automatycznie ustalać, jak bardzo „perwersyjność” jest uzasadniona danymi. Widzę również, że masz do czynienia z danymi dwumianowymi (strike vs not strike), więc pamiętaj o analizie surowych danych (tj. Nie agreguj do proporcji, użyj surowych danych pitch-by-pitch) i użyj family = „dwumianowy” (przy założeniu, że będziesz używać R). Jeśli masz informacje na temat tego, co poszczególne miotacze i hittery wnoszą do danych, prawdopodobnie możesz zwiększyć swoją moc, wykonując uogólniony model mieszanego dodatku (GAMM, patrz pakiet gamm4 w R) i określając miotacz i hittera jako efekty losowe (i ponownie , ustawienie rodziny = „dwumianowy”). Wreszcie, prawdopodobnie chcesz pozwolić na interakcję między płynami X i Y, ale sam nigdy tego nie próbowałem, więc nie wiem, jak sobie z tym poradzić. Model gamm4 bez interakcji X * Y wyglądałby następująco:
Jeśli się nad tym zastanowić, prawdopodobnie chcesz, aby wygładzenia zmieniały się w zależności od rodzaju wysokości i sposobu trzymania ciasta. To sprawia, że problem jest trudniejszy, ponieważ nie dowiedziałem się jeszcze, w jaki sposób pozwolić wygładzeniom zmieniać się w zależności od wielu zmiennych w sposób, który następnie generuje sensowne testy analityczne ( patrz moje zapytania do listy modeli mieszanych R-SIG ). Możesz spróbować:
Ale to nie da sensownych testów wygładzania. Próbując rozwiązać ten problem sam, użyłem resamplingu bootstrap, gdzie na każdej iteracji uzyskuję prognozy modelu dla pełnej przestrzeni danych, a następnie obliczam 95% CI bootstap dla każdego punktu w przestrzeni i wszelkich efektów, które chcę obliczyć.
źródło
W przypadku regresji lessowej, moim zdaniem jako statystykę, możesz wybrać zakres w oparciu o interpretację wizualną (wykres z licznymi wartościami rozpiętości może wybrać ten z najmniejszym wygładzeniem, który wydaje się odpowiedni) lub możesz użyć weryfikacji krzyżowej (CV) lub uogólniona walidacja krzyżowa (GCV). Poniżej znajduje się kod, którego użyłem do GCV regresji lessowej na podstawie kodu z doskonałej książki Takezawy, Wprowadzenie do regresji nieparametrycznej (z p219).
i na podstawie moich danych wykonałem następujące czynności:
Niestety, kod jest raczej niechlujny, to był jeden z moich pierwszych przypadków używania R, ale powinien dać ci wyobrażenie o tym, jak zrobić GSV dla regresji lessowej, aby znaleźć najlepszy zakres do użycia w bardziej obiektywny sposób niż zwykła kontrola wizualna. Na powyższym wykresie interesuje Cię rozpiętość, która minimalizuje funkcję (najniższa na narysowanej „krzywej”).
źródło
Jeśli przełączysz się na uogólniony model addytywny, możesz użyć
gam()
funkcji z pakietu mgcv , w którym autor zapewnia nas :(
k
tutaj jest parametr stopni swobody dla wygładzacza, który jest podobny do parametru gładkości lessa)źródło
Możesz napisać od początku własną pętlę weryfikacji krzyżowej, która korzysta z
loess()
funkcji zstats
pakietu.Skonfiguruj zabawkową ramkę danych.
Ustaw przydatne zmienne do obsługi pętli weryfikacji krzyżowej.
Uruchom zagnieżdżoną
for
pętlę iterującą po każdej możliwej rozpiętościspan.seq
i po każdym zagięciufolds
.Przedstaw swoje wyniki.
źródło
Użyj pakietu locfit. Jest to nieco zmodyfikowana wersja lessa, ale o wiele szybsza. Posiada również wbudowaną funkcję obliczania gcv http://www.statistik.lmu.de/~leiten/Lehre/Material/GLM_0708/Tutorium/locfit.pdf
źródło
FANCOVA pakiet zawiera zautomatyzowany sposób obliczyć zakres idealne pomocą GCV lub AIC:
źródło