Ich habe einige Zeitreihendaten mit einem allgemeinen additiven Poisson-Modell unter Verwendung von SAS angepasst PROC GAM
. Im Allgemeinen habe ich durch das integrierte verallgemeinerte Kreuzvalidierungsverfahren mindestens einen anständigen "Startpunkt" für meinen einzelnen Spline generiert, der eine nichtlineare Funktion der Zeit zusammen mit einem einzelnen parametrischen Term (dem I) ist bin eigentlich interessiert an).
Bisher hat es mit Ausnahme eines meiner Datensätze ziemlich gut funktioniert. Dieser Datensatz enthält 132 Beobachtungen, und GCV schlägt einen Spline von 128 Freiheitsgraden vor. Das scheint ... falsch. Sehr falsch. Noch wichtiger ist, dass es auch überhaupt nicht stabil ist. Ich habe einen zweiten Ansatz versucht und dabei so etwas wie ein "Change in Estimation" -Kriterium verwendet, um das Hinzufügen von Freiheitsgraden zu beenden, wenn sich die Schätzung des parametrischen Terms nicht mehr ändert. Warum sollte ich weiterhin die Kontrolle hinzufügen, wenn nichts anders ist?
Das Problem ist, dass die Schätzung überhaupt nicht stabil ist. Ich habe die folgenden Freiheitsgrade ausprobiert, und wie Sie sehen können, springt der parametrische Begriff wild herum:
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
Ich habe überhaupt keine Ahnung, was ich in Bezug auf df für dieses bestimmte Datenbit verwenden sollte. Irgendwelche anderen Ideen, wie man einen df wählt? Sollte ich mir die Bedeutung des Splines ansehen?
Wenn Sie mehr zwischen df = 10 und df = 15 suchen, sieht es so aus, als ob df = 12 der von 128 generierten Schätzung am nächsten kommt und sich immer noch im Bereich "angemessene Freiheitsgrade" befindet. Zusammen mit dem linearen Term, dem Achsenabschnitt und dem einzelnen parametrischen Term fühlt sich das wie ein ziemlich stark gesättigtes Modell an. Ist es gerechtfertigt, nur mit 12 zu gehen?
Als zweites Update führt das Ändern der Glättung von spline(t)
auf loess(t)
zu viel besser verhaltenen df-Schätzungen - sollte ich einfach auf Lössglättung umsteigen?