SAS建立时间序列模型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例2 国航客票数(Airline)数据
data seriesg; input x @@; xlog=log(x); date=intnx('month','31dec1948'd,_n_); format date monyy.; cards;
112 118 132 129 121 135 148 148 136 119 104 118 115 126 141 126 126 149 170 170 158 133 114 140 145 150 178 163 172 178 199 199 184 162 146 166 171 180 193 181 183 218 230 242 209 191 172 194 196 196 236 235 229 243 264 272 237 211 180 201 204 188 235 227 234 264 302 233 259 229 203 229 242 233 267 269 270 316 364 347 312 274 237 278 284 277 317 313 318 374 413 405 355 306 271 306 315 301 356 348 356 422 465 467 404 347 305 336 340 318 362 348 363 435 491 505 404 359 310 337 360 342 406 396 420 472 548 559 463 407 362 405 417 391 419 461 472 535 622 606 508 461 390 432 ; Proc print data= seriesg; run;
SAS的建模步骤
• SAS建模根据Box―Jenkins建模方法, 主要包括三个阶段: 模型识别阶段(包括模型定阶) 模型参数估计阶段(包括模型检验) 模型的预测阶段
第一阶段: 模型的识别
• 平稳性模型识别 首先判定时间序列数据是否为平稳随机数 据, (一)通过时间序列数据趋势图判别。
Sas语句: symbol1 i=join v=star; proc gplot data=seriesg; plot x*date=1/haxis='1jan49'd to '1jan61'd by year; run;
•
参数估计值的相关系数表
判断其变量之间互线性可能影响结果的程度.
如果两个参数估计值高度相关(相关系数很高), 可以 考虑模型从模型中去掉一个参数对应的变量。
•
残差自相关系数的检验 对于残差序列的卡方检验统计量将指 明残差是否不相关,或是否包含可以被更 复杂模型利用的附加信息。 H0:无自相关 P值<0.0005, 拒绝原假设, 即残差非白噪声.
(二)通过自相关函数和偏自相关函数的截 尾性识别模型
“IDENTIFY”语句 通过SAS软件,运行程序如下: proc arima data=数据集 identify var=变量名 nlag=时间间隔个数 run; 计算出自相关系数ACF, 逆自相关系数 SIACF, 偏自相关系数PACF和互相关系数。 根据样本自相关系数ACF和偏相关系数 PACF的形态来识别模型类别。
第二阶段:估计和诊断检验阶段
• 时间序列Wt由IDENTIFY语句识别并且由 ESTIMATE语句处理, 即在完成可能的模型 识别后,开始估计和诊断检查阶段.
估计模型AR(P) estimate p=?; (根据偏相关系数的截尾点) run; ESTIMATE语句的功能是用模型拟合数据,并打印 出参数估计值和诊断统计量,指出模型对数据的 拟合优度。
X M n ( n 2)
2 M
rk
2
R 1
(n k )
rk
t 1 n t 1
nk
t
t
tR
2
每个卡方值对于指定 的所有时间间隔进行计 算,并不独立于前面的 卡方值。若滞后m 期的 卡方统计量所对应的值 均小于临界值,即 p值 均小于置信水平, 则残 差卡方检验未通过.
• 由于大多数时间序列是非平稳的,所以必须在进行建模之 前,就应该把它们变换为平稳序列。 • 对数变换 ylog=log(y)
Biblioteka Baidu
• 差分 identify var=变量名(1) /1为一阶差分 季节性也会导致非平稳,若数据是月记录序列 identify var=数据名(12) identify var=数据名(1,1)/二阶差分 identify var=数据名(1,12) • var=数据名(1,12)是当前相邻时刻的差分以及相隔12 个时刻的差分,对于差分阶数的指定和差分间隔长度的指 定是没有限制的。
例1 磨轮剖面资料 data li; input x @@; cards; 13.5 4.0 4.0 4.5 3.0 3.0 10.0 10.2 9.0 10.0 8.5 7.0 10.5 7.5 7.0 10.5 9.5 7.0 12.0 13.5 12.5 15.0 13.0 11.0 9.0 10.5 10.5 11.5 10.5 9.0 8.2 8.5 9.2 8.5 10.0 14.5 13.0 2.0 6.0 6.0 11.0 9.5 12.5 13.8 12.0 12.0 12.0 13.0 12.0 14.0 14.5 13.5 12.3 7.0 7.0 7.0 6.5 12.5 15.0 12.5 11.6 11.0 10.0 8.5 3.0 11.5 11.5 11.5 11.0 9.0 2.5 7.0 6.0 6.6 14.0 11.0 9.0 6.5 4.0 6.0 12.0 11.0 12.0 12.5 12.5 13.6 13.0 8.0 6.5 6.8 6.0 7.2 10.2 8.0 7.5 11.0 11.8 11.8 6.5 8.0 9.0 8.0 8.0 9.0 9.5 10.0 9.0 12.0 13.5 13.8 15.0 12.5 11.0 11.5 14.5 11.5 11.8 13.0 15.0 14.5 13.0 9.0 11.0 9.0 10.0 14.0 13.5 3.0 2.2 6.0 8.0 9.0 9.0 9.0 7.0 6.0 6.5 7.0 7.5 8.5 9.0 9.5 10.0 11.5 11.2 12.5 11.6 8.0 7.0 6.0 6.0 6.0 9.0 12.0 13.5 13.0 3.5 1.8 1.6 7.5 8.0 7.9 11.6 12.5 10.5 8.0 9.0 11.6 11.8 12.6 10.2 10.0 5.0 7.0 -1.0 0.0 0.0 3.0 11.0 12.0 12.2 11.0 8.0 7.0 5.5 10.0 11.5 7.0 4.0 7.0 7.0 10.0 9.0 8.0 10.0 13.0 10.0 6.5 11.0 13.0 13.0 14.0 13.0 12.5 12.0 9.0 8.5 7.0 8.5 10.0 8.0 4.0 3.0 10.0 13.0 13.0 13.0 12.0 11.0 11.0 11.0 14.5 14.0 14.0 13.5 10.0 9.5 10.0 12.5 10.0 9.0 9.0 4.0 3.0 6.0 5.0 7.0 6.0 5.0 8.5 10.5 11.1 11.0 10.0 11.2 8.0 2.5 5.0 13.2 14.0; Proc print data=li; run;
白噪声检验——卡方检验
• H0 :直到某一给定时间间隔的样本自相关系数没 有显著不为零的.(Xt为白噪声,独立的随机扰动) • 如果对所有时间间隔,该零假设成立,则没有需要 建模的信息,也不需要建立ARIMA模型. • 被检查的时间间隔个数依赖于=选项 • 对前N-2个自相关系数的检验P值。 P<=0.005 拒绝 H0 (拒绝为白噪声,P=0时, Xt高度自相关) P<=0.005 接受 H0 (即对所有时间间隔,自相关 系数为零,说明没有建模信息,不必要做下去了)
如果序列的样本自相关系数在q步后截尾,则是MA 序列,如果偏相关系数在p步后截尾,则是AR序列。如 果都不截尾,只是按负指数衰减或以阻尼正弦波形式趋 于零(即是拖尾的),则应判断为ARMA序列,但是不 能确定阶次。
若序列的样本自相关和偏相关系数都不截尾,而且 至少有一个不是拖尾,即下降趋势很慢,不能被负指数 函数所控制,或是不具有下降的趋势而是周期变化,那 么我们便认为序列具有增长趋势或季节性变化,是非平 稳序列。可应用提取趋势性和季节性的方法,对数据进 行处理,就是主要通过差分等变换将非平稳序列变成一 个平稳序列。
例2 国航客票数(Airline)数据 proc arima data=seriesg; identify var=xlog(1,12) nlag=15; run; 差分不仅影响用于IDENTIFY语句输出的 序列,而且应用于任何随后的ESTIMATE和 FORECAST语句。ESTIMATE语句对差分序 列拟模型,FORECAST语句预测差分并自动 把差分加起来以取消有IDENTIFY语句指定的 差分操作。
非平稳序列的平稳化
若序列是非平稳的,下面是通过差分变换变成一个平稳 序列。 SAS的程序为一阶差分 变量名(1) identify var=变量(1) nlog=N ; run; 若一阶差分是平稳的,对差分序列建模,观测ACF、 PACF的变化趋势,初步给出的阶数。因为输入数据是序 列的有限样本,所以由输入序列计算出样本自相关系数是 逼近产生序列的理论自相关系数。这意味着样本自相关系 数不能够恰好等于任何模型的理论自相关系数,并且可能 会具有一种或多种不同的模型的理论自相关系数相似的类 型。若一阶差分序列仍不平稳,重复以上过程,(二阶差 分,三阶差分等等)直到差分序列平稳。
– –
– –
•
拟合优度统计量表
– Variance Estimate 残差序列的方差
– Std Error Estimate 方差估计值的平方根 – AIC和BIC两个信息准则
AIC=-2ln(L)+2R
(贝叶斯准则) BIC(SBC)=-2ln(L)+ln(n)R
其中L是一个近似值,以AIC的绝对值越小拟合优度越好.
第一阶段(IDENTIFY)的输出
• •
• •
•
描述统计量:N E(X) D(X) σ(X) 自相关系数散点图 ACF 自相关系数图表及序列的当前值和过去值的相关 程度,图中以图像的形式显示相关系数的值。 偏相关系数 PACF 与自相关系数图格式相同 逆自相关系数 SIACF 在ARIMA建模中,样本递自相关系数和PACF起 大体一样的作用,但SIACF在指出子集和季节自 回归模型时效果优于PACF。 对偶模型的自相关系数称作原模型的逆自相关系 数。 B Z t B at BW t B a t
SAS软件简介
SAS系统 是由美国SAS软件研究所开发的用于 决策支持的大型集成信息系统,是数 据处理和统计领域的国际标准软件之 一,广泛应用于金融、医药卫生、生 产、运输、通讯、政府、教育和科研 等领域。
应用SAS软件建立时间序列模型
• 准备工作:建立一个时间序列数据集 SAS语句: Data 数据集名; Input 序号(year or month)变量名 @@; Cards;/(输入数据,按input格式逐个输入数 据,以分号结束); Proc print data=数据集名;/输出数据表 Run;
ESTIMATE的输出
• 参数估计表:
– 估计方法:METHOD=选择不同的估计方法(条件最 小二乘法估计,极大似然估计,条件、无条件估计, 线性或非线性估计) 参数估计值(提供:估计值,标准差,t比值) t比值:关于参数估计值的显著性检验(近似值)。 当观测序列的长度很短,并且被估计参数的个数相 对于序列昌都很长时,t统计量的近似效果很差。 均值项MU 常数项:Constant Estimate 模型的常数项可以表 示为均值项MU和自回归参数的函数。