时间序列计量经济学模型
经济分析中所用到的三大类重要数据中,时间序列数据是其中最常见,也是最重要的一类数据。迄今为止,对时间序列的分析是通过建立因果关系为基础的结构模型。时间序列模型反映动态特征,通常是运用时间序列的过去值、当期值及滞后扰动项的加权和建立模型来“解释”时间序列的变化规律。时间序列资料具有相关性,大部分资料具有非平稳性,而无论是单方程计量经济学模型还是联立方程计量经济学模型,这种分析背后有一个隐含的假设,即这些数据是平稳的(stationary)。
------目录-------
一. 简介
1.时间序列数据处理
二. 时间序列的平稳性及其检验 1.非平稳时间序列简介 2.单位根检验
3.非平稳时间序列的平稳化 三. 平稳时间序列模型 1.AR(P)过程 2.MA(q)过程 3.ARIMA模型
四.协整与误差修正模型 五.条件异方差
六.向量自回归模型(VAR)
一、简介
1时间序列数据的处理 1.1
cd C:\\stata10\\Net_course\\ B6_TimeS
1)声明时间序列:tsset 命令
use gnp96.dta, clear list in 1/20
gen Lgnp = L.gnp
tsset date list in 1/20
gen Lgnp = L.gnp
2)检查是否有断点:tsreport, report
use gnp96.dta, clear tsset date
tsreport, report drop in 10/10 list in 1/12
tsreport, report
tsreport, report list /*列出存在断点的样本信息*/
3)填充缺漏值:tsfill
tsfill
tsreport, report list list in 1/12
4)追加样本:tsappend
use gnp96.dta, clear tsset date
list in -10/-1 sum
tsappend , add(5) /*追加5个观察值*/ list in -10/-1 sum
5)应用:样本外预测: predict
reg gnp96 L.gnp96 predict gnp_hat list in -10/-1
6)清除时间标识: tsset, clear
tsset, clear
1.2变量的生成与处理
1)滞后项、超前项和差分项 help tsvarlist
use gnp96.dta, clear tsset date
gen Lgnp = L.gnp96 /*一阶滞后*/ gen L2gnp = L2.gnp96
gen Fgnp = F.gnp96 /*一阶超前*/ gen F2gnp = F2.gnp96
gen Dgnp = D.gnp96 /*一阶差分*/ gen D2gnp = D2.gnp96 list in 1/10 list in -10/-1
2)产生增长率变量: 对数差分
gen lngnp = ln(gnp96) gen growth = D.lngnp
gen growth2 = (gnp96-L.gnp96)/L.gnp96
gen diff = growth - growth2 /*表明对数差分和变量的增长率差别很小*/ list date gnp96 lngnp growth* diff in 1/10
1.3日期的处理
日期的格式 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
1)使用 tsset 命令指定显示格式
use B6_tsset.dta, clear tsset t, daily list
use B6_tsset.dta, clear tsset t, weekly list
2)指定起始时点 cap drop month
generate month = m(1990-1) + _n - 1 format month %tm
list t month in 1/20
cap drop year
gen year = y(1952) + _n - 1 format year %ty
list t year in 1/20
3)自己设定不同的显示格式
日期的显示格式 %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)
样式1:
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
----------------------------------- 样式2:
Format Sample date in format ---------------------------------- %d 11jul1948 YlCY 11jul1948 YlY 11jul48
%dM_d,_CY July 11, 1948 Y_M_CY 11 July 1948 %dN/D/Y 07/11/48 Y/N/Y 11/07/48 %dY/N/D 48/07/11 %dN-D-CY 07-11-1948
----------------------------------
clear
set obs 100
gen t = _n + d(13feb1978) list t in 1/5
format t üY-N-D /*1978-02-14*/ list t in 1/5
format t üy_n_d /*1978 2 14*/ list t in 1/5
use B6_tsset, clear list
tsset t, format(%twCY-m) list
4)一个实例:生成连续的时间变量 use e1920.dta, clear list year month in 1/30 sort year month gen time = _n tsset time
list year month time in 1/30
generate newmonth = m(1920-1) + time - 1 tsset newmonth, monthly
list year month time newmonth in 1/30
1.4图解时间序列 1)例1: clear
set seed 13579113
sim_arma ar2, ar(0.7 0.2) nobs(200) sim_arma ma2, ma(0.7 0.2) tsset _t
tsline ar2 ma2