当前位置:文档之家› Stata时间序列笔记

Stata时间序列笔记

文档结尾是FAQ和var建模的15点注意事项【梳理概念】向量自回归(VAR, Vector Auto regression)常用于预测相互联系的时间序列系统以及分析随机扰动对变量系统的动态影响。

V AR模型:V AR方法通过把系统中每一个内生变量,作为系统中所有内生变量的滞后值的函数来构造模型,从而回避了结构化模型的要求。

V AR模型对于相互联系的时间序列变量系统是有效的预测模型,同时,向量自回归模型也被频繁地用于分析不同类型的随机误差项对系统变量的动态影响。

如果变量之间不仅存在滞后影响,而不存在同期影响关系,则适合建立V AR模型,因为V AR模型实际上是把当期关系隐含到了随机扰动项之中。

协整:Engle和Granger(1987a)指出两个或多个非平稳时间序列的线性组合可能是平稳的。

假如这样一种平稳的或的线性组合存在,这些非平稳(有单位根)时间序列之间被认为是具有协整关系的。

这种平稳的线性组合被称为协整方程且可被解释为变量之间的长期均衡关系。

* 第六讲时间序列分析*---- 目录-----**-- 简介* 6.1 时间序列数据的处理*-- 平稳时间序列模型* 6.2 ARIMA 模型* 6.3 V AR 模型*-- 非平稳时间序列模型——近些年得到重视,发展很快* 6.4 非平稳时间序列简介* 6.5 单位根检验——检验非平稳* 6.6 协整分析——非平稳序列的分析*-- 自回归条件异方差模型* 6.7 GARCH 模型——金融序列不同时点上序列的差异反映动态关系的时间数据顺序不可颠倒cd d:\stata10\ado\personal\Net_Course\B6_TimeS*=======================* 时间序列数据的处理help time*=======================* 声明时间序列:tsset 命令use gnp96.dta, clearlist in 1/20gen Lgnp = L.gnp(此时没办法生成之后一阶的变量,因为没有设定时间变量)tsset date(设定date为时间变量,timeseries)list in 1/20gen Lgnp = L.gnp96滞后一期,所以会产生1个缺失值●检查是否有断点——肉眼看不方便,用命令检查use gnp96.dta, cleartsset datetsreport, reportdrop in 10/10 ——去掉断点成连续的,才能继续进行list in 1/12tsreport, reporttsreport, report list/*列出存在断点的样本信息*/●填充缺漏值——接着上一步,看看stata如何填充缺漏值。

一般用前面的数据的平均值或预测等Tsfill(以缺漏值的形式)tsreport, report listlist in 1/12* 追加样本——有时候追加样本不是为了追加新的值,而是为了预测(见应用)use gnp96.dta, cleartsset datelist in -10/-1sumtsappend , add(5)/*追加5个观察值*/list in -10/-1 增加的样本值都是缺漏的可以手动输入sum* 应用:样本外预测reg gnp96 L.gnp96predict gnp_hatlist in -10/-1——接上一步这样增加的样本值的预测值就显示出来了(前提是追加了样本值)* 清除时间标识tsset, clear——若数据的形态有所改变就清除*---------------------* 变量的生成与处理*---------------------滞后L—lag 前导F—forward 差分D-difference*--- 滞后项、超前项和差分项help tsvarlistuse gnp96.dta, cleartsset dategen Lgnp = L.gnp96 /*一阶滞后*/gen L2gnp = L2.gnp96 /*二阶滞后*/gen Fgnp = F.gnp96gen F2gnp = F2.gnp96gen Dgnp = D.gnp96gen D2gnp = D2.gnp96list in 1/10list in -10/-1D,L,F可以组合生成变量gen 新变量名= DL.变量名先滞后再差分*---产生增长率变量gen 变量名=D.ln(gnp96): 对数差分——得到近似的增长率先设定时间变量tsset dategen lngnp = ln(gnp96)gen growth = D.lngnp(得到近似的增长率)上面两步的简写形式(gen growth=D.ln(gnp96))——该简化方法在stata12中不可行gen growth2 = (gnp96-L.gnp96)/L.gnp96——增长率的最基本定义gen diff = growth - growth2——若对数差分和真正的增长率接近,diff约等于0list date gnp96 lngnp growth* diff in 1/10*---------------------* 日期的处理*---------------------*--- 日期的格式help tsfmt** 基本时点:整数数值,如-3, -2, -1, 0, 1, 2, 3 ....* 1960年1月1日,取值为0;* 显示格式:* -------------------------------* 定义含义默认格式* -------------------------------* %td 日%tdDlCY* %tw 周%twCY!ww* %tm 月%tmCY!mn* %tq 季度%tqCY!qq* %th 半年%thCY!hh* %ty 年%tyCY* -------------------------------* 使用tsset 命令指定显示格式use B6_tsset.dta, cleartsset t, dailylistuse B6_tsset.dta, cleartsset t, weekly——定义基本时点1.2.3间的间隔是日、周、年等list* 相同的基本时点,采用不同的方式显示会有不同的效果clearset obs 100gen t = _nreplace t = t-3local format "td tw tm tq th ty"foreach f of local format{gen t_`f' = tformat t_`f' %`f'}list in 1/20* 说明:同样的数值,采用不同的显示方式,会有完全不同的含义* 指定起始时点cap drop monthgenerate month = m(1990-1) + _n - 1format month %tmlist month in 1/20cap drop yeargen year = y(1952) + _n - 1format year %tylist t year in 1/20* 设定不同的显示格式help dfmt** 日期的显示格式%d (%td) 定义如下:* %[-][t]d<描述特定的显示格式>** 具体项目释义:* “<描述特定的显示格式>”中可包含如下字母或字符* c y m l n d j h q w _ . , : - / ' !c* C Y M L N D J W* 定义如下:/*c and C 世纪值(个位数不附加/附加0)y and Y 不含世纪值的年份(个位数不附加/附加0)m 三个英文字母的月份简写(第一个字母大写)M 英文字母拼写的月份(第一个字母大写)n and N 数字月份(个位数不附加/附加0)d and D 一个月中的第几日(个位数不附加/附加0)j and J 一年中的第几日(个位数不附加/附加0)h 一年中的第几半年(1 or 2)q 一年中的第几季度(1, 2, 3, or 4)w and W 一年中的第几周(个位数不附加/附加0)_ display a blank (下划线). display a period(句号), display a comma(逗号): display a colon(冒号)- display a dash (短线)/ display a slash(斜线)' display a close single quote(右引号)!c display character c (code !! to display an exclamation point)*/** 例如:* Format Sample date in format* -----------------------------------* %td 07jul1948* %tdM_d,_CY July 7, 1948* %tdY/M/D 48/07/11* %tdM-D-CY 07-11-1948* %tqCY.q 1999.2* %tqCY:q 1992:2* %twCY,_w 2010, 48* -----------------------------------* 又如:* Format Sample date in format* ----------------------------------* %d 11jul1948* %dDlCY 11jul1948* %dDlY 11jul48* %dM_d,_CY July 11, 1948* %dd_M_CY 11 July 1948* %dN/D/Y 07/11/48* %dD/N/Y 11/07/48* %dY/N/D 48/07/11* %dN-D-CY 07-11-1948* ----------------------------------clearset obs 100gen t = _n + d(13feb1978)(第一个数显示的是1978年2月14对应的数值) list t in 1/5format t %dCY-N-D /*1978-02-14*/list t in 1/5format t %dcy_n_d /*1978 2 14*/list t in 1/5use B6_tsset, clearlisttsset t, format(%twCY-m)list* 一个实例:生成连续的时间变量use e1920.dta, clearlist year month in 1/30sort year monthgen time = _ntsset timelist year month time in 1/30generate newmonth = m(1920-1) + time - 1tsset newmonth, monthlylist year month time newmonth in 1/30*--- 处理日期的函数help dates_and_timeshelp time-series functions* 以下适用于STA TA9.2 版本*-- 时间序列日期概览help tdates*-- 将文字变量转换为日期help dlyfcns*-- 利用年、月、季度转换日期help dlyfcns*-- 日期转换函数help dcfcns*-----------------------* 图解时间序列*-----------------------* help tsline* 例1:clearset seed 13579113sim_arma ar2, ar(0.7 0.2) nobs(200)sim_arma ma2, ma(0.7 0.2)tsset _ttsline ar2 ma2* 亦可采用twoway line 命令绘制,但较为繁琐twoway line ar2 ma2 _t(前面两个为纵坐标,后面的为横坐标)* 例2:增加文字标注sysuse tsline2, cleartsset day#delimit ;。

相关主题