stata教程(一)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本书附带光盘data文件夹下的“sales.dta”工作文件给出了某50个月
的图书销售数据。变量主要包括:t=时间,sales=销售额。
对于这些销售数据,我们想分析其随时间的变化趋势,并希望通过模
型对其进行拟合及预测。
这样,利用“sales.dta”的数据,我们来讲解移动平均滤波、单指数
为几个单位,表12.3给出了各个具体的选项。
下面,我们利用“tsexmp.dta”的数据,对tsset命令及选项做进一步
说明。 如果我们要设定时间变量为time,输入命令: tsset time
进行时间变量的设定之后,stata会自动将数据按设定的时间变量从小
到大排序,从而方便相关命令的使用。如果要查看已设定的时间变量, 可键入不带后缀的tsset命令。在数据被重新排序之后,想要恢复按时 间序列排序,也可以通过tsset命令实现。也就是说,设定time为时间 变量之后,如下两条命令会产生相同的效果。 ① tsset ② sort time
实验操作指导
1 时间序列数据的设定 (1)定义时间变量的基本命令 设定时间序列(time series set)变量的基本命令格式为: tsset timevar [, options] 其中,tsset是“定义时间变量”的基本命令,timevar为用于标识时间 序列数据的变量名,options代表其他选项。 可用的options选项主要分两类,一类设定时间变量的单位(units of timevar),一类设定时间变量的周期(period of timevar)。表12.2给 出了各个单位选项(unit options)。
实验内容及数据来源 利用本书附带光盘data文件夹下的“tsexmp.dta”工作文 件,我们来讲解时间变量的设定。“tsexmp.dta”中,主 要变量包括:time=整数的时间变量,time1=字符串格式的 时间变量。 利用这些数据,我们会讲解时间序列数据的设定,时间区 间的扩展,以及前滞变量、滞后变量、差分变量、季节差 分变量的设定等。
是因为以毫秒为单位的时间非常大,如果使用默认的“float”格式, 新变量newc将被四舍五入,造成结果的不精确甚至是错误。因为变量 time1是按照“月-日-年 小时:分:秒”的格式呈现的,所以我们在 clock()命令中使用选项”MDYhms”告诉stata数据的书写格式。与clock 命令对应,当数据的单位为日、周、月、季度、半年、年,我们有命 令date()、weekly()、monthly()、quarterly()、halfyearly()、yearly(); 选项的格式依数据的具体书写格式而定。
平滑法、双指数平滑法以及Holt-Winters平滑法的操作和相关的预测。
实验操作指导 1 移动平均滤波
对于“sales.dta”的销售数据,我们想把其分解成两部分:信号和噪
我们可以将变量newm转换成%tm格式使其更易读。键入命令:
format newm %tm
list time newm in 1/5 其中,format命令用于定义变量的格式。
之后,我们可以重新将newm设定为时间变量: tsset newm
当然,如果我们不先使用format命令,直接键入:
2 扩展时间区间 扩展时间区间的基本命令格式为: tsappend, {add(#)| last(date| clock) tsfmt(string)} 其中,选项add()指定要增加的观测值的个数。如果不设定选项add(), 就必须同时设定last(date| clock)和tsfmt(string)。last()指定我们要将 时间扩展到的日期,tsfmt()用于将last()选项中的日期转化成stata默认 时间所对应的整数,可用的string包括tc、td、tw、tm、tq、th和ty。 需要注意的一点是,在使用tsappend命令之前必须先用tsset设置时间 变量。 例如,对于“tsexmp.dta”的数据,我们先按照前面所讲,设定时间 变量: generate newm=tm(2003m6)+time-1 tsset newm, monthly 这时,时间变量的区间为2003年6月到2005年11月。如果我们想增加12 个观测值,可键入命令: tsappend, add(12) 这样,时间变量被扩展到2006年11月。
当然,我们也可以使用另一种方式: tsappend, last(2006m11) tsfmt(tm) 这里,选项last(2006m11)用于指定扩展后时间变量的最后一个观测值
为2006年11月,tsfmt(tm)指定变量格式为月数据。 如果时间变量有间隔(gaps),例如,在上面的例子中03年6月和03年 9月之间缺失了两个月,tsappend命令也会自动补齐。当然,对于有间 隔(gaps)的时间变量,我们也可以通过专门的命令tsfill将其补齐。 命令格式为: tsfill 在使用命令tsfill之前,也需要先用tsset定义时间序列。
下面,我们分别使用Q统计量和Bartlett检验来对序列D.ln_wpi进行白
噪声的检验。 用Q统计量检验的命令为: wntestq D.ln_wpi
用Bartlett检验的命令为: wntestb D.ln_wpi
实验12-3:移动平均滤波与指数平滑法
实验基本原理
实验内容及数据来源
tsset newm, monthly 或 tsset newm, format(%tm) 也可以实现相同的效果。 在前面的讲解中,我们假定time为月度变量,并使用了函数tm()以及
格式%tm,与之对应,如果数据单位为毫秒、日、周、季度、半年、 年,我们有相应的函数tc()、td()、tw()、tq()、th()、ty()以及相应的 格式%tc、%td、%tw、%tq、%th、%ty。
主要内容
时间序列的定义与扩展 相关图绘制与白噪声检验 移动平均滤波与指数平滑法 ARIMA模型 SARIMA模型 ARIMAX模型 单位根检验 向量自回归模型 协整与向量误差修正模型 ARCH族模型
实验12-1: 时间序列的定义与扩展
实验基本原理 在利用stata对时间序列数据进行分析之前,我们通常需要 定义时间变量。只有这样,我们才能方便地使用各种时间 序列算子以及相关的时间序列分析命令。此外,有些时候, 随着时间的推移,我们又获得了新的观测值,或者,我们 需要对时间序列进行预测,这时,有必要对时间区间进行 扩展。这些,都可以通过stata方便地实现。
在此之后,可以通过如下命令将newc设为时间变量。 tsset newc, clocktime 其中,选项clocktime表明,我们设定时间序列数据的单位为毫秒。 但事实上,数据是每隔20分钟记录一次的,这样,我们有必要将其周
期变为20分,以方便滞后算子L、差分算子D等运算符号的使用。选项 delta()可以做到这一点。命令为: tsset newc, delta((1000*60*20)) 其中,选项delta()中的表达式(1000*60*20)表明,我们设定数据的周期 为1000*60*20个单位,这里即1000*60*20毫秒,即20分钟。
3 时间序列算子 在进行时间序列分析时,我们经常常用的算子及其含义列于表12.4中。
实验12-2:相关图绘制与白噪声检验
实验基本原理
实验内容及数据来源
本书附带光盘data文件夹下的“wpi1.dta”工作文件包括了1960年第1
在设定时间变量之后,我们可以保存一下数据,这样,下次使用时,
就不必再重新设定时间变量。
(2)调整时间设定的初始值 我们注意到,变量time的起始值为1,事实上,我们可以通过函数将起
始时间调整到任何一个我们想要的时间。如过time=1代表2003年6月, 那么我们可以生成一个新变量让其起始值为2003年6月。输入命令: generate newm=tm(2003m6)+time-1 list time newm in 1/5 其中,第一步为生成新变量newm,并令其第一个值代表2003年6月。 函数tm()可将时间转换成stata系统默认的格式。第二步列出变量time 和newm的前5个值。
季度到1990年第4季度的美国批发价格指数的数据。主要的变量包括: t=时间,wpi=批发价格指数, ln_wpi=wpi的对数。
利用这些数据,我们将讲解自相关函数和偏自相关函数的绘图以及白
噪声的检验。
实验操作指导 1 计算并绘制自相关函数与偏自相关函数图
计算自相关函数、偏自相关函数以及Q统计量的命令为: corrgram varname [if] [in] [, corrgram_options] 其中,corrgram代表“计算自相关与偏自相关函数以及Q统计量”的
绘制带置信区间的偏自相关函数的命令为: pac varname [if] [in] [, pac_options]
表12.7 给出了这两个命令的选项。
下面,我们对数据文件“wpi1.dta”中的变量ln_wpi计算自相关与偏自
相关函数以及Q统计量的值。输入命令: corrgram ln_wpi, lags(20) 其中,选项lags(20)表明设置滞后期为20。
当然,我们也可以在变量名上加上滞后算子。例如,我们要对ln_wpi
的一阶差分值绘制带置信区间的自相关函数值和偏自相关函数值。可 输入命令: ac D.ln_wpi pac D.ln_wpi
2 白噪声检验 corrgram命令可以同时汇报Q统计量,用于白噪声检验。此外,我们 还有专门的命令来进行白噪声检验。 用Q统计量进行白噪声检验的基本命令为: wntestq varname [if] [in] [, lags(#)] 其中,wntestq代表“Q统计量白噪声检验”的基本命令语句, varname代表要分析的变量的名称,if代表条件语句,in代表范围语句, 选项lags(#)用于设定滞后期为#。 通过Bartlett检验来判断序列是否为白噪声的基本命令为: wntestb varname [if] [in] [, table level(#)] 其中,wntestb代表“Bartlett白噪声检验”的基本命令语句,选项 table表示用列表而非图形来展示结果,level(#)用于设置置信度。
基本命令语句,varname代表要分析的变量的名称,if代表条件语句, in代表范围语句,corrgram_options代表其他选项。表12.6列示了各主 要选项。
此外,我们还可以对自相关和偏自相关图分别进行绘制。 绘制带置信区间的自相关函数的命令为: ac varname [if] [in] [, ac_options]
其中,默认规则意味着,如果事先通过format命令设定了timevar的显
示格式为%t*格式,则不必再设定单位选项(unit options),stata会 根据时间变量的显示格式自动获得时间变量的单位;否则,可以设定 单位选项。
周期选项(delta options)设定时间变量相邻观测值之间的间隔时间
(3)将字符串变量转换为时间变量
在“tsexmp.dta”中,time1为字符串格式的变量,如果我们要将其变
为时间变量,可以通过如下的命令实现: gen double newc=clock(time1,”MDYhms”)
注意,我们这里将产生的新变量设为“双精度”(double)格式。这
的图书销售数据。变量主要包括:t=时间,sales=销售额。
对于这些销售数据,我们想分析其随时间的变化趋势,并希望通过模
型对其进行拟合及预测。
这样,利用“sales.dta”的数据,我们来讲解移动平均滤波、单指数
为几个单位,表12.3给出了各个具体的选项。
下面,我们利用“tsexmp.dta”的数据,对tsset命令及选项做进一步
说明。 如果我们要设定时间变量为time,输入命令: tsset time
进行时间变量的设定之后,stata会自动将数据按设定的时间变量从小
到大排序,从而方便相关命令的使用。如果要查看已设定的时间变量, 可键入不带后缀的tsset命令。在数据被重新排序之后,想要恢复按时 间序列排序,也可以通过tsset命令实现。也就是说,设定time为时间 变量之后,如下两条命令会产生相同的效果。 ① tsset ② sort time
实验操作指导
1 时间序列数据的设定 (1)定义时间变量的基本命令 设定时间序列(time series set)变量的基本命令格式为: tsset timevar [, options] 其中,tsset是“定义时间变量”的基本命令,timevar为用于标识时间 序列数据的变量名,options代表其他选项。 可用的options选项主要分两类,一类设定时间变量的单位(units of timevar),一类设定时间变量的周期(period of timevar)。表12.2给 出了各个单位选项(unit options)。
实验内容及数据来源 利用本书附带光盘data文件夹下的“tsexmp.dta”工作文 件,我们来讲解时间变量的设定。“tsexmp.dta”中,主 要变量包括:time=整数的时间变量,time1=字符串格式的 时间变量。 利用这些数据,我们会讲解时间序列数据的设定,时间区 间的扩展,以及前滞变量、滞后变量、差分变量、季节差 分变量的设定等。
是因为以毫秒为单位的时间非常大,如果使用默认的“float”格式, 新变量newc将被四舍五入,造成结果的不精确甚至是错误。因为变量 time1是按照“月-日-年 小时:分:秒”的格式呈现的,所以我们在 clock()命令中使用选项”MDYhms”告诉stata数据的书写格式。与clock 命令对应,当数据的单位为日、周、月、季度、半年、年,我们有命 令date()、weekly()、monthly()、quarterly()、halfyearly()、yearly(); 选项的格式依数据的具体书写格式而定。
平滑法、双指数平滑法以及Holt-Winters平滑法的操作和相关的预测。
实验操作指导 1 移动平均滤波
对于“sales.dta”的销售数据,我们想把其分解成两部分:信号和噪
我们可以将变量newm转换成%tm格式使其更易读。键入命令:
format newm %tm
list time newm in 1/5 其中,format命令用于定义变量的格式。
之后,我们可以重新将newm设定为时间变量: tsset newm
当然,如果我们不先使用format命令,直接键入:
2 扩展时间区间 扩展时间区间的基本命令格式为: tsappend, {add(#)| last(date| clock) tsfmt(string)} 其中,选项add()指定要增加的观测值的个数。如果不设定选项add(), 就必须同时设定last(date| clock)和tsfmt(string)。last()指定我们要将 时间扩展到的日期,tsfmt()用于将last()选项中的日期转化成stata默认 时间所对应的整数,可用的string包括tc、td、tw、tm、tq、th和ty。 需要注意的一点是,在使用tsappend命令之前必须先用tsset设置时间 变量。 例如,对于“tsexmp.dta”的数据,我们先按照前面所讲,设定时间 变量: generate newm=tm(2003m6)+time-1 tsset newm, monthly 这时,时间变量的区间为2003年6月到2005年11月。如果我们想增加12 个观测值,可键入命令: tsappend, add(12) 这样,时间变量被扩展到2006年11月。
当然,我们也可以使用另一种方式: tsappend, last(2006m11) tsfmt(tm) 这里,选项last(2006m11)用于指定扩展后时间变量的最后一个观测值
为2006年11月,tsfmt(tm)指定变量格式为月数据。 如果时间变量有间隔(gaps),例如,在上面的例子中03年6月和03年 9月之间缺失了两个月,tsappend命令也会自动补齐。当然,对于有间 隔(gaps)的时间变量,我们也可以通过专门的命令tsfill将其补齐。 命令格式为: tsfill 在使用命令tsfill之前,也需要先用tsset定义时间序列。
下面,我们分别使用Q统计量和Bartlett检验来对序列D.ln_wpi进行白
噪声的检验。 用Q统计量检验的命令为: wntestq D.ln_wpi
用Bartlett检验的命令为: wntestb D.ln_wpi
实验12-3:移动平均滤波与指数平滑法
实验基本原理
实验内容及数据来源
tsset newm, monthly 或 tsset newm, format(%tm) 也可以实现相同的效果。 在前面的讲解中,我们假定time为月度变量,并使用了函数tm()以及
格式%tm,与之对应,如果数据单位为毫秒、日、周、季度、半年、 年,我们有相应的函数tc()、td()、tw()、tq()、th()、ty()以及相应的 格式%tc、%td、%tw、%tq、%th、%ty。
主要内容
时间序列的定义与扩展 相关图绘制与白噪声检验 移动平均滤波与指数平滑法 ARIMA模型 SARIMA模型 ARIMAX模型 单位根检验 向量自回归模型 协整与向量误差修正模型 ARCH族模型
实验12-1: 时间序列的定义与扩展
实验基本原理 在利用stata对时间序列数据进行分析之前,我们通常需要 定义时间变量。只有这样,我们才能方便地使用各种时间 序列算子以及相关的时间序列分析命令。此外,有些时候, 随着时间的推移,我们又获得了新的观测值,或者,我们 需要对时间序列进行预测,这时,有必要对时间区间进行 扩展。这些,都可以通过stata方便地实现。
在此之后,可以通过如下命令将newc设为时间变量。 tsset newc, clocktime 其中,选项clocktime表明,我们设定时间序列数据的单位为毫秒。 但事实上,数据是每隔20分钟记录一次的,这样,我们有必要将其周
期变为20分,以方便滞后算子L、差分算子D等运算符号的使用。选项 delta()可以做到这一点。命令为: tsset newc, delta((1000*60*20)) 其中,选项delta()中的表达式(1000*60*20)表明,我们设定数据的周期 为1000*60*20个单位,这里即1000*60*20毫秒,即20分钟。
3 时间序列算子 在进行时间序列分析时,我们经常常用的算子及其含义列于表12.4中。
实验12-2:相关图绘制与白噪声检验
实验基本原理
实验内容及数据来源
本书附带光盘data文件夹下的“wpi1.dta”工作文件包括了1960年第1
在设定时间变量之后,我们可以保存一下数据,这样,下次使用时,
就不必再重新设定时间变量。
(2)调整时间设定的初始值 我们注意到,变量time的起始值为1,事实上,我们可以通过函数将起
始时间调整到任何一个我们想要的时间。如过time=1代表2003年6月, 那么我们可以生成一个新变量让其起始值为2003年6月。输入命令: generate newm=tm(2003m6)+time-1 list time newm in 1/5 其中,第一步为生成新变量newm,并令其第一个值代表2003年6月。 函数tm()可将时间转换成stata系统默认的格式。第二步列出变量time 和newm的前5个值。
季度到1990年第4季度的美国批发价格指数的数据。主要的变量包括: t=时间,wpi=批发价格指数, ln_wpi=wpi的对数。
利用这些数据,我们将讲解自相关函数和偏自相关函数的绘图以及白
噪声的检验。
实验操作指导 1 计算并绘制自相关函数与偏自相关函数图
计算自相关函数、偏自相关函数以及Q统计量的命令为: corrgram varname [if] [in] [, corrgram_options] 其中,corrgram代表“计算自相关与偏自相关函数以及Q统计量”的
绘制带置信区间的偏自相关函数的命令为: pac varname [if] [in] [, pac_options]
表12.7 给出了这两个命令的选项。
下面,我们对数据文件“wpi1.dta”中的变量ln_wpi计算自相关与偏自
相关函数以及Q统计量的值。输入命令: corrgram ln_wpi, lags(20) 其中,选项lags(20)表明设置滞后期为20。
当然,我们也可以在变量名上加上滞后算子。例如,我们要对ln_wpi
的一阶差分值绘制带置信区间的自相关函数值和偏自相关函数值。可 输入命令: ac D.ln_wpi pac D.ln_wpi
2 白噪声检验 corrgram命令可以同时汇报Q统计量,用于白噪声检验。此外,我们 还有专门的命令来进行白噪声检验。 用Q统计量进行白噪声检验的基本命令为: wntestq varname [if] [in] [, lags(#)] 其中,wntestq代表“Q统计量白噪声检验”的基本命令语句, varname代表要分析的变量的名称,if代表条件语句,in代表范围语句, 选项lags(#)用于设定滞后期为#。 通过Bartlett检验来判断序列是否为白噪声的基本命令为: wntestb varname [if] [in] [, table level(#)] 其中,wntestb代表“Bartlett白噪声检验”的基本命令语句,选项 table表示用列表而非图形来展示结果,level(#)用于设置置信度。
基本命令语句,varname代表要分析的变量的名称,if代表条件语句, in代表范围语句,corrgram_options代表其他选项。表12.6列示了各主 要选项。
此外,我们还可以对自相关和偏自相关图分别进行绘制。 绘制带置信区间的自相关函数的命令为: ac varname [if] [in] [, ac_options]
其中,默认规则意味着,如果事先通过format命令设定了timevar的显
示格式为%t*格式,则不必再设定单位选项(unit options),stata会 根据时间变量的显示格式自动获得时间变量的单位;否则,可以设定 单位选项。
周期选项(delta options)设定时间变量相邻观测值之间的间隔时间
(3)将字符串变量转换为时间变量
在“tsexmp.dta”中,time1为字符串格式的变量,如果我们要将其变
为时间变量,可以通过如下的命令实现: gen double newc=clock(time1,”MDYhms”)
注意,我们这里将产生的新变量设为“双精度”(double)格式。这