Stata时间序列笔记
- 格式:doc
- 大小:3.63 MB
- 文档页数:113
时间序列模型结构模型虽然有助于人们理解变量之间的影响关系,但模型的预测精度比较低。
在一些大规模的联立方程中,情况更是如此。
而早期的单变量时间序列模型有较少的参数却可以得到非常精确的预测,因此随着Box and Jenkins(1984)等奠基性的研究,时间序列方法得到迅速发展。
从单变量时间序列到多元时间序列模型,从平稳过程到非平稳过程,时间序列分析方法被广泛应用于经济、气象和过程控制等领域。
本章将介绍如下时间序列分析方法,ARIMA模型、ARCH族模型、VAR模型、VEC模型、单位根检验及协整检验等。
一、基本命令1.1时间序列数据的处理1)声明时间序列:tsset 命令use gnp96.dta, clearlist in 1/20gen Lgnp = L.gnptsset datelist in 1/20gen Lgnp = L.gnp2)检查是否有断点:tsreport, reportuse gnp96.dta, cleartsset datetsreport, reportdrop in 10/10list in 1/12tsreport, reporttsreport, report list /*列出存在断点的样本信息*/3)填充缺漏值:tsfilltsfilltsreport, report listlist in 1/124)追加样本:tsappenduse gnp96.dta, cleartsset datelist in -10/-1sumtsappend , add(5) /*追加5个观察值*/list in -10/-1sum5)应用:样本外预测: predictreg gnp96 L.gnp96predict gnp_hatlist in -10/-16)清除时间标识: tsset, cleartsset, clear1.2变量的生成与处理1)滞后项、超前项和差分项 help tsvarlistuse gnp96.dta, cleartsset dategen Lgnp = L.gnp96 /*一阶滞后*/gen L2gnp = L2.gnp96gen Fgnp = F.gnp96 /*一阶超前*/gen F2gnp = F2.gnp96gen Dgnp = D.gnp96 /*一阶差分*/gen D2gnp = D2.gnp96list in 1/10list in -10/-12)产生增长率变量: 对数差分gen lngnp = ln(gnp96)gen growth = D.lngnpgen growth2 = (gnp96-L.gnp96)/L.gnp96gen diff = growth - growth2 /*表明对数差分和变量的增长率差别很小*/ list date gnp96 lngnp growth* diff in 1/101.3日期的处理日期的格式 help tsfmt基本时点:整数数值,如 -3, -2, -1, 0, 1, 2, 3 ....1960年1月1日,取值为 0;1)使用 tsset 命令指定显示格式use B6_tsset.dta, cleartsset t, dailylistuse B6_tsset.dta, cleartsset t, weeklylist2)指定起始时点cap drop monthgenerate month = m(1990-1) + _n - 1format month %tmlist t month in 1/20cap drop yeargen year = y(1952) + _n - 1format year %tylist t year in 1/203)自己设定不同的显示格式日期的显示格式 %d (%td) 定义如下:%[-][t]d<描述特定的显示格式>具体项目释义:“<描述特定的显示格式>”中可包含如下字母或字符c y m l nd j h q w _ . , : - / ' !cC Y M L ND 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%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)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)list4)一个实例:生成连续的时间变量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/301.4图解时间序列1)例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 _t2)例2:增加文字标注sysuse tsline2, cleartsset daytsline calories, ttick(28nov2002 25dec2002, tpos(in)) /// ttext(3470 28nov2002 "thanks" ///3470 25dec2002 "x-mas", orient(vert)) 3)例3:增加两条纵向的标示线sysuse tsline2, cleartsset daytsline 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("Date (2002)") tsline calories, tlabel(, format(%td))二、ARIMA 模型和SARMIA 模型ARIMA 模型的基本思想是:将预测对象随时间推移而形成的数据序列视为一个随机序列,用一定的数学模型来近似描述这个序列。
第二课:平稳性检验重点:1)平稳的基本含义及扩展2)制图的命令3)单位根检验一,平稳的基本含义及其扩展:1, 基本含义:平稳(stationary ),在本书中分析的都是弱/宽平稳,也称为协方差平稳(covariance stationary )即:1)μ=t Ex 2)22)(σ=t x E3)协方差只与时滞有关,而与所处时刻无关 即j j t t x x E γ=-)(2,非平稳产生的原因:1)奇异点(outlier )2)随机游走(Random Walk )3)漂移(Drift )4)趋势(Trend )5)方差变化(Changing Variance )。
时序图是判别上述五种情形最为直接和简便的方法。
单位根检验(Unit Root )检验的是2),3),4)种情形3,DF/ADF 检验的三种情形分别是:无漂移项的自回归过程(又称为 差分平稳过程difference stationary );带漂移项的自回归过程,带趋势项的自回归过程(这类过程又称为 趋势平稳Trend Stationary )二,制图命令:Twoway Historgram三,单位根检验UNIT ROOT Test命令:dfuller dfgls 适用于同方差场合pperron 适用于异方差场合检验结果表示为:t p t p t t t x x x x εββρμ+∇++∇++=∇---+1111...关键:看懂软件运行结果格式:Dfuller varname [if] [in] [, options]options Description---------------------------------------------------------------------------------------noconstant suppress constant term in regressiontrend include trend term in regressiondrift include drift term in regressionregress display regression tablelags(#) include # lagged differences---------------------------------------------------------------技巧:lags(#)的选择,是艺术,不是科学。
经济数据的特点与类型。
1、横截面数据:多个经济个体的变量在同一时间点上的取值,如2012年中国各省的GDP2、时间数列数据:指的是某个经济个体的变量在不同时点上的取值,如1978-2012年山东省每年的GDP3、面板数据:多个经济个体的变量在不同时点上的取值,如1978-2012年中国各省的GDP 小样本OLS(最小二乘法):单一方程线性回归最常见方法条件:解释变量与扰动项正交、扰动项无自相关、同方差。
拟合优度:衡量线性回归模型对样本数据的拟合程度(R2),越高说明模型拟合程度越好。
单系数T检验:对回归方程扰动项的具体概率进行假设显著性水平进行检验F检验:整个回归方程是否显著STATA操作简介:如果数据中包含1949-10-01或1949/10/01的时间变量,导入stata后可能会被视为字符串,因此对于日度数据,可以使用命令gen newvar=date(varname,YMD),将其转换为整数日期变量,其中YMD说明原始数据的格式为年月日,如果原始数据的格式为月日年则使用MDY;对于月度数据则gen newvar=monthly(varname,YM)。
.describe:数据的概貌.drop keep:删除和保留.su:统计特征Pwcorr:变量之间相关系数Star(.05):5%显著性水平gen:产生g intc=log(tc):取自然对数. reg:OLS回归.Vce:协方差矩阵reg。
,noc表示在进行回归时不要常数项大样本OLS:只要求解释变量与同期的扰动项正交即可Robust:稳健标准误,如果存在异方差,则应使用稳健标准误最大似然估计法:如果回归方程存在非线性,则使用最大似然估计法(MLE )或非线性最小二乘法(NLS )三类在大样本下渐进等价的统计检验:Wald test LR (似然比检验) LM操作步骤如下:sysuse auto (调用数据集)Hist mpg ,normal (画变量mpg 的直方图,并与正态密度比较)D e n s i t y直方图显示,变量mpg 的分布于正态分布有一定差距。
时间序列模型结构模型虽然有助于人们理解变量之间的影响关系,但模型的预测精度比较低。
在一些大规模的联立方程中,情况更是如此。
而早期的单变量时间序列模型有较少的参数却可以得到非常精确的预测,因此随着Box and Jenkins(1984)等奠基性的研究,时间序列方法得到迅速发展。
从单变量时间序列到多元时间序列模型,从平稳过程到非平稳过程,时间序列分析方法被广泛应用于经济、气象和过程控制等领域。
本章将介绍如下时间序列分析方法,ARIMA模型、ARCH族模型、VAR模型、VEC模型、单位根检验及协整检验等。
一、基本命令1.1时间序列数据的处理1)声明时间序列:tsset 命令use gnp96.dta, clearlist in 1/20gen Lgnp = L.gnptsset datelist in 1/20gen Lgnp = L.gnp2)检查是否有断点:tsreport, reportuse gnp96.dta, cleartsset datetsreport, reportdrop in 10/10list in 1/12tsreport, reporttsreport, report list /*列出存在断点的样本信息*/3)填充缺漏值:tsfilltsfilltsreport, report listlist in 1/124)追加样本:tsappenduse gnp96.dta, cleartsset datelist in -10/-1sumtsappend , add(5) /*追加5个观察值*/list in -10/-1sum5)应用:样本外预测: predictreg gnp96 L.gnp96predict gnp_hatlist in -10/-16)清除时间标识: tsset, cleartsset, clear1.2变量的生成与处理1)滞后项、超前项和差分项 help tsvarlistuse gnp96.dta, cleartsset dategen Lgnp = L.gnp96 /*一阶滞后*/gen L2gnp = L2.gnp96gen Fgnp = F.gnp96 /*一阶超前*/gen F2gnp = F2.gnp96gen Dgnp = D.gnp96 /*一阶差分*/gen D2gnp = D2.gnp96list in 1/10list in -10/-12)产生增长率变量: 对数差分gen lngnp = ln(gnp96)gen growth = D.lngnpgen growth2 = (gnp96-L.gnp96)/L.gnp96gen diff = growth - growth2 /*表明对数差分和变量的增长率差别很小*/ list date gnp96 lngnp growth* diff in 1/101.3日期的处理日期的格式 help tsfmt基本时点:整数数值,如 -3, -2, -1, 0, 1, 2, 3 ....1960年1月1日,取值为 0;1)使用 tsset 命令指定显示格式use B6_tsset.dta, cleartsset t, dailylistuse B6_tsset.dta, cleartsset t, weeklylist2)指定起始时点cap drop monthgenerate month = m(1990-1) + _n - 1format month %tmlist t month in 1/20cap drop yeargen year = y(1952) + _n - 1format year %tylist t year in 1/203)自己设定不同的显示格式日期的显示格式 %d (%td) 定义如下:%[-][t]d<描述特定的显示格式>具体项目释义:“<描述特定的显示格式>”中可包含如下字母或字符c y m l nd j h q w _ . , : - / ' !cC Y M L ND 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%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)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)list4)一个实例:生成连续的时间变量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/301.4图解时间序列1)例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 _t2)例2:增加文字标注sysuse tsline2, cleartsset daytsline calories, ttick(28nov2002 25dec2002, tpos(in)) /// ttext(3470 28nov2002 "thanks" ///3470 25dec2002 "x-mas", orient(vert)) 3)例3:增加两条纵向的标示线sysuse tsline2, cleartsset daytsline 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("Date (2002)") tsline calories, tlabel(, format(%td))二、ARIMA 模型和SARMIA 模型ARIMA 模型的基本思想是:将预测对象随时间推移而形成的数据序列视为一个随机序列,用一定的数学模型来近似描述这个序列。
(完整版)时间序列分析STATA第三课编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整版)时间序列分析STATA 第三课)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整版)时间序列分析STATA第三课的全部内容。
(完整版)时间序列分析STATA第三课编辑整理:张嬗雒老师尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布到文库,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是我们任然希望(完整版)时间序列分析STATA第三课这篇文档能够给您的工作和学习带来便利。
同时我们也真诚的希望收到您的建议和反馈到下面的留言区,这将是我们进步的源泉,前进的动力.本文可编辑可修改,如果觉得对您有帮助请下载收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为〈(完整版)时间序列分析STATA第三课> 这篇文档的全部内容。
第三课:ARMA/ARIMA建模及预测核心问题:1,前提:同方差,因此,不用考虑不同时刻变量的离散性;2,建立的是变量分布的均值模型,也就是,随机变量分布的均值所在的位置3,难点在于,时间序列数据建立模型并没有唯一性以quarterly。
dta的数据来说明.这个数据是美国的季度GDP数据,数据从1947年一季度开始,到2012年一季度结束。
研究对象,GDP,存在通货膨胀问题.所以要用GDP平减指数(GDP Deflator)进行矫正,这里是以2005年的美元作为基准的。
所以考察变量是GDP2005,即以2005年的美元作为基准的各季度的GDP真实值.一,一些基本符号:D L F二,建立模型:前期准备:观察时序图相关命令:tsset, tsline/twoway从图上可以看出,GDP2005值呈线性的向右上方倾斜,第一种方法:可以用确定性分析理的方法,使用研究变量对时间变量进行回归即:regress lrgdp date (采用的是最小二乘估计)然后对残差项进行White Noise检验观察此图:特征大值跟大值,小值跟小值,这说明Residual中存在着自相关信息.肯定不是White Noise因此,从这里看出,确定性的方法比较直观,简单,但效果不好,弥补:对残差序列进行回归,建立AR模型,这就是所谓的残差自回归模型.第二种方法BOX —JENKINS 方法,也就是通常所说的ARMA (p,d ) /ARIMA (p,d ,d)建模(采用的是最大似然估计).四大步骤:1、模型识别Identification :决定p 和q2、模型估计Estimation:估计εσθφμ 个),(,个)(,q p 3、模型检验Diagnostic Checking4、模型优化Parsimony1,模型识别Identification 相关命令:ac pac这个图的特征是 ac 值虽然在减小,但其减少类似线性,这时候就要考虑差分了,通常使用的是一阶差分和二阶差分一阶差分 generate growth=lrgdp-L.lrgdp这个时候,growth 就是经济增长率这张图的 ac值快速减少到影音之内,说明在样本中,变量growth显现的是平稳.此时,这张图同时和pac图联合使用,来判定p,qac 图决定是q, pac图决定的是p可以判定,growth的模型是ARMA(1,2)2,模型估计Estimation,命令:ARIMAarima growth, arima(1,0,2)arima lrgdp, arima(1,1,2)关键:如何看懂这个结果,如何写出ARMA的具体方程形式。
Stata学习笔记1、横截⾯数据:多个经济个体的变量在同⼀时间点上的取值,如2012年中国各省的GDP2、时间数列数据:指的是某个经济个体的变量在不同时点上的取值,如1978-2012年⼭东省每年的GDP3、⾯板数据:多个经济个体的变量在不同时点上的取值,如1978-2012年中国各省的GDP⼩样本OLS(最⼩⼆乘法):单⼀⽅程线性回归最常见⽅法条件:解释变量与扰动项正交、扰动项⽆⾃相关、同⽅差。
拟合优度:衡量线性回归模型对样本数据的拟合程度(R2),越⾼说明模型拟合程度越好。
单系数T检验:对回归⽅程扰动项的具体概率进⾏假设显著性⽔平进⾏检验F检验:整个回归⽅程是否显著STATA操作简介:如果数据中包含1949-10-01或1949/10/01的时间变量,导⼊stata后可能会被视为字符串,因此对于⽇度数据,可以使⽤命令gen newvar=date(varname,YMD),将其转换为整数⽇期变量,其中YMD说明原始数据的格式为年⽉⽇,如果原始数据的格式为⽉⽇年则使⽤MDY;对于⽉度数据则gen newvar=monthly(varname,YM)。
.describe:数据的概貌 .drop keep:删除和保留.su:统计特征 Pwcorr:变量之间相关系数Star(.05):5%显著性⽔平 gen:产⽣g intc=log(tc):取⾃然对数. reg:OLS回归.Vce:协⽅差矩阵 reg。
,noc表⽰在进⾏回归时不要常数项⼤样本OLS:只要求解释变量与同期的扰动项正交即可Robust:稳健标准误,如果存在异⽅差,则应使⽤稳健标准误最⼤似然估计法:如果回归⽅程存在⾮线性,则使⽤最⼤似然估计法(MLE)或⾮线性最⼩⼆乘法(NLS)三类在⼤样本下渐进等价的统计检验:Wald test LR(似然⽐检验) LM操作步骤如下:sysuse auto(调⽤数据集)Hist mpg,normal(画变量mpg的直⽅图,并与正态密度⽐较)直⽅图显⽰,变量mpg的分布于正态分布有⼀定差距。
经济数据的特点与类型。
1、横截面数据:多个经济个体的变量在同一时间点上的取值,如2012 年中国各省的GDP2、时间数列数据:指的是某个经济个体的变量在不同时点上的取值,如省每年的 GDP1978-2012 年山东3、面板数据:多个经济个体的变量在不同时点上的取值,如1978-2012 年中国各省的GDP小样本 OLS(最小二乘法):单一方程线性回归最常见方法条件:解释变量与扰动项正交、扰动项无自相关、同方差。
拟合优度:衡量线性回归模型对样本数据的拟合程度(R2),越高说明模型拟合程度越好。
单系数 T 检验:对回归方程扰动项的具体概率进行假设显著性水平进行检验F检验:整个回归方程是否显著STATA 操作简介:如果数据中包含1949-10-01 或 1949/10/01 的时间变量,导入stata 后可能会被视为字符串,因此对于日度数据,可以使用命令gen newvar=date(varname,YMD), 将其转换为整数日期变量,其中 YMD 说明原始数据的格式为年月日,如果原始数据的格式为月日年则使用对于月度数据则 gen newvar=monthly(varname,YM) 。
MDY;.describe :数据的概貌.drop keep :删除和保留.su:统计特征Star( .05): 5%显著性水平g intc=log( tc):取自然对数.Vce:协方差矩阵.Pwcorr:变量之间相关系数gen:产生reg: OLS回归reg。
, noc 表示在进行回归时不要常数项大样本 OLS:只要求解释变量与同期的扰动项正交即可Robust:稳健标准误,如果存在异方差,则应使用稳健标准误y t is n e D 最大似然估计法:如果回归方程存在非线性,则使用最大似然估计法( MLE )或非线性最小二乘法(NLS)三类在大样本下渐进等价的统计检验:Wald test LR(似然比检验)LM操作步骤如下:sysuse auto(调用数据集)Hist mpg, normal (画变量 mpg 的直方图,并与正态密度比较)1.8.6.4.2.10 20 30 40Mileage (mpg)直方图显示,变量mpg 的分布于正态分布有一定差距。
时间序列模型结构模型虽然有助于人们理解变量之间的影响关系,但模型的预测精度比较低。
在一些大规模的联立方程中,情况更是如此。
而早期的单变量时间序列模型有较少的参数却可以得到非常精确的预测,因此随着Box and Jenkins(1984)等奠基性的研究,时间序列方法得到迅速发展。
从单变量时间序列到多元时间序列模型,从平稳过程到非平稳过程,时间序列分析方法被广泛应用于经济、气象和过程控制等领域。
本章将介绍如下时间序列分析方法,ARIMA模型、ARCH族模型、VAR模型、VEC模型、单位根检验及协整检验等。
一、基本命令1.1时间序列数据的处理1)声明时间序列:tsset 命令use gnp96.dta, clearlist in 1/20gen Lgnp = L.gnptsset datelist in 1/20gen Lgnp = L.gnp2)检查是否有断点:tsreport, reportuse gnp96.dta, cleartsset datetsreport, reportdrop in 10/10list in 1/12tsreport, reporttsreport, report list /*列出存在断点的样本信息*/ 3)填充缺漏值:tsfilltsfilltsreport, report listlist in 1/124)追加样本:tsappenduse gnp96.dta, cleartsset datelist in -10/-1sumtsappend , add(5) /*追加5个观察值*/ list in -10/-1sum5)应用:样本外预测: predictreg gnp.gnp96predict gnp_hatlist in -10/-16)清除时间标识: tsset, cleartsset, clear1.2变量的生成与处理1)滞后项、超前项和差分项 help tsvarlist use gnp96.dta, cleartsset dategen Lgnp = L.gnp96 /*一阶滞后*/gen L2gnp = L2.gnp96gen Fgnp = F.gnp96 /*一阶超前*/gen F2gnp = F2.gnp96gen Dgnp = D.gnp96 /*一阶差分*/gen D2gnp = D2.gnp96list in 1/10list in -10/-12)产生增长率变量: 对数差分gen lngnp = ln(gnp96)gen growth = D.lngnpgen growth2 = (gnp96-L.gnp96)/L.gnp96gen diff = growth - growth2 /*表明对数差分和变量的增长率差别很小*/list date gnp96 lngnp growth* diff in 1/101.3日期的处理日期的格式 help tsfmt基本时点:整数数值,如 -3, -2, -1, 0, 1, 2, 3 ....,取值为 0;显示格式:1)使用 tsset 命令指定显示格式use B6_tsset.dta, cleartsset t, dailylistuse B6_tsset.dta, cleartsset t, weeklylist2)指定起始时点cap drop monthgenerate month = m(1990-1) + _n - 1 format month %tmlist t month in 1/20cap drop yeargen year = y(1952) + _n - 1format year %tylist t year in 1/203)自己设定不同的显示格式日期的显示格式 %d (%td) 定义如下:%[-][t]d<描述特定的显示格式>具体项目xx:“<描述特定的显示格式>”中可包含如下字母或字符c y m l n d j h q w _ . , : - / ' !cC Y M L ND JW定义如下: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(右引号)!cdisplay character c (code !! to display an exclamation point)样式1:FormatSample date in format-----------------------------------%td07jul1948%tdM_d,_CYJuly 7, 1948%tdY/M/D%tdM-D-CY%tqCY.q1999.2%tqCY:q1992:2%twCY,_w2010, 48-----------------------------------样式2:FormatSample date in format----------------------------------%d11jul1948%dDlCY11jul1948%dDlY11jul48%dM_d,_CYJuly 11, 1948%dd_M_CY11 July 1948%dN/D/Y%dD/N/Y%dY/N/D%dN-D-CY----------------------------------clearset obs 100gen t = _n + d(13feb1978)list t in 1/5format t %dCY-N-D /**/list t in 1/5format t %dcy_n_d /*1978 2 14*/list t in 1/5use B6_tsset, clearlisttsset t, format(%twCY-m)list4)一个实例:生成连续的时间变量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/301.4图解时间序列1)例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 _t2)例2:增加文字标注sysuse tsline2, cleartsset daytsline calories, ttick(28nov2002 25dec2002, tpos(in)) /// ttext(3470 28nov2002 "thanks" ///3470 25dec2002 "x-mas", orient(vert))3)例3:增加两条纵向的标示线sysuse tsline2, cleartsset daytsline 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("Date (2002)")tsline calories, tlabel(, format(%td))二、ARIMA 模型和SARMIA模型ARIMA模型的基本思想是:将预测对象随时间推移而形成的数据序列视为一个随机序列,用一定的来近似描述这个序列。
1、横截面数据:多个经济个体的变量在同一时间点上的取值,如2012年中国各省的GDP2、时间数列数据:指的是某个经济个体的变量在不同时点上的取值,如1978-2012年山东省每年的GDP3、面板数据:多个经济个体的变量在不同时点上的取值,如1978-2012年中国各省的GDP小样本OLS(最小二乘法):单一方程线性回归最常见方法条件:解释变量与扰动项正交、扰动项无自相关、同方差。
拟合优度:衡量线性回归模型对样本数据的拟合程度(R2),越高说明模型拟合程度越好。
单系数T检验:对回归方程扰动项的具体概率进行假设显著性水平进行检验F检验:整个回归方程是否显著STATA操作简介:如果数据中包含1949-10-01或1949/10/01的时间变量,导入stata后可能会被视为字符串,因此对于日度数据,可以使用命令gen newvar=date(varname,YMD),将其转换为整数日期变量,其中YMD说明原始数据的格式为年月日,如果原始数据的格式为月日年则使用MDY;对于月度数据则gen newvar=monthly(varname,YM)。
.describe:数据的概貌 .drop keep:删除和保留.su:统计特征 Pwcorr:变量之间相关系数Star(.05):5%显著性水平 gen:产生g intc=log(tc):取自然对数. reg:OLS回归.Vce:协方差矩阵 reg。
,noc表示在进行回归时不要常数项大样本OLS:只要求解释变量与同期的扰动项正交即可Robust:稳健标准误,如果存在异方差,则应使用稳健标准误最大似然估计法:如果回归方程存在非线性,则使用最大似然估计法(MLE)或非线性最小二乘法(NLS)三类在大样本下渐进等价的统计检验:Wald test LR(似然比检验) LM操作步骤如下:sysuse auto(调用数据集)Hist mpg,normal(画变量mpg的直方图,并与正态密度比较)直方图显示,变量mpg的分布于正态分布有一定差距。
最新STATA实⽤学习笔记资料北京科技⼤学STATA应⽤学习摘录第⼀章 STATA的基本操作⼀、设置内存容set mem 500m, perm⼀、显⽰输⼊内容Display 1Display “clive”⼆、显⽰数据集结构describeDescribe /d三、编辑editEdit四、重命名变量Rename var1 var2五、显⽰数据集内容list/browseList in 1List in 2/10六、数据导⼊:数据⽂件是⽂本类型(.csv)1、insheet: . insheet using “C:\Documents and Settings\Administrator\桌⾯\ST9007\dataset\Fees1.csv”, clear2、内存为空时才可以导⼊数据集,否则会出现(you must start with an empty dataset)(1)清空内存中的所有变量:.drop _all(2)导⼊语句后加⼊“clear”命令。
七、保存⽂件1、save “C:\Documents and Settings\Administrator\桌⾯\ST9007\dataset\Fees1.dta”2、save “C:\Documents and Settings\Administrator\桌⾯\ST9007\dataset\Fees1.dta”, replace ⼋、打开及退出已存⽂件use1、.Use ⽂件路径及⽂件名, clear2、. Drop _all/.exit九、记录命令和输出结果(log)1、开始建⽴记录⽂件:log using "J:\phd\output.log", replace2、暂停记录⽂件:log off3、重新打开记录⽂件:log on4、关闭记录⽂件:log close⼗⼀、创建和保存程序⽂件:(doedit, do)1、打开程序编辑窗⼝:doedit2、写⼊命令3、保存⽂件,.do.4、运⾏命令:.do 程序⽂件路径及⽂件名⼗⼆、多个数据集合并为⼀个数据集(变量和结构相同)纵向合并append insheet using "J:\phd\Fees1.csv", clearsave "J:\phd\Fees1.dta", replaceinsheet using "J:\phd\Fees2.csv", clearappend using "J:\phd\Fees1.dta"save "J:\phd\Fees1.dta", replace⼗三、横向合并,在原数据集基础上加上另外的变量merge1、insheet using "J:\phd\Fees1.csv", clearsort companyid yearendsave "J:\phd\Fees1.dta", replacedescribeinsheet using "J:\phd\Fees6.csv", clearsort companyid yearendmerge companyid yearend using "J:\phd\Fees1.dta"save "J:\phd\Fees1.dta", replacedescribe2、_merge==1 obs. From master data_merge==2 obs. From using data_merge==3 obs. From both master and using data⼗四、帮助⽂件:help1、. Help describe⼗五、描述性统计量1、summarize incorporationyear 单个summarize incorporationyear-big6 连续多个summarize _all or simply summarize 所有2、更详细的统计量summarize incorporationyear, detail3、centilecentile auditfees, centile(0(10)100)centile auditfees, centile(0(5)100)4、tabulate不同类型变量的频数和⽐例tabulate companytypetabulate companytype big6, column 按列计算百分⽐tabulate companytype big6, row 按⾏计算百分⽐tab companytype big6 if companytype<=3, row col 同时按⾏列和条件计算百分⽐5、计算满⾜条件观测的个数count if big6==1count if big6==0 | big6==16、按离散变量排序,对连续变量计算描述性统计量:(1)by companytype, sort: summarize auditfees, detail(2)sort companytypeBy companytype:summarize auditees⼗六、转换变量1、按公司类型将公开发⾏股票公司赋值为1,其他为0gen listed=0replace listed=1 if companytype==2replace listed=1 if companytype==3replace listed=1 if companytype==5replace listed=. if companytype==.⼗七、产⽣新变量genGenerate newvar=表达式⼗⼋、数据类型3、新建变量的过程中定义数据类型●gen str3 gender= "male"●list gender in 1/104、变量所占字节过长●drop gender●gen str30 gender= "male"●browse●describe gender●compress gender5、⽇期数据类型:%d dates, which is a count of the number of days elapsed since January 1, 1960。
用STATA软件学习《时间序列分析》第三课:ARMA/ARIMA建模及预测核心问题:1,前提:同方差,因此,不用考虑不同时刻变量的离散性;2,建立的是变量分布的均值模型,也就是,随机变量分布的均值所在的位置3,难点在于,时间序列数据建立模型并没有唯一性以quarterly.dta的数据来说明。
这个数据是美国的季度GDP数据,数据从1947年一季度开始,到2012年一季度结束。
研究对象,GDP,存在通货膨胀问题。
所以要用GDP平减指数(GDP Deflator)进行矫正,这里是以2005年的美元作为基准的。
所以考察变量是GDP2005,即以2005年的美元作为基准的各季度的GDP真实值。
一,一些基本符号:D L F二,建立模型: 前期准备:观察时序图相关命令:tsset, tsline/twoway用STATA 软件学习《时间序列分析》从图上可以看出,GDP2005值呈线性的向右上方倾斜,第一种方法:可以用确定性分析理的方法,使用研究变量对时间变量进行回归 即:regress lrgdp date (采用的是最小二乘估计)然后对残差项进行White Noise 检验观察此图:特征大值跟大值,小值跟小值,这说明Residual 中存在着自相关信息。
肯定不是White Noise因此,从这里看出,确定性的方法比较直观,简单,但效果不好,弥补:对残差序列进行回归,建立AR 模型,这就是所谓的 残差自回归模型。
第二种方法BOX-JENKINS 方法,也就是通常所说的ARMA(p,d) /ARIMA(p,d,d)建模(采用的是最大似然估计)。
四大步骤:1、模型识别Identification :决定p 和q 2、模型估计Estimation :估计εσθφμ 个),(,个)(,q p 3、模型检验Diagnostic Checking 4、模型优化Parsimony1,模型识别Identification 相关命令:ac pac这个图的特征是ac值虽然在减小,但其减少类似线性,这时候就要考虑差分了,通常使用的是一阶差分和二阶差分一阶差分generate growth=lrgdp-L.lrgdp这个时候,growth就是经济增长率这张图的ac值快速减少到影音之内,说明在样本中,变量growth显现的是平稳。
stata建模中的各种小问题(我的笔记)保存估计结果的命令:eststore名称使用保存结果的命令:,estimates(名称)如果你把那个显示你用过的命令的窗口:窗口操作:windows――review如果你把那个显示变量的窗口:窗口操作:windows――variables时间序列充填和拓展时间区间:命令:tsappend,add(n)增加n个观测值窗口操作方式:在上面打听dataedit即为像是一个表格一样的图标点上开即可编辑数据时间序列存在间断点问题,需要补齐处理:命令:tsfill信息准则赤池信息准则(aic)――推论推论模型的最小落后阶数stata命令:1.先重回2.estatic如何看看aic统计数据量:breusch-pagan,cook-weisberg异方差检验stata命令:1.先回归2.estathettest[varlist]或者在statistics――postestimation(倒数第二个)――reportsandstatistics(倒数第二个)――在里面选择(hettest)如何看统计量:white异方差检验:stata命令:3.先重回4.estatimtest,white[varlist]或者在statistics――postestimation(倒数第二个)――reportsandstatistics(倒数第二个)――在里面选择(imtest)如何看统计量:ramsey重回预设误差检验:stata命令:1.先重回2.estatovtest或者在statistics――postestimation(倒数第二个)――reportsandstatistics(倒数第二个)――在里面挑选(ovtest)如何看看统计数据量:多重共线性方差膨胀因子检验:1.先重回2.estatvif[,uncentered]或者在statistics――postestimation(倒数第二个)――reportsandstatistics(倒数第二个)――在里面挑选(vif)如何看看统计数据量:一般的当最大的方差膨胀因子超过10(相对保守的临界值定位30)后者平均方差膨胀因子超过1表示模型存在多重共线性的问题。
以下命令均采用小写字母Chapter 1 stata入门1.1打开数据use "D:\Stata9\auto.dta", clear 用use命令打开数据sysuse auto,clear auto 为系统数据sysuse 为打开系统数据的命令1.2获取帮助Help summarize summarize为需要获取帮助对象可以改为其他的需要帮助的对象Findit summarize,net 寻找网络帮助summarize为需要获取帮助对象Search summarize ,net 寻找网络帮助summarize为需要获取帮助对象显示结果Display 5+91.3描述统计(summarize 可简写成sum)Use atuo,clearSummarize price 描述price的观察值个数、平均值、标准差、最小值、最大值Sum weight summarize可简写成sumSum weight price 同时完成上面两步1.4绘图Scatter price weight scatter 为绘制散点图命令Line price weight ,sort line 为绘制折线图命令,sort为排序,绘制折线图前需要先排序1.5生成新的数据(generate 可简写成gen)ClearSet obs 1000 设置观测值的组数Gen x=_n _n 为观察值得序号Gen y=x+1001.6控制结果输出显示List n1.7设置屏幕滚动Set more off 先设置此项则显示时,屏幕不停止Set more on 先设置此项则显示时,会使显示停止1.8清除内存中原有内容clear1.9设置文件存取路径(cd)Cd d:\stata d:\stata为路径1.10如果想知道当前路径下有哪些文件,可以用dir 命令来列示.dir1.11假设你想在D 盘的根目录下创建一个新的文件夹mydata 来存放数据文件,命令为mkdir。
文档结尾是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 ;。