-
运用
stata
进行
时间序列分析
1
时间序列模型
结构模型虽然有助于人
们理解变量之间的影响关系,但模
型的预测精度比较
低。在一些大规模的联立方程中,情况更是如此。而早期的
单变量时间序
列模型
有较少的参数却可以得到非常精确的预测,因此随着
Box
and
Jenkins(1984)
等
p>
奠基性的研究,时间序列方法得到迅速发展。从单变量时
间序列到多
元时间序列
模型,从平稳过程到非平稳过程,时间序列分析方
法被
广泛应用于经济、
气象和
过程控制等领域。
本章将介绍如下时间序列分析方法,
ARIMA
模型、
ARCH
族
模型、
VAR
模型、
VEC
模型、单位根检验及协整检验等。
一、基本命令
1.1
时间序列数据的处理
1)
声明时间序列:
tsset
命令
use
, clear
list in 1/20 gen Lgnp = tsset date list in 1/20
gen
Lgnp
=
2)
检查是否有断点:
tsreport,
report
use
,
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
, clear tsset date list in -10/-1 sum
tsappend , add(5)
/*
追加
5
个观察值
*/ list in -10/-1
sum 2 5)
应用:样本外预测:
predict reg gnp96 96 predict gnp_hat
list in -10/-1
6)
清除时
间标识:
tsset, clear tsset, clear
1.2
变量的生成与处理
1)
滞后项、超前项和
差分项
help
tsvarlist
use
,
clear
tsset
date
gen
Lgnp
=
96
/*
一阶滞后
*/ gen
L2gnp = 96 gen Fgnp = 96
/*
一阶超前
*/ gen
F2gnp
=
96
gen
Dgnp
=
96
/*
一阶差分
*/
gen
D2gnp
=
96
list
in 1/10
list in -10/-1 2)
产生增长率变量:
对数差分
gen lngnp = ln(gnp96)
gen growth = gen growth2 = (96)/96 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
;
3
显示格式:
定
义
含
义
默
p>
认
格
式
%td
日
%tdDlCY
%tw
周
%twCY!ww
%tm
月
%tmCY!mn
%tq
季度
%tqCY!qq %th
半年
%thCY!hh %ty
年
%tyCY
1
)使用
tsset
命令指定显示格式
use B6_, clear
tsset t, daily list use
B6_, 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<
p>
描述特定的显示格式
>
具体项目释义:
“
< br><
描述特定的显示格式
>
”中可
包含如下字母或字符
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
三个英文字母的月
份简写
(
第一个字母大写
)
4 M
英文字母拼写的月份
(
第一个字母大写
)
n and N
数字月份
(
个位数不附加
/
附加
0)
d and D <
/p>
一个月中的第几日
(
个位数不附加
/
附加
0)
j
and J
一年中的第几日
(
个位数
不附加
/
附加
0)
h
一年中的第几半年
(1 or
2)
q
一年中的第几季度
(1,
2, 3, or 4)
w and W
一年中的第几周<
/p>
(
个位数不附加
/
附加
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
%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
---------------------------------- clear set obs
100 5 gen t
= _n + d(13feb1978)
list t in 1/5 format t %dCY-N-D
/*1978-02-14*/ list t in 1/5 format
t
%dcy_n_d /*1978 2 14*/ list t in 1/5 use B6_tsset,
clear list tsset t,
format(%twCY-m)
list
4
)一个实例:生成连续的时间变量
use
,
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 *
亦可采用
twoway line
命令绘制,但较为繁
琐
twoway
line
ar2
ma2
_t
2
)
例
2
:
增加文字标注
sysuse
tsline2,
clear
tsset
day tsline calories,
ttick(28nov2002 25dec2002, tpos(in))
///
ttext(3470
28nov2002
///
3470
25dec2002
orient(vert))
6
3
)
例
3
:
p>
增加两条纵向的标示线
sysuse
tsline2,
clear
tsset
day
tsline
calories, tline(28nov2002 25dec2002)
*
或采用
twoway line
命令
local d1 = d(28nov2002)
local d2 = d(25dec2002)
line
calories day, xline(`d1' `d2')
4
)例
4
:改变标签
tsline calories, tlabel(, format(%tdmd))
ttitle(
tsline calories,
tlabel(, format(%td))
二、
ARIMA
模型和
SARMIA
模型
ARIMA
模型的基本思想是:将预测对象随时
间推移而形成的数据序列视为一
个随机序列,用一定的数学模型来近似描述这
个序列
。这个模型一旦被识别后就
可以从时间序列的过去值及现在值
来预测未
来值。
ARIMA(1,1)
模型:
t t t t y y
ε
θ
ε
ρ
α
+
+ + =
?
6
?
1
?
6
?
1 1
1 2.1
ARIMA
模型
预测的基本程序:
1)
根据时间序列的散点图、
自相关
函数和偏自相关函数图以
ADF
单位根检验其
< br>
方差、趋势及其季节性变化规律,对序列的平稳性进行识别。一般来讲,经
p>
济
运行的时间序列都不是平稳序列。
2)
对非平稳序列进行平稳化处理。
如果数据序列是非平稳的,
并存在一定的增
< br>长或下降趋势,则需要对数据进行差分处理,如果数据存在异方差,则需对
p>
数
据进行技术处理,直到处理后的数据的自相关函数值和偏相关函数
值无显
著地
异于零。
3)
根据时间序列模型的识别规则,
建立相应的模型。
若平稳序列的偏相关函数
是截尾的,而自相关函数是拖尾的,可断定序列适合
AR
模型;若平稳序列
的
偏相关函数是拖尾的,而自相关函数是截尾的,则可断定序列适合
MA
模
型;
若平稳序列的偏相关函数和自相关函数均是拖尾的,则序列适合
ARMA
模型。
4)
进行参数估计,检验是否具有统计意义。
5)
进行假设检验,诊断残差序列是否为白噪声。
6)
利用已通过检验的模型进行预测分析。
2.2 ARIMA
模型中
AR
和
MA
阶数的确定方法:
clear sim_arma y_ar, ar(0.9)
nobs(300)
line y_ar _t,
yline(0)
ac y_ar
/*AR
过程的
ACF
具有“拖尾”特征,长期记忆
*/ pac y_ar
/*AR
过程的
PACF
具有“截尾”特征
*/ 7 sim_arma y_ma,
ma(0.8)
line y_ma _t, yline(0)
ac y_ma /*MA
过程的
ACF
具有“截尾”特征,短期记忆
*/ pac y_ma
/*MA
过程的
PACF
具有锯齿型“拖尾”特征
*/ 2.3
ARIMA
模型中涉及的检验:
use
/data/r11/wpi1
,clear
tsset
t
gen
d_wpi = dfuller wpi
/*
单位根检验
*/ dfuller d_wpi
wntestq wpi /*
白噪声检验:
Q
检验
*/ wntestq d_wpi wntestb
wpi,table /*
累积统计
Q
检验
并以列表显示
*/ wntestb
d_wpi,table wntestb wpi
/*
画出累积统计量
Q*/
wntestb d_wpi
/*
画出累积统计量
Q*/ corrgram wpi
,lag(24)
/*
自相关、偏相关、
Q
统计量
*/ corrgram d_wpi
,lag(24)
2.4 ARIMA
模型和
SARIMA
模型的估计
ARIMA
模型:
use
/data/r11/wpi1
,clear
gen
d_wpi
=
arima wpi,arima(1,1,1)
/*
没有漂移项即常数项的命令是
noconstant */ *
或者下面的这种形式也
行
arima
,ar(1)
ma(1)
SARIMA
模型:
use
/data/r11/air2,clear
line
air
t
generate lnair=ln(air)
arima
lnair,arima(0,1,1)
sarima(0,1,1,12)
noconstant 2.5
ARIMA
模型的一个真实应用——美国批发物价指数
use
/data/r11/wpi1 ,clear dfuller wpi
/*
单位根检
验
*/ gen
d_wpi = dfuller d_wpi 8 arima wpi,arima(1,1,1)
/*
没有漂移项即常数项的命令是
noconstant */ *
或者下面的这种形式也
行
arima
,ar(1)
ma(1)
ac
_wpi,ylabels(-.4(.2).6)
pac
_wpi,ylabels(-.4(.2).6)
arima
_wpi,ar(1)
ma(1/4)
estat
ic
/*
LL
越大越好
,
AIC
和
BIC
越小越好
*/
arima
_wpi,ar(1)
ma(1 4)
/*
季节效应
*/ estat
ic *
残差检验
predict r,res
wntestq r /*
白噪声
检验:
Q
检验
*/
wntestb
r,table
/*
累积统计
Q
检验并以列表显示
*/
wntestb
r
/*
画出累积统计量
Q*/
corrgram r ,lag(24)
/*
自相关、偏相
关、
Q
统计量
*/ *
样本内预测
predict y_hat0 /*
y
的拟
合值
*/ *
样本外预测
list in -15/-1
tsappend, add(8)
list in -15/-1 predict
y_hat1 /* y
的样本外一步预测值
*/
list in
-15/-1 gen Dln_wpi = _wpi sum
predict y_hat_dy0, dynamic(124)
/*
动
态
预
测
*/
predict
y,y
/*
对
未
差
分
变
量
的
预
测
*/
predict
fy,y
dynamic(124)
gen fwpi=exp(fy)
/*
实际
wpi
的预测值
*/ gen
ywpi=exp(y)
line wpi fwpi ywpi t in
-20/-1 9
三、
ARCH
模型
传统的计量经济学对
时间序列变量的第二个假设:
假定时间序列变量的波动
幅度
(方差)
是固定的,
不符合实际,比如,人们早就发现股票收益的波动幅度
是随时间而变化的,并
-
-
-
-
-
-
-
-
-
上一篇:语言学学名词解释教学文稿
下一篇:住院病历中英文对照