SAS软件简介SAS系统是由美国SAS软件研究所开发的用于决策支持的大型集成信息系统,是数据处理和统计领域的国际标准软件之一,广泛应用于金融、医药卫生、生产、运输、通讯、政府、教育和科研等领域。应用SAS软件建立时间序列模型•准备工作:建立一个时间序列数据集SAS语句:Data数据集名;Input序号(yearormonth)变量名@@;Cards;/(输入数据,按input格式逐个输入数据,以分号结束);Procprintdata=数据集名;/输出数据表Run;例1磨轮剖面资料datali;inputx@@;cards;13.54.04.04.53.03.010.010.29.010.08.57.010.57.57.010.59.57.012.013.512.515.013.011.09.010.510.511.510.59.08.28.59.28.510.014.513.02.06.06.011.09.512.513.812.012.012.013.012.014.014.513.512.37.07.07.06.512.515.012.511.611.010.08.53.011.511.511.511.09.02.57.06.06.614.011.09.06.54.06.012.011.012.012.512.513.613.08.06.56.86.07.210.28.07.511.011.811.86.58.09.08.08.09.09.510.09.012.013.513.815.012.511.011.514.511.511.813.015.014.513.09.011.09.010.014.013.53.02.26.08.09.09.09.07.06.06.57.07.58.59.09.510.011.511.212.511.68.07.06.06.06.09.012.013.513.03.51.81.67.58.07.911.612.510.58.09.011.611.812.610.210.05.07.0-1.00.00.03.011.012.012.211.08.07.05.510.011.57.04.07.07.010.09.08.010.013.010.06.511.013.013.014.013.012.512.09.08.57.08.510.08.04.03.010.013.013.013.012.011.011.011.014.514.014.013.510.09.510.012.510.09.09.04.03.06.05.07.06.05.08.510.511.111.010.011.28.02.55.013.214.0;Procprintdata=li;run;dataseriesg;inputx@@;xlog=log(x);date=intnx('month','31dec1948'd,_n_);formatdatemonyy.;cards;112118132129121135148148136119104118115126141126126149170170158133114140145150178163172178199199184162146166171180193181183218230242209191172194196196236235229243264272237211180201204188235227234264302233259229203229242233267269270316364347312274237278284277317313318374413405355306271306315301356348356422465467404347305336340318362348363435491505404359310337360342406396420472548559463407362405417391419461472535622606508461390432;Procprintdata=seriesg;run;例2国航客票数(Airline)数据SAS的建模步骤•SAS建模根据Box―Jenkins建模方法,主要包括三个阶段:模型识别阶段(包括模型定阶)模型参数估计阶段(包括模型检验)模型的预测阶段第一阶段:模型的识别•平稳性模型识别首先判定时间序列数据是否为平稳随机数据,(一)通过时间序列数据趋势图判别。Sas语句:symbol1i=joinv=star;procgplotdata=seriesg;plotx*date=1/haxis='1jan49'dto'1jan61'dbyyear;run;(二)通过自相关函数和偏自相关函数的截尾性识别模型“IDENTIFY”语句通过SAS软件,运行程序如下:procarimadata=数据集identifyvar=变量名nlag=时间间隔个数run;计算出自相关系数ACF,逆自相关系数SIACF,偏自相关系数PACF和互相关系数。根据样本自相关系数ACF和偏相关系数PACF的形态来识别模型类别。如果序列的样本自相关系数在q步后截尾,则是MA序列,如果偏相关系数在p步后截尾,则是AR序列。如果都不截尾,只是按负指数衰减或以阻尼正弦波形式趋于零(即是拖尾的),则应判断为ARMA序列,但是不能确定阶次。若序列的样本自相关和偏相关系数都不截尾,而且至少有一个不是拖尾,即下降趋势很慢,不能被负指数函数所控制,或是不具有下降的趋势而是周期变化,那么我们便认为序列具有增长趋势或季节性变化,是非平稳序列。可应用提取趋势性和季节性的方法,对数据进行处理,就是主要通过差分等变换将非平稳序列变成一个平稳序列。非平稳序列的平稳化若序列是非平稳的,下面是通过差分变换变成一个平稳序列。SAS的程序为一阶差分变量名(1)identifyvar=变量(1)nlog=N;run;若一阶差分是平稳的,对差分序列建模,观测ACF、PACF的变化趋势,初步给出的阶数。因为输入数据是序列的有限样本,所以由输入序列计算出样本自相关系数是逼近产生序列的理论自相关系数。这意味着样本自相关系数不能够恰好等于任何模型的理论自相关系数,并且可能会具有一种或多种不同的模型的理论自相关系数相似的类型。若一阶差分序列仍不平稳,重复以上过程,(二阶差分,三阶差分等等)直到差分序列平稳。•由于大多数时间序列是非平稳的,所以必须在进行建模之前,就应该把它们变换为平稳序列。•对数变换ylog=log(y)•差分identifyvar=变量名(1)/1为一阶差分季节性也会导致非平稳,若数据是月记录序列identifyvar=数据名(12)identifyvar=数据名(1,1)/二阶差分identifyvar=数据名(1,12)•var=数据名(1,12)是当前相邻时刻的差分以及相隔12个时刻的差分,对于差分阶数的指定和差分间隔长度的指定是没有限制的。例2国航客票数(Airline)数据procarimadata=seriesg;identifyvar=xlog(1,12)nlag=15;run;差分不仅影响用于IDENTIFY语句输出的序列,而且应用于任何随后的ESTIMATE和FORECAST语句。ESTIMATE语句对差分序列拟模型,FORECAST语句预测差分并自动把差分加起来以取消有IDENTIFY语句指定的差分操作。第一阶段(IDENTIFY)的输出•描述统计量:NE(X)D(X)σ(X)•自相关系数散点图ACF自相关系数图表及序列的当前值和过去值的相关程度,图中以图像的形式显示相关系数的值。•偏相关系数PACF与自相关系数图格式相同•逆自相关系数SIACF在ARIMA建模中,样本递自相关系数和PACF起大体一样的作用,但SIACF在指出子集和季节自回归模型时效果优于PACF。•对偶模型的自相关系数称作原模型的逆自相关系数。BtBtWaBtBtZa白噪声检验——卡方检验•H0:直到某一给定时间间隔的样本自相关系数没有显著不为零的.(Xt为白噪声,独立的随机扰动)•如果对所有时间间隔,该零假设成立,则没有需要建模的信息,也不需要建立ARIMA模型.•被检查的时间间隔个数依赖于=选项•对前N-2个自相关系数的检验P值。P=0.005拒绝H0(拒绝为白噪声,P=0时,Xt高度自相关)P=0.005接受H0(即对所有时间间隔,自相关系数为零,说明没有建模信息,不必要做下去了)第二阶段:估计和诊断检验阶段•时间序列Wt由IDENTIFY语句识别并且由ESTIMATE语句处理,即在完成可能的模型识别后,开始估计和诊断检查阶段.估计模型AR(P)estimatep=?;(根据偏相关系数的截尾点)run;ESTIMATE语句的功能是用模型拟合数据,并打印出参数估计值和诊断统计量,指出模型对数据的拟合优度。ESTIMATE的输出•参数估计表:–估计方法:METHOD=选择不同的估计方法(条件最小二乘法估计,极大似然估计,条件、无条件估计,线性或非线性估计)–参数估计值(提供:估计值,标准差,t比值)–t比值:关于参数估计值的显著性检验(近似值)。当观测序列的长度很短,并且被估计参数的个数相对于序列昌都很长时,t统计量的近似效果很差。–均值项MU–常数项:ConstantEstimate模型的常数项可以表示为均值项MU和自回归参数的函数。•拟合优度统计量表–VarianceEstimate残差序列的方差–StdErrorEstimate方差估计值的平方根–AIC和BIC两个信息准则(贝叶斯准则)其中L是一个近似值,以AIC的绝对值越小拟合优度越好.•参数估计值的相关系数表判断其变量之间互线性可能影响结果的程度.如果两个参数估计值高度相关(相关系数很高),可以考虑模型从模型中去掉一个参数对应的变量。AIC=-2ln(L)+2RBIC(SBC)=-2ln(L)+ln(n)R•残差自相关系数的检验对于残差序列的卡方检验统计量将指明残差是否不相关,或是否包含可以被更复杂模型利用的附加信息。H0:无自相关P值0.0005,拒绝原假设,即残差非白噪声.22M1121X(2)()MkRnkttRtknttrnnnkr每个卡方值对于指定的所有时间间隔进行计算,并不独立于前面的卡方值。若滞后m期的卡方统计量所对应的值均小于临界值,即p值均小于置信水平,则残差卡方检验未通过.•利用后移算子记号列出估计模型例:ModelforvariableSALES(变量名)EstimateMean=0.90279892(MU)Period(s)ofDifferencing=1(差分阶数d)AutoregressiveFactors(自回归)Factor1:1-0.86847B**(1)Factor对应的数学形式为:模型为ARIMA(1,1,0)(1)0.90279892(10.86847)ttBSalesB估计ARMA模型——混合自回归滑动平均模型•PROCARIMA启动ARIMA建模过程•完整的PROCARIMA程序如下:Procarimadata=数据集名;identifyvar=变量名nlog=时间滞后个数;run;//输出identify语句的结果identifyvar=变量名(1),nlog=N(8~24);run;//输出对变量一阶差分序列的identify结果estimatep=?q=?;run;//输出估计模型ARIMA(p,d,q)的结果注意:一个RUN语句并不终止PROCARIMA过程,只是告知执行之前的语句IDENTIFY,ESTIMATE和FORECAST语句只有一种层次关系,附加的IDENTIFY语句用来表明一个不同的时间序列(差分变化),影响后面的操作.第三阶段:预测阶段•SAS语句forecastlead12Interval=monthid=dateout=results(输出的数据名);run;•LEAD=选项指定向前预测