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

Posted 分析与建模

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 gplot data=sashelp.air;

plot air*date;

symbol c=red i=spline v=dot;

run;



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


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


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


proc arima data=sashelp.air;

identify var=air(1) nlag=30;

run;


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

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


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

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



3. 模型识别



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

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


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

  1. ESACF(延伸自相关系数法)

  2. SCAN(最小典型相关法)

  3. MINIC(最小信息准则法)


这里以MINIC为例:

proc arima data=sashelp.air;

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

/*还可以添加选项minic, esacf, scan*/

run;


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


4. 参数估计和检验


proc arima data=sashelp.air;

identify var=air(1) nlag=30;

estimate p=12 q=0 ML; 

/*还可以添加选项method=ML(极大似然)、ULS(非条件最小二乘法)、CLS(最小二乘法)*/

run;

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

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)



5. 模型预测


proc arima data=sashelp.air plots(only)=forecast(forecast);

identify var=air(1) nlag=30;

estimate p=12 q=0 ML; 

forecast lead=10 out=out;

run;


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







参考资料:《深入解析SAS:数据处理、分析优化与商业分析》



以上是关于SAS时间序列模型预测未来航班数量的主要内容,如果未能解决你的问题,请参考以下文章

sas中的预测

教你Python使用随机森林模型预测机票价格

钉钉杯大学生大数据挑战赛初赛B 航班数据分析与预测 Python代码实现Baseline

灰色预测

用 LSTM 做时间序列预测的一个小例子

用 LSTM 做时间序列预测的一个小例子(转自简书)