Venho ajustando alguns dados de séries temporais usando um modelo aditivo geral de Poisson usando SAS PROC GAM
. De um modo geral, estou fazendo com que seu procedimento de validação cruzada generalizada interno gere pelo menos um "ponto de partida" decente para o meu spline único, que é uma função não linear do tempo junto com um único termo paramétrico (o que eu estou realmente interessado em).
Até o momento, funcionou bastante, com exceção de um dos meus conjuntos de dados. Existem 132 observações nesse conjunto de dados e o GCV sugere uma spline de 128 graus de liberdade. Isso parece ... errado. Muito errado. Mais importante, também não é de todo estável. Tentei uma segunda abordagem, usando algo como um critério "Mudança na estimativa" para parar de adicionar graus de liberdade quando a estimativa do termo paramétrico para de mudar porque por que continuar a adicionar controle se nada é diferente?
O problema é que a estimativa não é de todo estável. Tentei os seguintes graus de liberdade e, como você pode ver, o termo paramétrico ricocheteia descontroladamente:
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
Não tenho intuição alguma sobre o que devo usar em termos de df para esse bit específico de dados. Alguma outra idéia de como escolher um df? Devo estar olhando para o significado do spline?
Observando um pouco mais entre df = 10 e df = 15, parece que df = 12 é o mais próximo que você pode chegar da estimativa gerada por 128 e ainda está na faixa de "graus razoáveis de liberdade". Junto com o termo linear, o intercepto e o termo paramétrico único, parece um modelo bastante saturado. É justificável apenas ir com 12?
Como uma segunda atualização, alterar a suavização de spline(t)
para loess(t)
está resultando em estimativas de df muito mais bem comportadas - devo mudar apenas para suavizar a perda?