原文:https://otexts.com/fppcn/arima-exercises.html
图8.29分别显示了36个、360个和1000个随机数的自相关图。
#> Warning: Ignoring unknown parameters: ylim, main
#> Warning: Ignoring unknown parameters: ylim, main
#> Warning: Ignoring unknown parameters: ylim, main
图 8.29: 左侧:长度为36的白噪声序列的自相关图。中间:长度为 360 的白噪声序列的自相关图。右侧:长度为 1000 的白噪声序列的自相关图。
IBM 股票每日收盘价序列(数据集ibmclose
)是一个经典的非平稳序列,用R画出它的时序图和自相关图以及偏自相关图。解释为什么图中可以看出序列非平稳并讨论应该如何对数据进行差分。
对于下列序列,找到合适的Box-Cox变换以及差分的方法以使数据平稳。
usnetelec
usgdp
mcopper
enplanements
visitors
对enplanements
数据进行合适的差分,并用延迟算子表示你选择的差分方法。
为你的零售数据(2.10的练习3中的数据)找到合适的差分方法(必要时对数据先进行变换)使数据平稳。
y <- ts(numeric(100))
e <- rnorm(100)
for(i in 2:100)
y[i] <- 0.6*y[i-1] + e[i]
wmurders
)。
auto.arima()
函数和你选择的模型一样吗?你觉得哪一个模型更好?austa
)
auto.arima()
来找到一个合适的ARIMA模型。auto.arima()
选择了什么模型?残差看起来是不是白噪声?对未来十个时间点进行预测并画图。usgdp
序列:
auto.arima()
为数据找到一个合适的ARIMA模型。ets()
得到的模型(不对数据进行变换)进行比较。austourists
序列,它记录的是澳大利亚 1999 到 2010 年之间的季度国际游客总数。
auto.arima()
和你选择的模型一样吗?你觉得哪个模型更优?usmelec
)一般每年在夏季和冬季会各出现一次高峰。
mcopper
数据:
auto.arima()
为数据找到一个合适的ARIMA模型;ets()
得到的模型(不对数据进行变换)进行比较。hsales
,auscafe
,qauselec
,qcement
,qgas
这五个季节性时间序列中任选一个。
ets()
进行的预测进行对比。对于上一题中的序列,尝试对数据进行季节性时间序列处理(STL),并使用非季节性模型对处理后的数据进行建模。stlf()
函数可以简化你的计算(method="arima"
)。将新模型的预测结果与上一题的模型进行对比。你觉得哪个模型更优?
sheep
,从1867年到1938年英格兰和威尔士的山羊数量。
序列最后的五个值如下表所示:
年份 | 1935 | 1936 | 1937 | 1938 | 1939 |
---|---|---|---|---|---|
绵羊数量/百万 | 1648 | 1665 | 1627 | 1791 | 1797 |
参数估计为:
\(\phi_1 = 0.42\),
\(\phi_2 = -0.20\),and
\(\phi_3 = -0.30\)。
在不使用forecast
函数的情况下,自行计算之后三年(1940–1942)的预测值。
使用R对模型进行拟合,并使用forecast
进行预测。得到的预测和你之前计算的有区别吗?为什么?
bicoal
为美国 1920 年到 1968 年的 烟煤年产量。
序列最后的五个值如下表所示:
年份 | 1964 | 1965 | 1966 | 1967 | 1968 |
---|---|---|---|---|---|
煤产量/百万吨 | 467 | 512 | 534 | 552 | 545 |
The estimated parameters are
\(c = 162.00\),
\(\phi_1 = 0.83\),
\(\phi_2 = -0.34\),
\(\phi_3 = 0.55\),and
\(\phi_4 = -0.38\).
在不使用forecast
函数的情况下,自行计算之后三年(1969–1971)的预测值。
使用R对模型进行拟合,并使用forecast
进行预测。得到的预测和你之前计算的有区别吗?为什么?
在做这个练习之前,你需要安装程序包rdatamarket使用如下命令:
install.packages("rdatamarket")
r x <- ts(rdatamarket::dmseries("shorturl")[,1],start=??,frequency=??)
(将??
替换为合适的值)