Loading...
墨滴

thomas

2021/04/09  阅读:39  主题:橙心

stata时间序列基本命令

stata 时间序列分析的各种命令

结构模型虽然有助于人们理解变量之间的影响关系,但模型的预测精度比较低。在一些大规模的联立方程中,情况更是如此。而早期的单变量时间序列模型有较少的参数却可以得到非常精确的预测,因此随着Box and Jenkins(1984)等奠基性的研究,时间序列方法得到迅速发展。从单变量时间序列到多元时间序列模型,从平稳过程到非平稳过程,时间序列分析方法被广泛应用于经济、气象和过程控制等领域。本章将介绍如下时间序列分析方法,ARIMA模型、ARCH族模型、VAR模型、VEC模型、单位根检验及协整检验等。

一、基本命令

1.1时间序列数据的处理

1)声明时间序列:

tsset命令
use gnp96.dta, clear 
list in 1/20 
gen Lgnp = L.gnp
tsset date list in 1/20 

2)检查是否有断点:

tsreport, reportuse gnp96.dta, clear 
tsset date
tsreport, report 
drop in 10/10 
list in 1/12 
tsreport, reporttsreport, 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, clear0

1.2变量的生成与处理

1)滞后项、超前项和差分项

help tsvarlist
use gnp96.dta, clear 
tsset date
gen Lgnp = L.gnp96/*─阶滞后*/
gen L2gnp = L2.gnp96gen 
Fgnp = F.gnp96/*—阶超前*/
gen F2gnp = F2.gnp96
gen Dgnp = D.gnp96/*—阶差分*/
gen D2gnp = D2.gnp96 
list in 1/10 
list in -10/-12/产生增长率变量:对数差分
gen Ingnp = In(gnp96) 
gen growth = D.Ingnpgen growth2 = (gnp96-L.gnp96)/L.gnp96
gen diff = growth - growth2/*表明对数差分和变量的增长率差别很小*/
list date gnp96 Ingnpgrowth* 
diff in 1/10

1.3日期的处理

日期的格式

help tsfmt

基本时点:整数数值,如-3,-2,-1,0,1,2,3....1960年1月1日,取值为0;

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 mln djh qw_.,:- / '

!c CYMLNDJW定义如下:
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)

比如

set obs 100
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 214*/ 
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

*亦可采用twoway line命令绘制,但较为繁琐

twoway line ar2 ma2 _t

2)例2:增加文字标注

sysuse tsline2, clear 
tsset day
tsline calories, ttick(28nov2002 25dec2002, tpos(in)) text(3470 28nov2002 "thanks") (3470 25dec2002 "x-mas", orient(vert))

####3)例3:增加两条纵向的标示线

sysuse tsline2, clear tsset day


原文链接在此:https://www.520z-2.com/huati/742328.html,感谢分享者

thomas

2021/04/09  阅读:39  主题:橙心

作者介绍

thomas