我有一个非常简单的时间序列数据集,由单个变量(“AVERAGE”)的年平均值组成。我希望研究时间序列的“趋势”分量的变化率(一阶导数)和加速度(二阶导数)以及相关的标准误差。我使用MGCV的GAM和PREDICT函数得到了“趋势”,简单如下:
A <- gam(AVERAGE ~ s(YEAR), data=DF, na.action=na.omit)
B <- predict(A, type="response", se.fit=TRUE)
我已经通过 2 种不同的方法确定了导数,应用了高自由度三次平滑样条曲线,并通过一阶和二阶差分(轻微平滑)和引导来近似误差,两者都产生了可比较的结果。
我注意到“gam.fit3”函数有助于确定最多二阶导数,但不直接调用。我还注意到使用类型为“lpmatrix”的“predict.gam”有助于平滑的导数。我想直接使用“GAM”函数来计算一阶和二阶导数,但我没有足够的技能来计算或提取这些导数。我试图在“Predict.gam”帮助页面末尾为一个变量重新配置 Wood 的示例,但没有成功。任何能让我朝着正确方向前进的帮助都会非常棒。谢谢菲尔。