基本时间序列分析.docx
- 文档编号:9549638
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:60
- 大小:1.69MB
基本时间序列分析.docx
《基本时间序列分析.docx》由会员分享,可在线阅读,更多相关《基本时间序列分析.docx(60页珍藏版)》请在冰豆网上搜索。
基本时间序列分析
幻灯片1
幻灯片2
主要内容
●时间序列的定义与扩展
●相关图绘制与白噪声检验
●移动平均滤波与指数平滑法
●ARIMA模型
●SARIMA模型
●ARIMAX模型
●单位根检验
●向量自回归模型
●协整与向量误差修正模型
●ARCH族模型
幻灯片3
实验12-1:
时间序列的定义与扩展
●实验基本原理
●在利用stata对时间序列数据进行分析之前,我们通常需要定义时间变量。
只有这样,我们才能方便地使用各种时间序列算子以及相关的时间序列分析命令。
此外,有些时候,随着时间的推移,我们又获得了新的观测值,或者,我们需要对时间序列进行预测,这时,有必要对时间区间进行扩展。
这些,都可以通过stata方便地实现。
幻灯片4
●实验内容及数据来源
●利用本书附带光盘data文件夹下的“tsexmp.dta”工作文件,我们来讲解时间变量的设定。
“tsexmp.dta”中,主要变量包括:
time=整数的时间变量,time1=字符串格式的时间变量。
●利用这些数据,我们会讲解时间序列数据的设定,时间区间的扩展,以及前滞变量、滞后变量、差分变量、季节差分变量的设定等。
幻灯片5
●实验操作指导
●1时间序列数据的设定
●
(1)定义时间变量的基本命令
●设定时间序列(timeseriesset)变量的基本命令格式为:
●tssettimevar[,options]
●其中,tsset是“定义时间变量”的基本命令,timevar为用于标识时间序列数据的变量名,options代表其他选项。
●可用的options选项主要分两类,一类设定时间变量的单位(unitsoftimevar),一类设定时间变量的周期(periodoftimevar)。
表12.2给出了各个单位选项(unitoptions)。
幻灯片6
幻灯片7
●其中,默认规则意味着,如果事先通过format命令设定了timevar的显示格式为%t*格式,则不必再设定单位选项(unitoptions),stata会根据时间变量的显示格式自动获得时间变量的单位;否则,可以设定单位选项。
●周期选项(deltaoptions)设定时间变量相邻观测值之间的间隔时间为几个单位,表12.3给出了各个具体的选项。
幻灯片8
●下面,我们利用“tsexmp.dta”的数据,对tsset命令及选项做进一步说明。
●如果我们要设定时间变量为time,输入命令:
●tssettime
●进行时间变量的设定之后,stata会自动将数据按设定的时间变量从小到大排序,从而方便相关命令的使用。
如果要查看已设定的时间变量,可键入不带后缀的tsset命令。
在数据被重新排序之后,想要恢复按时间序列排序,也可以通过tsset命令实现。
也就是说,设定time为时间变量之后,如下两条命令会产生相同的效果。
●①tsset
●②sorttime
●在设定时间变量之后,我们可以保存一下数据,这样,下次使用时,就不必再重新设定时间变量。
幻灯片9
●
(2)调整时间设定的初始值
●我们注意到,变量time的起始值为1,事实上,我们可以通过函数将起始时间调整到任何一个我们想要的时间。
如过time=1代表2003年6月,那么我们可以生成一个新变量让其起始值为2003年6月。
输入命令:
●generatenewm=tm(2003m6)+time-1
●listtimenewmin1/5
●其中,第一步为生成新变量newm,并令其第一个值代表2003年6月。
函数tm()可将时间转换成stata系统默认的格式。
第二步列出变量time和newm的前5个值。
●我们可以将变量newm转换成%tm格式使其更易读。
键入命令:
●formatnewm%tm
●listtimenewmin1/5
●其中,format命令用于定义变量的格式。
幻灯片10
●之后,我们可以重新将newm设定为时间变量:
●tssetnewm
●当然,如果我们不先使用format命令,直接键入:
●tssetnewm,monthly或tssetnewm,format(%tm)
●也可以实现相同的效果。
●在前面的讲解中,我们假定time为月度变量,并使用了函数tm()以及格式%tm,与之对应,如果数据单位为毫秒、日、周、季度、半年、年,我们有相应的函数tc()、td()、tw()、tq()、th()、ty()以及相应的格式%tc、%td、%tw、%tq、%th、%ty。
幻灯片11
●(3)将字符串变量转换为时间变量
●在“tsexmp.dta”中,time1为字符串格式的变量,如果我们要将其变为时间变量,可以通过如下的命令实现:
●gendoublenewc=clock(time1,”MDYhms”)
●注意,我们这里将产生的新变量设为“双精度”(double)格式。
这是因为以毫秒为单位的时间非常大,如果使用默认的“float”格式,新变量newc将被四舍五入,造成结果的不精确甚至是错误。
因为变量time1是按照“月-日-年小时:
分:
秒”的格式呈现的,所以我们在clock()命令中使用选项”MDYhms”告诉stata数据的书写格式。
与clock命令对应,当数据的单位为日、周、月、季度、半年、年,我们有命令date()、weekly()、monthly()、quarterly()、halfyearly()、yearly();选项的格式依数据的具体书写格式而定。
幻灯片12
●在此之后,可以通过如下命令将newc设为时间变量。
●tssetnewc,clocktime
●其中,选项clocktime表明,我们设定时间序列数据的单位为毫秒。
●但事实上,数据是每隔20分钟记录一次的,这样,我们有必要将其周期变为20分,以方便滞后算子L、差分算子D等运算符号的使用。
选项delta()可以做到这一点。
命令为:
●tssetnewc,delta((1000*60*20))
●其中,选项delta()中的表达式(1000*60*20)表明,我们设定数据的周期为1000*60*20个单位,这里即1000*60*20毫秒,即20分钟。
幻灯片13
●2扩展时间区间
●扩展时间区间的基本命令格式为:
●tsappend,{add(#)|last(date|clock)tsfmt(string)}
●其中,选项add()指定要增加的观测值的个数。
如果不设定选项add(),就必须同时设定last(date|clock)和tsfmt(string)。
last()指定我们要将时间扩展到的日期,tsfmt()用于将last()选项中的日期转化成stata默认时间所对应的整数,可用的string包括tc、td、tw、tm、tq、th和ty。
需要注意的一点是,在使用tsappend命令之前必须先用tsset设置时间变量。
●例如,对于“tsexmp.dta”的数据,我们先按照前面所讲,设定时间变量:
●generatenewm=tm(2003m6)+time-1
●tssetnewm,monthly
●这时,时间变量的区间为2003年6月到2005年11月。
如果我们想增加12个观测值,可键入命令:
●tsappend,add(12)
●这样,时间变量被扩展到2006年11月。
幻灯片14
●当然,我们也可以使用另一种方式:
●tsappend,last(2006m11)tsfmt(tm)
●这里,选项last(2006m11)用于指定扩展后时间变量的最后一个观测值为2006年11月,tsfmt(tm)指定变量格式为月数据。
●如果时间变量有间隔(gaps),例如,在上面的例子中03年6月和03年9月之间缺失了两个月,tsappend命令也会自动补齐。
当然,对于有间隔(gaps)的时间变量,我们也可以通过专门的命令tsfill将其补齐。
命令格式为:
●tsfill
●在使用命令tsfill之前,也需要先用tsset定义时间序列。
幻灯片15
●3时间序列算子
●在进行时间序列分析时,我们经常要用到某变量的滞后值或差分值等,这可以通过时间序列算子实现。
常用的算子及其含义列于表12.4中。
幻灯片16
实验12-2:
相关图绘制与白噪声检验
●实验基本原理
幻灯片17
幻灯片18
●实验内容及数据来源
●本书附带光盘data文件夹下的“wpi1.dta”工作文件包括了1960年第1季度到1990年第4季度的美国批发价格指数的数据。
主要的变量包括:
t=时间,wpi=批发价格指数,ln_wpi=wpi的对数。
●利用这些数据,我们将讲解自相关函数和偏自相关函数的绘图以及白噪声的检验。
幻灯片19
●实验操作指导
●1计算并绘制自相关函数与偏自相关函数图
●计算自相关函数、偏自相关函数以及Q统计量的命令为:
●corrgramvarname[if][in][,corrgram_options]
●其中,corrgram代表“计算自相关与偏自相关函数以及Q统计量”的基本命令语句,varname代表要分析的变量的名称,if代表条件语句,in代表范围语句,corrgram_options代表其他选项。
表12.6列示了各主要选项。
幻灯片20
●此外,我们还可以对自相关和偏自相关图分别进行绘制。
●绘制带置信区间的自相关函数的命令为:
●acvarname[if][in][,ac_options]
●绘制带置信区间的偏自相关函数的命令为:
●pacvarname[if][in][,pac_options]
●表12.7给出了这两个命令的选项。
幻灯片21
●下面,我们对数据文件“wpi1.dta”中的变量ln_wpi计算自相关与偏自相关函数以及Q统计量的值。
输入命令:
●corrgramln_wpi,lags(20)
●其中,选项lags(20)表明设置滞后期为20。
●当然,我们也可以在变量名上加上滞后算子。
例如,我们要对ln_wpi的一阶差分值绘制带置信区间的自相关函数值和偏自相关函数值。
可输入命令:
●acD.ln_wpi
●pacD.ln_wpi
幻灯片22
●2白噪声检验
●corrgram命令可以同时汇报Q统计量,用于白噪声检验。
此外,我们还有专门的命令来进行白噪声检验。
●用Q统计量进行白噪声检验的基本命令为:
●wntestqvarname[if][in][,lags(#)]
●其中,wntestq代表“Q统计量白噪声检验”的基本命令语句,varname代表要分析的变量的名称,if代表条件语句,in代表范围语句,选项lags(#)用于设定滞后期为#。
●通过Bartlett检验来判断序列是否为白噪声的基本命令为:
●wntestbvarname[if][in][,tablelevel(#)]
●其中,wntestb代表“Bartlett白噪声检验”的基本命令语句,选项table表示用列表而非图形来展示结果,level(#)用于设置置信度。
幻灯片23
●下面,我们分别使用Q统计量和Bartlett检验来对序列D.ln_wpi进行白噪声的检验。
●用Q统计量检验的命令为:
●wntestqD.ln_wpi
●用Bartlett检验的命令为:
●wntestbD.ln_wpi
幻灯片24
实验12-3:
移动平均滤波与指数平滑法
●实验基本原理
幻灯片25
幻灯片26
幻灯片27
幻灯片28
●实验内容及数据来源
●本书附带光盘data文件夹下的“sales.dta”工作文件给出了某50个月的图书销售数据。
变量主要包括:
t=时间,sales=销售额。
●对于这些销售数据,我们想分析其随时间的变化趋势,并希望通过模型对其进行拟合及预测。
●这样,利用“sales.dta”的数据,我们来讲解移动平均滤波、单指数平滑法、双指数平滑法以及Holt-Winters平滑法的操作和相关的预测。
幻灯片29
●实验操作指导
●1移动平均滤波
幻灯片30
●对于“sales.dta”的销售数据,我们想把其分解成两部分:
信号和噪声。
通过移动平均滤波,我们可以消除噪声。
输入命令:
●tssmoothmasm=sales,window(212)
●其中,生成的平滑变量被命名为sm,选项window(212)说明我们利用两期滞后值、当期值和两期领先值来做移动平均,且各个值的权重相同。
●在进行移动平均滤波分析的时候,我们通常希望噪声中没有自相关。
下面,我们对其进行检验:
●gennoise=sales-sm
●acnoise
●这里,第一步生成一个新变量noise,其值为原序列与平滑序列之差,也就是噪声;第二步绘制变量noise的自相关图。
幻灯片31
●考虑重新指定权重,进行移动平均:
●tssmoothmasm2=sales,weights(12<3>21)
●这里,选项weight设置各个值的权重。
可以验证,这种形式的平滑之后,噪声没有自相关。
●我们可以将变量sm2和sales绘制到一个图上进行比较:
●linesm2salest
●这里,y轴变量为sm2和sales,x轴变量为t。
幻灯片32
●2单指数平滑法
幻灯片33
●下面,我们对变量sales用单指数平滑法进行平滑,并进行三期的预测:
●tssmoothexponentialse=sales,forecast(3)
●这里,生成的新变量被命名为se,选项forecast(3)表明我们要进行3期的预测。
●通过作图,我们可以对单指数平滑法的拟合程度有更为直观的认识:
●linesesalest
幻灯片34
●3双指数平滑法
●双指数平滑法的基本命令格式与单指数平滑法相似,为:
●tssmoothdexponential[type]newvar=exp[if][in][,options]
●其中,tssmoothdexponential代表“双指数平滑法”的基本命令语句。
可用的options选项与单指数平滑法也基本相同,详见表12.9。
只是选项s0()要设定两个参数为初始值,形式为s0(#1#2)。
●虽然单指数平滑法已经可以对变量sales较好地拟合,但这里我们再用双指数平滑法拟合一下,并比较其与两次单指数模型的拟合结果。
输入命令:
●tssmoothexponentialdoublese1=sales,p(0.5)s0(1031)
●tssmoothexponentialdoublese2=se1,p(0.5)s0(1031)
●tssmoothdexponentialdoublesd=sales,p(0.5)s0(10311031)
●其中,第一步对变量sales用单指数平滑法进行平滑,并生成平滑变量se1,选项p(0.5)用于指定平滑参数,s0(1031)用于设定初始值,这里,设定这两个选项是为了方便比较两种平滑方法的结果。
此外,double指定生成的新变量se1的类型为双精度。
命令的第二行是对变量se1用单指数平滑法进行平滑,并生成新变量se2。
第三步是用双指数平滑法对变量sales进行平滑。
幻灯片35
●因为单指数平滑法将起始值视为时间零点(time-zero)值,所以,在对单指数平滑序列再进行平滑时,我们共失去了两个观测值。
这样,我们生成变量se2的两期领先变量并与双指数平滑变量进行比较。
输入命令:
●generatedoublefse2=f2.se2
●listfse2sdin1/5
●其中,第一步为生成se2的两期领先变量,并将其命名为fse2。
注意,这里,变量类型double必不可少,否则,四舍五入会使变量值不精确,从而可能导致显示的结果不同。
第二步列出了变量fse2和sd的前5个值。
●与单指数平滑法不同一点的是,双指数平滑法的预测值与其平滑值不相同。
幻灯片36
●在实际的运用中,我们可以不必设定初始值和平滑参数,直接用默认的方法进行平滑或预测即可。
下面,我们用默认值进行平滑及预测,并作图比较。
输入命令:
●tssmoothdexponentialdoublesd1=sales
●tssmoothdexponentialdoublefsd1=sales,forecast(4)
●linesd1fsd1salest
幻灯片37
●4Holt–Winters平滑法
●
●下面,我们对变量sales用Holt–Winters平滑法进行拟合及预测:
●tssmoothhwintershw=sales,forecast(4)
●linesaleshwt
●其中,第一步是用Holt–Winters法平滑,并生成新变量hw;选项forecast(4)表明我们要进行4步预测。
第二步为作图,y轴为sales和hw,x轴为t。
幻灯片38
●我们在前面讲过,对于双指数平滑法,是否加forecast()选项会影响生成的序列值。
而对于Holt–Winters平滑法,是否有forecast()选项并不影响平滑值。
●此外,虽然多种方法都可以得到单变量时间序列的预测值,但在实际运用当中,Holt–Winters法还是使用得最多的。
幻灯片39
●5Holt–Winters季节平滑法
幻灯片40
●其中,如果不设定选项period(#),季节效应的周期会从tsset命令的选项daily,weekly,…,yearly中获得。
如果之前的tsset命令没有设定这类选项,则必须使用选项period()。
例如,数据为月度数据,而tsset命令没有设定选项monthly,那么,这里就必须使用选项period(12)。
此外,选项sn0_0(varname)和sn0_v(newvar)不可同时使用。
●因为销售数据sales并没有呈现季节效应,我们这里就不再举例说明了。
幻灯片41
实验12-4:
ARIMA模型
●实验基本原理
幻灯片42
幻灯片43
幻灯片44
幻灯片45
●实验内容及数据来源
●本书附带光盘data文件夹下的“wpi1.dta”工作文件给出了批发价格指数的季度数据。
主要的变量包括:
t=时间,wpi=批发价格指数,ln_wpi=wpi的对数。
●我们考虑用模型对批发价格指数的变动进行拟合,并对其未来值进行预测。
●利用“wpi1.dta”的数据,我们将讲解arima模型的拟合及预测。
幻灯片46
●实验操作指导
●1作图观察时间序列的趋势
●通常情况下,我们可以通过观察时间序列的趋势线对序列是否平稳有一个大致的认识。
键入命令:
●linewpit,yline(0)
●其中,yline(0)表示在y=0处做一条水平线作为参照。
●对其一阶差分作图:
●lined.wpit,yline(0)
●观察变量的自相关图和偏自相关图可以帮我们确定模型的阶数。
输入命令:
●acD.wpi
●pacD.wpi
●其中,第一步是绘制wpi一阶差分的自相关图,第二步绘制wpi一阶差分的偏自相关图。
幻灯片47
●2ARIMA回归的操作
●ARIMA模型的基本命令为:
●arimavarname,ar(numlist)ma(numlist)或arimavarname,arima(#p,#d,#q)
●完全的命令格式为:
●arimavarname[if][in][weight][,options]
●其中,arima代表“拟合ARIMA模型”的基本命令语句,varname代表要分析的变量的名称,if代表条件语句,in代表范围语句,weight代表权重语句,options代表其他选项。
主要的选项列于表12.11中。
幻灯片48
●其中,选项arima(#p,#d,#q)意味着,将变量进行d阶差分,并包括1到p阶自回归项以及1到q阶移动平均项。
幻灯片49
●对于序列wpi,我们判断应使用ARIMA(p,1,q)模型,而p、q阶数的判断则可以通过信息准则。
●首先假定模型为ARIMA(1,1,1),键入命令:
●arimawpi,arima(1,1,1)
●为了列示该模型的信息准则值,我们键入命令:
●estatic
幻灯片50
●下面,我们依次对wpi拟合ARIMA(2,1,1)、ARIMA(1,1,2)、ARIMA(2,1,2),并计算其信息准则,得到如表12.12所示的结果。
●可以看到,对于AIC准则和BIC准则,ARIMA(1,1,1)的值都是最小的,从而应该选择模型ARIMA(1,1,1)。
●在拟合完模型之后,我们要检验残差是否为白噪声。
输入命令:
●predictr,residual
●wntestqr
●其中,第一步是对残差进行预测,并将其命名为r;第二步检验变量r是否为白噪声。
幻灯片51
●3模型的改进
●ARIMA(1,1,1)对模型的拟合已经不错,但鉴于wpi一阶差分的方差比较大(见图12.21),我们考虑对wpi取对数重新进行拟合。
●因为wpi为季度数据,考虑到本年的某一季度对下一年同一季度有一定影响,我们在ar
(1)、ma
(1)项之外,再加入ma(4)项来拟合剩余的季度效应。
●键入命令:
●arimaD.ln_wpi,ar
(1)ma(14)
●为了确认模型的改进,我们来看一下信息准则值,键入:
●estatic
幻灯片52
●4模型的预测
●对模型进行预测的基本命令为:
●predict[type]newvar[if][in][,statisticoptions]
●其中,predict代表“预测”的基本命令,type代表新变量的类型,newvar代表生成的新变量的名称,if代表条件语句,in代表范围语句,statistic代表可用的统计量,options代表其他选项。
主要的statistic统计量被列示在表12.13中。
幻灯片53
幻灯片54
●为了得到对预测结果的直观认识,键入命令:
●listD.ln_wpixbsxbln_wpiysyin1/10
幻灯片55
实验12-5:
SARIMA模型
●实验基本原理
幻灯片56
幻灯片57
●实验内容及数据来源
●Box,Jenkins,andReinsel(1994)给出了一个乘积SARIMA的例子,主要变量包括:
air=1949年1月到1960年12月的国际航线乘客数量,t=时间(为该数据文件的时间变量),time=另一种格式的时间。
全部数据见本书附带光盘data文件夹下的“airpsn.dta”工作文件。
●利用“airpsn.dta”的数据,我们讲解SARIMA模型的拟合及预测。
幻灯片58
●实验操作指导
●1模型定阶
●为了使数据更平稳,我们对变量air取对数:
●genlnair=ln(air)
●做lnair的时间趋势图:
●linelnairt
●对lnair进行1阶差分和12阶季节差分,并作出差分后的序列的时间趋势图:
●lineDS12.lnairt,yline(0)
●其中,DS12.lnair表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本 时间 序列 分析