时间序列笔记-ARIMA模型

笔记说明

在datacamp网站上学习“Time Series with R ”track
“ARIMA Modeling with R”课程 做的对应笔记。
学识有限,错误难免,还请不吝赐教。
学习的课程为“ARIMA Modeling with R”,主要用astsa包。
如无特殊说明,笔记中所使用数据均来自datacamp课程
ARIMA模型没比ARMA模型多多少知识点,因此本次笔记以一个真实数据练习为主,分析过程中附带一些在ARMA模型笔记中没有提到的内容。

ARIMA模型介绍

在ARMA模型的基础上加上差分就是ARIMA模型(Autoregressive Integrated Moving Average model)了,如果某时间序列的d阶差分符合ARMA(p,q),那么原时间序列符合ARIMA(p,d,q)。

真实数据练习-全球变暖

astsa包中自带的globtemp数据包含1880-2015年间每年的全球平均陆地-海洋温度偏差(与1951-1980年均值相比)
原始数据及其一阶差分情况如下:



差分后的数据消除了长期趋势,有点像平稳序列了。

通过ACF和PACF图尝试定阶:

# Plot the sample P/ACF pair of the differenced data 
acf2(diff(globtemp))

对于差分后的ACF和PACF的结果,可以有以下解读:

  1. ACF和PACF均拖尾,可以考虑ARIMA(1,1,1)模型
  2. ACF在lag为2处截尾,PACF拖尾,因此可以考虑ARIMA(0,1,2)模型
  3. ACF拖尾,PACF在lag为3处截尾,可以考虑ARIMA(3,1,0)模型。虽然这个模型拟合的也还可以,但实际上是三个模型中表现最差的。对于数据展示出来的比较小的自相关性它用了过多的参数。为节约篇幅我们就把这个模型忽略了。

拟合第一个模型:

# Fit an ARIMA(1,1,1) model to globtemp
sarima(globtemp,1,1,1)

参数估计结果:

  Estimate SE t.value p.value
ar1 0.3549 0.1314 2.7008 0.0078
ma1 -0.7663 0.0874 -8.7701 0.0000
constant 0.0072 0.0032 2.2738 0.0246

sigma^2估计值为0.009885
自由度132
AIC -3.572642
BIC -4.508392
残差分析图:


拟合第二个模型:

# Fit an ARIMA(0,1,2) model to globtemp
sarima(globtemp,0,1,2)

参数估计结果:

  Estimate SE t.value p.value
ma1 -0.3984 0.0808 -4.9313 0.0000
ma2 -0.2173 0.0768 -2.8303 0.0054
constant 0.0072 0.0033 2.1463 0.0337

sigma^2估计值为0.00982
自由度132
AIC -3.579224
BIC -4.514974
残差分析图:


模型选择

两个模型的参数估计结果均有统计学意义,残差分析图也都显示模型均是合理的(reasonable)。根据AIC和BIC的结果,可能ARIMA(0,1,2)模型更好一些。
另外,forecast包的auto.arima()函数可以自动尝试不同阶数组合模型并建模,也可以帮助我们定阶。auto.arima()的相关内容见:时间序列笔记-auto.arima()自动定阶

通过模拟过拟合进行模型诊断

除了残差分析以外,还可以通过模拟过拟合(overfitting)来对建立的模型进行诊断:在建立的模型基础上添加额外的参数,看新的拟合结果。如果模型的参数估计等产生了很大的变化,则需要再考虑;如果模型结果没有发生大变动,那么可以比较肯定之前的模型是正确的。(我理解就是检查是否欠拟合吧)
我们在ARIMA(0,1,2)的基础上加一个参数,尝试ARIMA(0,1,3)模型的拟合效果:

# Fit an ARIMA(0,1,3) model to globtemp. 
sarima(globtemp,0,1,3)

参数估计结果:

  Estimate SE t.value p.value
ma1 -0.3760 0.0929 -4.0458 0.0001
ma2 -0.2115 0.0779 -2.7157 0.0075
ma3 -0.0464 0.0865 -0.5370 0.5922
constant 0.0072 0.0032 2.2574 0.0256

sigma^2估计值为0.009798
自由度131
AIC -3.566741
BIC -4.481074
残差分析图:



可以看出ma1 ma2的参数估计值变化不大,新加的ma3并没有统计学意义,AIC BIC增大。标明原来的ARIMA(0,1,2)模型并没有欠拟合。

用ARIMA模型进行预测

可以用astsa包的sarima.for(data, n.ahead, p, d, q)函数进行ARIMA建模后的预测。n.ahead参数指定往后预测几个时间单位的值。函数会输出对应预测值及其标准误和图像,图像中黑色表示已有数据,红色表示预测值,还会显示预测值加减1倍标准误的预测区间和加减2倍标准误的预测区间。

# Forecast data 35 years into the future
sarima.for(globtemp,n.ahead=35,0,1,2)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容