加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

SAS时间序列模型预测未来航班数量

(2016-05-30 15:56:17)
标签:

sas

数据分析师

数据分析师培训

数据挖掘

SAS时间序列模型预测未来航班数量

时间序列建模步骤:

1. 时间序列平稳性检验:如果一个时间序列的概率分布与时间无关,则成为平稳序列。

2. 时间序列平稳化和零均值化:时间序列预测模型是建立在平稳序列的基础上的,由于日常所见的数据序列大多是非平稳序列,故需要转换为平稳序列,转换后需要进行零均值化处理。

3. 自回归模型(AR模型)、移动平均模型(MA模型)和自回归移动平均模型(ARMA模型)阶数识别,确定模型阶数p和q值:

AR模型:某个观测值Xt与其滞后p期的观测值的线性组合再加上随机误差项。

即:Xt= φ1Xt-1+φ2Xt-2+……+φpXt-p+at;

MA模型:某个观测值Xt与先前t-1,t-2,t-q个时刻进入系统的q个随机误差项即at,at-1,……,Xt-q的线性组合。

即:Xt=at-θ1at-1-θ2at-2-……-θqXt-q;

ARMA模型:即观测值不仅与其以前p个时刻的自身观测值有关,而且还与其以前时刻进入系统的q个随机误差存在一定的依存关系。

即Xt= φ1Xt-1+φ2Xt-2+……+φpXt-p+at-θ1at-1-θ2at-2-……-θqXt-q。


4. 参数估计:确定p、q值后,运用最大似然、最小二乘法等算法估计模型参数(φi 和θj,i=1,2,…,p;j=1,2,……,q)值。

5. 模型预测:利用显著的模型对时间序列进行预测。

以下就使用sashelp.air这份时间序列数据集进行预测模型的建立。

1. 平稳性识别

proc gplotdata=sashelp.air;

plot air*date;

symbol c=red i=spline v=dot;

run;

http://cda.pinggu.org/uploadfile/image/20160529/20160529195804_51281.png

通过趋势图不难发现其存在长期趋势并且随着季节存在周期性的变动。

2. 时间序列平稳化和零均值化

观察发现使用一阶差分可得平稳化和零均值化时间序列。

proc arimadata=sashelp.air;

identify var=air(1) nlag=30;

run;

http://cda.pinggu.org/uploadfile/image/20160529/20160529195755_78704.png

白噪声检验原假设:一阶差分值是白噪声。

http://cda.pinggu.org/uploadfile/image/20160529/20160529195747_79575.png

1阶差分和1阶差分的ACF(自相关系数)、PACF(偏自相关系数)和IACF(逆自相关系数)。

3. 模型识别

http://cda.pinggu.org/uploadfile/image/20160529/20160529195737_92526.png

通过图像我们可以发现ACF拖尾,PACF12阶截尾,故选择AR模型。

模型参数的确定主要有三种方法:


 

  1. ESACF(延伸自相关系数法)
  2. SCAN(最小典型相关法)
  3. MINIC(最小信息准则法)

 


这里以MINIC为例:

proc arimadata=sashelp.air;

identify var=air(1) nlag=30 minic p=(0:12) q=(0:12);

 

run;

http://cda.pinggu.org/uploadfile/image/20160529/20160529195726_85004.png

4. 参数估计和检验

proc arimadata=sashelp.air;

identify var=air(1) nlag=30;

estimate p=12 q=0 ML;

 

run;

http://cda.pinggu.org/uploadfile/image/20160529/20160529195717_35659.png
结果: 

1 + 0.18266 B**(1) + 0.2696 B**(2) + 0.22644 B**(3) + 0.26291 B**(4) + 0.19729 B**(5) + 0.26238 B**(6) + 0.21259 B**(7) + 0.31246 B**(8) + 0.17541 B**(9) + 0.29835 B**(10) + 0.16218 B**(11) – 0.64715 B**(12)http://cda.pinggu.org/view/18899.html

5. 模型预测

proc arimadata=sashelp.air plots(only)=forecast(forecast);

identify var=air(1) nlag=30;

estimate p=12 q=0 ML;

forecast lead=10 out=out;

run;

http://cda.pinggu.org/uploadfile/image/20160529/20160529195827_87490.png

http://cda.pinggu.org/uploadfile/image/20160529/20160529195605_46391.png

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有