J'ai ajusté certaines données de séries chronologiques à l'aide d'un modèle additif général de Poisson à l'aide de SAS PROC GAM
. De manière générale, j'ai vu sa procédure de validation croisée généralisée intégrée générer au moins un «point de départ» décent pour ma spline unique, qui est une fonction non linéaire du temps avec un terme paramétrique unique (celui que je suis réellement intéressé par).
Jusqu'à présent, cela a fonctionné plutôt nageant, à l'exception de l'un de mes ensembles de données. Il y a 132 observations dans cet ensemble de données, et GCV suggère une spline de 128 degrés de liberté. Cela semble ... faux. Très mal. Plus important encore, ce n'est pas du tout stable. J'ai essayé une deuxième approche, en utilisant quelque chose comme un critère de «changement d'estimation» pour cesser d'ajouter des degrés de liberté lorsque l'estimation du terme paramétrique cesse de changer, car pourquoi continuer à ajouter du contrôle si rien n'est différent?
Le problème est que l'estimation n'est pas du tout stable. J'ai essayé les degrés de liberté suivants, et comme vous pouvez le voir, le terme paramétrique rebondit énormément:
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
Je n'ai aucune intuition sur ce que je devrais utiliser en termes de df pour ce bit de données particulier. D'autres idées sur la façon de choisir un df? Dois-je regarder la signification de la spline?
En faisant un peu plus de recherche entre df = 10 et df = 15, il semble que df = 12 soit le plus proche de l'estimation générée par 128 et se situe toujours dans la plage des "degrés de liberté raisonnables". Avec le terme linéaire, l'ordonnée à l'origine et le terme paramétrique unique, cela ressemble à un modèle assez fortement saturé. Est-il justifié de simplement choisir 12?
En tant que deuxième mise à jour, changer le lissage de spline(t)
à loess(t)
se traduit par des estimations df beaucoup plus correctes - dois-je simplement passer au lissage de Loess?