Я подгонял некоторые данные временных рядов, используя общую аддитивную модель Пуассона, используя SAS PROC GAM
. Вообще говоря, у меня есть встроенная обобщенная процедура перекрестной проверки, которая генерирует, по крайней мере, достойную «начальную точку» для моего единственного сплайна, который является нелинейной функцией времени вместе с одним параметрическим членом (который я меня на самом деле интересует).
Пока что это работает довольно плавно, за исключением одного из моих наборов данных. В этом наборе данных 132 наблюдения, и GCV предлагает сплайн 128 степеней свободы. Это кажется ... неправильно. Очень неправильно. Что еще более важно, это также совсем не стабильно. Я попробовал второй подход, используя что-то вроде критерия «Изменение оценки», чтобы прекратить добавлять степени свободы, когда оценка параметрического члена перестает меняться, потому что зачем продолжать добавлять контроль, если ничто не отличается?
Проблема в том, что оценка совсем не стабильна. Я попробовал следующие степени свободы, и, как вы можете видеть, параметрический термин дико прыгает:
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
У меня нет никакой интуиции о том, что я должен использовать с точки зрения df для этого конкретного бита данных. Любые другие идеи о том, как выбрать DF? Должен ли я смотреть на значение сплайна?
Еще раз посмотрев между df = 10 и df = 15, похоже, что df = 12 - самое близкое к оценке, сгенерированной 128, и все еще находящаяся в диапазоне «разумных степеней свободы». Наряду с линейным, перехватывающим и однопараметрическим членами, это похоже на довольно насыщенную модель. Оправданно ли просто идти с 12?
Как второе обновление, изменение сглаживания с spline(t)
на loess(t)
приводит к гораздо более хорошим поведенческим оценкам df - я должен просто переключиться на сглаживание лесса?