【发布时间】:2018-03-29 14:26:56
【问题描述】:
我想使用广义加法模型来研究 R 中的时间序列数据。我的数据是月度数据,我想估计季节性效应和长期趋势效应。我关注了 Gavin Simpson here 和 here 的一些有用的帖子:
我的数据如下所示:
我的 github page 上有完整的数据集:
我试图指定一个具有平滑季节性和趋势项的广义加法模型,如下所示:
df <- read.csv('trips.csv')
head(df)
# A tibble: 276 × 2
date ntrips
<date> <int>
1 1994-01-01 157
2 1994-02-01 169
3 1994-03-01 195
4 1994-04-01 124
5 1994-05-01 169
#add a time column
trips <- tbl_df(trips) %>% mutate(time=as.numeric(date))
mod1 <- gamm(ntrips~s(month,bs="cc",k=12) + s(time),data=trips)
我提取的季节性影响估计如下:
pred <- predict(mod1$gam,newdata=trips,type="terms")
seas <- data.frame(s=pred[,1],date=trips$date)
ggplot(seas,aes(x=date,y=s)) + geom_line()
这个情节包括在下面:
我的问题是:在原始数据中,季节性峰值每年都会略有变化。在令人尴尬的简单 GAM 中,我指定了季节性效应是恒定的。有没有办法通过 GAM 适应随时间变化的季节性?
我已经使用 Cleveland 等人的 STL 方法分析了these 数据:
使用 STL 范式,如何摆动或平滑允许季节性影响似乎是一个偏好或选择问题。如果我可以让数据告诉我随机误差和变化的季节性峰值之间的区别,我会更愿意。 GAMS 似乎更适合这个目标,因为它们更容易进行统计模型拟合类型的练习……但我想知道 R 包中是否有一个参数用于拟合 gams,它允许随时间变化的季节性影响。
【问题讨论】:
标签: r time-series gam cyclic stl-decomposition