第六章、非平稳时间序列一、非平稳性的检验几种简单、常用的检验方法:(1)数据图法(2)自相关、偏自相关函数检验法(3)特征根检验法(4)参数检验法(5)逆序检验法(6)游程检验法。平稳性回顾★宽平稳★期望常数、协方差函数为时间间隔的函数★也即无趋势性、无周期性、无季节性★Gj→0,当j→∞时★模型自回归部分对应的差分方程的特征方程的特征根的模都小于1非平稳性的检验数据图检验法:1.方法:利用Xt-t折线图直观判断平稳性。2.优缺点:最简单、直观,但有一定的主观性,不精确。自相关、偏自相关函数检验法1.方法:自相关、偏自相关函数既不拖尾也不截尾2.优缺点:简单、直观,但不够精确。特征根检验法先识别出较适合模型进行拟合,然后考察其对应特征方程的特征根是否满足“模都小于1”的条件,即是否有某个。1i参数检验法系统的平稳性条件可以用特征根表示,也可以用模型的自回归参数表示要检验一个系统的稳定性,可以先拟合适应的模型,然后再根据求出的自回归参数来检验。检验方法如下:其中0=-1,第二行是第一行的逆排列第三行元素分别是:1,,2,1,000nianiniinini20001nnnannnna1101101nnnnna1101101依次类推,直到只剩下三个元素2,,2,1,0110110niaaaaaaaabniniinini第五行元素分别是:当且仅当满足下面三个条件时,序列才是平稳的。(1)(2)(3)1321n1)1(321nn|||||,||||,||||,|||0202010llbbaannn注意当n=2时,就是第三章讨论的ARMA(2,m)系统的平稳性条件。例6.2对某序列拟合的适应模型为试检验该序列的平稳性。213215.06.02.06.02tttttttaaaXXXX解:构造列阵如下:行1-12-0.60.220.2-0.62-130.96-1.880.2参数96.02.0112.000al20001nnnannnna11011018.80-22.0.60-1-11al312023102a.20.60-2.021-22al1.61.20.60-2321该序列是非平稳的逆序检验法可检验出均值或方差可能存在的某种趋势步骤:1.做出均值或方差序列a.原序列分成M段(可等分或不等分)b.对每一段求均值(或方差)2.计算该序列的逆序总数逆序:对yi来说,若是其后有一个值大于它,则称为有一个逆序。a.求yi的逆序数Ai;b.求逆序总数A1m1iiAA3.计算统计量进行检验)1M(M41)A(E72)5M3M2(M)A(D2)1,0(N~)A(D)A(E21AZ例:已得均值序列如下,判断原序列均值的平稳性均值序列:y1y2y3y4y5y6y7y8y9均值1.151.201.081.101.011.231.171.241.3918)1(41)(MMAE2372)532()(2MMMAD77.1)()(21ADAEAZ解:逆序535442210逆序总数:A=26所以原序列均值平稳。若A过大,原序列有增的趋势,若A过小,原序列有减的趋势。缺点:原序列单调增(减)时有效,若原序列有增有减,该方法无效。游程检验法1.游程:对序列{Xt}计算均值,对每一个Xt进行判断,若Xt≥均值,记为“+”,若Xt均值,记为“-”,按原序列顺序可以得到一个符号序列,每一段连续相同的符号子序列叫做一个游程。例:Xt:5846375787均值=6符号序列:-+-+-+-+++共有8个游程2.思想:游程的长短并不重要,关键是游程的个数。游程太多或太少都被认为存在非平稳趋势。记N1,N2是“+”“-”号出现的总数,r为游程数例:最小游程数和最大游程数小样本:N1,N2不超过15,游程总数服从r分布。对r,当rLrrU时接受原假设,认为序列是平稳的,否则认为序列是非平稳的)1,0(~)()(NrDrErZ12)(21NNNrE)1()2(2)(22121NNNNNNNrD大样本:3.步骤:(1)计算均值(2)做出符号序列(3)计算正负号总数和游程数(4)计算统计量进行检验注意:若是小样本,对r直接查表判断,若是大样本,需先计算r的均值和方差,然后得到Z值,再进行判断。例:判断上面序列的平稳性解:N1=6,N2=4,r=8,显著性水平=0.05,查表得rL=2,rU=9,所以用游程检验法判断该序列是平稳的。二、非平稳序列的确定性分析1、确定性因素分解①传统的因素分解长期趋势循环波动季节性变化随机波动②现在的因素分解长期趋势波动季节性变化随机波动2、确定性时序分析的目的克服其它因素的影响,单纯测度出某一个确定性因素对序列的影响推断出各种确定性因素彼此之间的相互作用关系及它们对序列的综合影响趋势分析目的有些时间序列具有非常显著的趋势,我们分析的目的就是要找到序列中的这种趋势,并利用这种趋势对序列的发展作出合理的预测常用方法趋势拟合法平滑法趋势拟合法就是把时间作为自变量,相应的序列观察值作为因变量,建立序列值随时间变化的回归模型的方法分类线性拟合非线性拟合线性拟合使用场合长期趋势呈现出线形特征模型结构)(,0)(ttttIVarIEIbtax非线性拟合使用场合长期趋势呈现出非线形特征参数估计指导思想能转换成线性模型的都转换成线性模型,用线性最小二乘法进行参数估计实在不能转换成线性的,就用迭代法进行参数估计常用非线性模型模型变换变换后模型参数估计方法线性最小二乘估计线性最小二乘估计--迭代法--迭代法--迭代法2ctbtaTtttabTttbcaTtbcateTttbcaT122ttttTTlnaalnbbln2ctbtaTttbaTtX-11过程简介X-11过程是美国国情调查局编制的时间序列季节调整过程。它的基本原理就是时间序列的确定性因素分解方法。该法始于上世纪二三十年代,那时不存在合适的分析模型;在历史数据基础上只能有效表达一段有限长度时间序列的发展变化规律,一旦加入更多数据,模型就不具有很好的解释性。由于以上原因,在X-11过程中普遍采用移动平均的方法:用多次短期中心移动平均消除随机波动,用周期移动平均消除趋势,用交易周期移动平均消除交易日影响。在整个过程中总共要用到11次移动平均,所以称为X-11过程。因素分解长期趋势起伏季节波动不规则波动交易日影响模型加法模型乘法模型对1993年——2000年中国社会消费品零售总额序列使用X-11过程进行季节调整选择模型,由于没有交易日影响考虑乘法模型:ttttTSTx三、非平稳序列的随机分析1、差分运算2、ARIMA模型1、差分运算差分方式的选择序列蕴含着显著的线性趋势,一阶差分就可以实现趋势平稳序列蕴含着曲线趋势,通常低阶(二阶或三阶)差分就可以提取出曲线趋势的影响对于蕴含着固定周期的序列进行步长为周期长度的差分运算,通常可以较好地提取周期信息过差分假设序列如下考察一阶差分后序列和二阶差分序列的平稳性与方差ttatx10比较一阶差分平稳方差小二阶差分(过差分)平稳方差大111tttttaaxxx21122ttttttaaaxxx212)()(tttaaVarxVar22126)2()(ttttaaaVarxVar2、ARIMA模型结构使用场合差分平稳序列拟合模型结构tsaExtsaaEaVaraEaBxBtsstttttd,0,0)(,)(0)()()(2,ARIMA模型族d=0ARIMA(p,d,q)=ARMA(p,q)P=0ARIMA(P,d,q)=IMA(d,q)q=0ARIMA(P,d,q)=ARI(p,d)d=1,P=q=0ARIMA(P,d,q)=randomwalkmodelARIMA(p,d,q)模型共有p+d个特征根,其中p个在单位圆内,d个在单位圆上。所以当时ARIMA(p,d,q)模型非平稳。ARIMA模型建模步骤获得观察值序列平稳性检验差分运算YN白噪声检验Y分析结束N拟合ARMA模型1、SAS系统简介•StatisticsAnalysisSystem•1972年第1版,最新版本9.x•数据驱动的系统–数据获取–数据管理–数据分析–数据展示•广泛应用于金融、医药、生产、运输、通信等领域四、SAS系统BaseSAS–系统核心–数据管理任务–用户使用环境•SAS/STAT–统计分析模块•SAS/ETS–时间序列分析模块•SAS/IML–交互式矩阵程序设计模块•SAS/Graph–绘图模块菜单栏工具栏窗口菜单栏File——文件选项。用于处理文件的打开、关闭、保存、输入及输出等。Edit——编辑选项。用于文件的复制、剪切、清除、选择、查找及替代等。View——视图选项。用于切换不同的视窗。Tools——工具选项。主要是提供各种编辑工具,并可以进行系统信息的更改与管理。Run——程序运行选项。该选项只有在当前窗口为编辑窗口时出现。Solutions——分析方案选项。它提供各种分析方法。Window——窗口选项。提供窗口控制的大小、排列方式及窗口间的切换。Help——帮助选项。工具栏(从左至右)命令输入及提交窗口、创建新文件、打开旧文件、保存、打印、预览、剪切、复制、粘贴、复原、目录库、资源管理器、提交程序给SAS执行、删除、中断运行及帮助等。窗口(从左至右)结果输出窗口、运行记录窗口及程序编辑窗口程序执行选中需要执行的语句单击工具条按钮SASLog窗口:有关程序执行的信息,包括警告、错误消息SASOutput窗口:结果输出SAS程序的组成SAS程序的组成SAS数据集:SAS存取数据的基本单位,逻辑上是一个二维数据表数据步(Datastep)–创建、修改、加工整理SAS数据集过程步(Procstep)–加工整理、分析、显示程序语句的界定数据步–起始:DATA–中止:Run;下一个data、proc过程步–起始:Proc语句–中止:Run;Quit;下一个data、proc程序语法开始于一个SAS关键词;结束于一个“;”自由格式–一个或几个空格作为分隔–一句语句可以分为几行–几个语句可以放在一行–注意:不要把过多语句放到一行,不利于调试(不利于应用log窗口中行数的指引)注释–/*……;–/*………………..*/日期函数mdyday,month,year,datedatdif(sdate,edate,basis)–两个日期间的天数intnx('interval',start-from,increment,'alignment')–起始时间+步长intck('interval',from,to)–两个时间中步长的个数其他函数Input:字符型-数值型Put:数值型-字符型选择输出变量Dataonbard(drop=firstclasseconomy)Setia.dfwlax;Total=firstclass+economy;Run;Dataonbard(keep=flightdatedesttotal)Setia.dfwlax;Total=firstclass+economy;Run;数据集的合并Merge/By语句–Merge/by要求数据集已经排序datadata=da