Dopasowuję niektóre dane szeregów czasowych za pomocą ogólnego modelu addytywnego Poissona za pomocą SAS PROC GAM
. Mówiąc ogólnie, mam wbudowaną uogólnioną procedurę walidacji krzyżowej, która generuje co najmniej przyzwoity „punkt początkowy” dla mojego pojedynczego splajnu, który jest nieliniową funkcją czasu wraz z jednym terminem parametrycznym (tym, który I tak naprawdę jestem zainteresowany).
Do tej pory działało dość płynnie, z wyjątkiem jednego z moich zestawów danych. W tym zbiorze danych jest 132 obserwacji, a GCV sugeruje splajn 128 stopni swobody. To wydaje się ... złe. Bardzo źle. Co ważniejsze, nie jest wcale stabilny. Wypróbowałem drugie podejście, używając czegoś w rodzaju kryteriów „zmiany szacunku”, aby przestać dodawać stopnie swobody, gdy szacunek parametru parametrycznego przestaje się zmieniać, ponieważ dlaczego nadal dodawać kontrolę, jeśli nic się nie różni?
Problem polega na tym, że szacunki wcale nie są stabilne. Wypróbowałem następujące stopnie swobody i, jak widać, parametryczny termin odbija się dziko:
DF: Parametric Estimate:
1 -0.76903
2 -0.56308
3 -0.47103
4 -0.43631
5 -0.33108
6 -0.1495
7 0.0743
8 0.33459
9 0.62413
10 0.92161
15 1.88763
20 1.98869
30 2.5223
40-60 had convergence issues
70 7.5497
80 7.22267
90 6.71618
100 5.83808
110 4.61436
128 1.32347
Nie mam żadnej intuicji na temat tego, czego powinienem użyć w odniesieniu do df dla tego konkretnego bitu danych. Jakieś inne pomysły na wybór df? Czy powinienem patrzeć na znaczenie splajnu?
Po dokładniejszym spojrzeniu między df = 10 i df = 15, wygląda na to, że df = 12 jest najbliższym oszacowaniem wygenerowanym przez 128 i nadal znajduje się w zakresie „rozsądnych stopni swobody”. Wraz z terminem liniowym, punktem przecięcia i pojedynczym terminem parametrycznym, wydaje się, że jest to dość mocno nasycony model. Czy uzasadnione jest użycie 12?
Jako druga aktualizacja, zmiana wygładzania z spline(t)
na loess(t)
powoduje znacznie lepiej zachowujące się szacunki df - czy powinienem po prostu przejść na wygładzanie lessów?