👇 连享会 · 推文导航 | www.lianxh.cn
-
🍎 Stata:Stata基础 | Stata绘图 | Stata程序 | Stata新命令 -
📘 论文:数据处理 | 结果输出 | 论文写作 | 数据分享 -
💹 计量:回归分析 | 交乘项-调节 | IV-GMM | 时间序列 | 面板数据 | 空间计量 | Probit-Logit | 分位数回归 -
⛳ 专题:SFA-DEA | 生存分析 | 爬虫 | 机器学习 | 文本分析 -
🔃 因果:DID | RDD | 因果推断 | 合成控制法 | PSM-Matching -
🔨 工具:工具软件 | Markdown | Python-R-Stata -
🎧 课程:公开课-直播 | 计量专题 | 关于连享会
连享会课程 · 文本分析专题
作者:冀承 (中国人民大学)
邮箱:jicheng@ruc.edu.cn
温馨提示: 文中链接在微信中无法生效。请点击底部「阅读原文」。或直接长按/扫描如下二维码,直达原文:
编者按:本文主要摘译自下文,特此致谢!
Source:Simons, Kenneth L., 2019, Useful Stata Commands. -PDF-
目录
-
1. 写在前面
-
2. 数据查看、生成、计算与绘图
-
2.1 仅查看数据
-
2.2 描述性统计
-
2.3 生成随机数
-
2.4 计算相关性和协方差
-
2.5 计算置信区间与进行假设检验
-
2.6 绘制表格、直方图、散点图
-
3. 数据处理技巧
-
3.1 合并数据集
-
3.2 字符串和数字之间的转换
-
3.3 创建标签
-
4. OLS、GLS 以及 WLS 回归
-
4.1 OLS 回归
-
4.2 生成类别虚拟变量和交互变量
-
4.3 广义最小二乘法
-
4.4 加权最小二乘法
-
5. 输出回归结果表格
-
5.1 使用内置命令输出表格
-
5.2 使用附加命令输出表格
-
6. 面板数据模型
-
6.1 固定效应—使用虚拟变量
-
6.2 固定效应—去均值
-
6.3 随机效应和豪斯曼检验
-
7. 受限因变量模型
-
7.1 Probit 和 Logit 模型
-
7.2 Tobit 模型
-
7.3 计数模型
-
8. 工具变量回归
-
8.1 两阶段最小二乘法
-
8.2 广义矩估计法工具变量
-
8.3 有限信息最大似然法工具变量
-
8.4 工具变量检验
-
8.5 其他工具变量回归
-
9. 时间序列模型
-
9.1 自相关
-
9.2 自回归和自回归分布滞后模型
-
9.3 滞后期选择的信息准则
-
9.4 单位根的 ADF 检验
-
10. 系统方程估计
-
10.1 三阶段最小二乘
-
10.2 似无相关回归
-
10.3 多元回归
-
11. 相关推文
1. 写在前面
在学习 Stata 时,我们经常会去复刻一篇实证论文的 do 文档。虽然 “干中学” 的效率相对较高,但是这样学到的 Stata 命令和计量方法并不系统,无法对 Stata 有更为全面的了解。本篇推文旨在介绍数据查看、数据处理、生成变量以及多种计量模型的 Stata 命令,以方便大家在使用时快速查询。
2. 数据查看、生成、计算与绘图
2.1 仅查看数据
-
browse varlist
:打开数据查看器,在不更改数据的情况下查看数据; -
list varlist
:将数据进行列表,如果多于一个屏幕,就按空格键进入下一个屏幕,或按 q 键退出列表。
2.2 描述性统计
-
summarize varlist
:查看列出变量的概括性信息; -
summarize varlist, detail
:查看列出变量的详细概括性信息; -
by byvars: summarize varlist
:按照分组对变量进行概括; -
codebook varlist
:显示变量数值分布情况; -
inspect varlist
:相较于codebook
命令,该命令可以进一步绘制出直方图。
2.3 生成随机数
-
gen r1 = runiform()
:生成随机数,均匀分布于 0 和 1 之间; -
gen r2 = rnormal()
:生成随机数,具有标准正态分布; -
gen r3 = rnormal(5,2)
:生成随机数,使用平均值 5 和标准差 2 的正态分布; -
gen r4 = rchi2(27)
:生成随机数,具有 27 个自由度的卡方分布; -
gen r5 = rt(27)
:生成随机数,具有 27 个自由度的 分布; -
set seed 1234
:生成随机数的另一种方法,加入 1234 确保随后将产生一个可重复的随机数序列。
2.4 计算相关性和协方差
下面的命令可以计算任何变量列表之间的相关性和协方差。注意,如果列出的任何变量在某些行中有缺失值,那么这些行在所有计算中都会被忽略。
-
correlate var1 var2 …
:计算变量之间的相关性; -
correlate var1 var2 …, covariance
:计算变量间的协方差。
有时在某些行中存在缺失值,但你希望尽可能使用所有可用的数据。例如,如果有关于健康、营养和收入的数据,而收入数据在你的观察中缺失了 90%。那么可以利用所有的观察数据计算出健康与营养的相关性,在计算健康与收入的关系以及营养与收入的关系时只有 10% 的观察数据有收入数据,被称为 “成对” 关联,可以通过以下方式得到:
-
pwcorr var1 var2 …
:计算变量之间的成对样本相关性。
2.5 计算置信区间与进行假设检验
-
ci means varname
:计算变量均值的置信区间,使用渐近正态分布; -
ci means varname, level(#)
:置信区间为 #%,例如,使用 99 表示 99% 的置信区间; -
by female: ci means workhours
:分别计算男性和女性工作时间均值的置信区间; -
ttest varname1 == varname2
:检验变量的均值等于另一个变量的均值的假设; -
ttest varname, by(groupvar)
:检验变量的均值在所有组中相同的假设,groupvar
可能是year
,即检验一个变量的均值在每一年的数据中是否相同。
2.6 绘制表格、直方图、散点图
-
tabulate varname
:绘制一个表格,列出变量的不同值的观察数; -
tabulate var1 var2
:绘制一个二维表,列出每一行和每列中的观察数; -
histogram varname
:绘制指定变量的直方图; -
scatter yvar xvar
:绘制散点图,因变量为纵轴,解释变量为横轴; -
scatter yvar1 yvar2 … xvar
:绘制多个变量的散点图,在纵轴上绘制多个因变量,在横轴上绘制一个解释变量。
3. 数据处理技巧
在开展数据处理工作时,建议在一个或多个 do 文档中组织所有的工作。首先需要在 do 文档中读取和导入数据,然后执行其他操作,如生成变量、合并数据集、进行回归操作等,最后,do 文档应该单独保存在单独的文件中,方便下次直接点击和修改。在实际的实证计量论文写作中,绝大部分的时间往往花在准备数据进行分析上,下面给出的许多命令对于数据处理非常有用。
3.1 合并数据集
假设有两个数据集,通常具有或部分具有相同的变量,如果将它们合并到一个数据集,可以使用 append
命令添加行 (纵向合并)。
-
append using filename
:将另一个数据集追加到现有数据集的末尾,必须首先将其他数据集保存为 Stata 文件。使用这个命令后,具有相同名称的变量将被放置在同一列。
假设有两个数据集,master 数据集是现在正在使用的数据集,并且希望添加来自 using 数据集的变量。目标是使用识别码变量 (一个或多个变量) 来确定在两个文件中哪些列进行匹配,并添加额外的数据列。Stata 的 merge
命令可以做到横向合并这一点。
识别码变量指定什么应该匹配?什么不应该匹配?例如,有一个名为 personID 的变量,为每个人提供一个惟一的数字,personID 的匹配值告诉 using 数据集中的哪一列与 master 数据集中的相应列对应。可以组合使用任意数量的变量来创建识别码,并且它们必须与 using 数据集中的列相匹配,以对应于 master 数据集中的一列。
如果识别码在每个数据集中是唯一的,那么存在一对一匹配,即 1:1。如果识别码在 master 数据集中不是唯一的,但在 using 数据集中是唯一的,那么就存在一个多对一匹配,即 m:1。如果使用的数据集没有唯一的标识码,那么就会有一对多或多对多匹配,即 1:m 或 m:m。
只读取选定的变量,如果您只想从 using 数据集中读入一些变量,请使用 keep using(varlist)
选项。
-
merge 1:1 personID using filename
:匹配来自 using 数据集的观察值,将 personID 作为识别码变量; -
merge 1:1 country year month using filename
:匹配来自 using 数据集的观察值,将国家、年份和月份联合作为识别码变量; -
merge 1:1 personID using filename, keep(match master)
:匹配来自 using 数据集的观察值,将 personID 作为识别码变量,并且只保留与之匹配或在 master 数据集中的观察值,忽略仅在 using 数据集中的观察结果; -
merge 1:1 personID using filename, assert(match)
:匹配来自 using 数据集的观察值,将 personID 作为识别码变量,并断言每个数据集中的所有观察结果都匹配 (如果不匹配,则停止并显示错误消息); -
merge m:1 countryID using filename
:master 数据集可能包含具有相同 countryID 的多个观察值,匹配来自 using 数据集的观察值,将 countryID 作为识别码变量,将其指定为多对一匹配。 -
merge 1:m countryID using filename
:using 数据集可能包含具有相同 countryID 的多个观察值,匹配来自 using 数据集的观察值,使用 countryID 作为识别代码变量,将其指定为一对多匹配。
merge
命令将显示 merge = 1、2 和 3 的观察数。在合并两个数据集之后,需要检查 _merge 变量的值,以避免错误。
3.2 字符串和数字之间的转换
在转换之前,先使用 description
命令查看哪些变量是字符串,哪些是数字。如果有包含数字的字符串变量,将它们转换为数字的一个简单方法是使用 destring
命令,tostring
命令的方向正好相反。例如,如果你有一个名为 year,month,day 的字符串变量,并且字符串实际上包含数字,可以将它们转换为数字,具体命令如下所示:
-
destring year month day, replace
:如果字符串确实包含数字,则将名为年、月和日的字符串变量转换为数字变量; -
tostring year month day, replace
:将名为年、月和日的数字变量转换为字符串变量。
当将字符串变量转换为数字变量时,很可能会收到错误消息,因为并非所有的字符串都是数字。例如,如果一个字符串是 "2,345,678",那么 Stata 将不会识别它是一个数字,因为有逗号。类似地,像 "see note" 或 ">1000" 这样的值也不能转换为数字。如果发生这种情况,Stata 将默认拒绝将字符串值转换为数字。如果想要这样的非数字字符串被转换为缺失值,可以使用 destring
命令的 force
选项,例如:
-
destring year month day, replace force
:将名为年、月和日的字符串变量转换为数字变量。如果任何字符串值看起来不是数字,则将它们转换为缺失值。
3.3 创建标签
如果字符串变量包含数字以外的东西,比如 “男性” 和 “女性”,或者人的名字,该怎么办?可以将这些值转换为分类变量,同时希望记录哪些数字对应于哪些字符串。数字和字符串之间的关联是通过 “值标签” 来实现的。Stata 的encode
命令可以把字符串变量转换为带标签的分类变量,decode
命令正好相反。例如:
-
encode personName, generate(personNameN)
-
decode **personName**, generate(personNameS)
如果想为变量创建值标签,例如假设一个名为 femaleLab 的变量中女性为 1 男性为 0。那么可以这样标记它:
-
label define femaleLab 0 "male" 1 "female"
如果你不知道一个变量的标签名,使用 describe
命令,它会告诉你每个变量的标签名,可以用这个命令列出标签的所有值:
-
label list labelname
:列出了名为 labelname 的所有值及其标签。
4. OLS、GLS 以及 WLS 回归
4.1 OLS 回归
-
regress yvar xvarlist
:将因变量对自变量进行回归; -
regress yvar xvarlist, vce(robust)
:在基本 OLS 回归的基础上,使用vce(robust)
选项可以计算稳健标准误; -
regress yvar xvarlist, vce(robust) level(#)
:在稳健标准误的基础上,将置信区间更改为 #%,例如 99% 置信区间可将括号内的 # 替换为 99。
4.2 生成类别虚拟变量和交互变量
如果有一个名为 usstate 的变量,编号为 1 到 50,用于表示美国的 50 个州,并且希望包含 49 个 0-1 虚拟变量,这些虚拟变量允许第一个州 (比如阿拉巴马州) 与其他州之间存在差异,可以简单地在 OLS 的回归中包含 i.usstate
。
类似地,如果想要在两个变量之间创建交互项,分别是 age (一个连续变量) 和 male (一个 0-1 虚拟变量),在回归中纳入 c.age#i.male
即产生了交互作用。c.
在 age
前面表示它是一个连续变量,而 i.
在 male
前面表示该变量为 0-1 虚拟变量。使用 ##
可添加完整的交互,例如 c.age##i.male
意味着年龄、性别、年龄与性别的交互。
-
reg wage i.age i.male c.age#i.male, vce(robust)
:用年龄、性别以及年龄和性别的交互项对工资进行回归; -
reg wage c.age##i.male, vce(robust)
:与上式含义相同,但是用的是两个#
,既包含了变量自身也包含了交互项; -
reg wage c.age##i.male c.age#c.age, vce(robust)
:在上式的基础上,用#
创建平方项,增加了年龄的平方进行回归。
4.3 广义最小二乘法
在进行 GLS 估计前,需要检验一下数据是否存在异方差,可以利用下述命令:
-
estat imtest, white
:进行怀特检验,如果检验结果显示 值小于一定的值,就可以拒绝同方差的原假设,认为数据存在异方差; -
estat hettest, iid
:进行 BP 检验,默认设置为使用拟合值 yhat。如果检验结果显示 值小于一定的值,就可以拒绝同方差的原假设,认为数据存在异方差; -
estat hettest, rhs iid
:使用方程右边的解释变量进行 BP 检验,而不是 yhat; -
estat hettest [varlist], rhs iid
:指定使用某些解释变量进行 BP 检验。
如果数据存在异方差,就可以使用 GLS 进行处理,变换原回归模型,使变换后模型的随机误差项消除异方差,进而用 OLS 估计回归参数。
4.4 加权最小二乘法
WLS 是 GLS 的特例,一般 OLS 将时间序列中的各项数据的重要性同等看待,而事实上时间序列各项数据对未来的影响作用是不同的。一般来说,近期数据比起远期数据对未来的影响更大。因此比较合理的方法就是使用加权的方法,对近期数据赋以较大的权数,对远期数据赋以较小的权数。
-
vwls yvar xvarlist, sd(sdvar)
:如果在变量 sdvar 中存储了每个观测值的标准误的合理估计值,然后可按该命令执行 WLS。
5. 输出回归结果表格
Stata 提供了丰富的命令帮助输出回归结果的表格,既可以使用内置命令,也可以使用第三方的附加命令。
5.1 使用内置命令输出表格
regress y x1, vce(robust
estimates store model1
regress y x1 x2, vce(robust)
estimates store model
regress y x3 x4 x5, vce(robust)
estimates store model3
estimates table model1 model2 model3
前六行是三个 OLS 回归的完整命令,对回归结果进行了储存。最后一行命令创建了一个由三个回归得出的系数估计值表,可以用各种方法改进这张表,以下是一些建议:
-
estimates table model1 model2 model3, se
:se
选项可以为输出的回归表格中包含标准误; -
estimates table model1 model2 model3, star
:star
选项可以为输出的回归表格中的显著性水平添加星号,然而该命令不允许将star
和se
选项组合起来。如果希望将二者进行组合,可以使用附加命令; -
estimates table model1 model2 model3, b(%7.2f) se(%7.2f) stfmt(%7.4g) stats(N r2 r2_a)
:发表论文中表格的形式都相对复杂,可以在上面的基础上添加其他选项如观测数 N、R 方以及调整的 R 方。其中系数和标准误差使用%7.2f
格式显示,%7.2f
告诉 Stata 使用至少 7 个字符的固定宽度来显示数字,以及小数点后保留 2 位。
5.2 使用附加命令输出表格
如果你需要找到可用的附加命令,可以使用 Stata 的帮助菜单和搜索选择来搜索互联网上的资源,也可以尝试使用 ssc
命令。输出回归结果表格常用的附加命令是 eststo
、estout
、esttab
、estout
等,通过命令语句 ssc install estout, replace
就可以永久安装上述输出表格的相关命令。
-
eststo: reg y x1 x2, vce(robust)
:进行 OLS 回归并存储结果,回归结果将以 est1 、est2 等名称存储; -
eststo modelname: reg y x1 x2, vce(robust)
:与上个命令基本相同,但可以选择了存储结果时使用的名称,而不是仅仅使用 est1 等,如本例中使用 myreg1 作为输出结果的名称; -
eststo: quietly reg y x1 x2 x3, vce(robust)
:与上个命令基本相同,但使用quietly
告诉 Stata 不用显示输出任何结果; -
esttab est1 est2, b(a3) se(a3) star(* 0.1 ** 0.05 *** 0.01) r2(3) ar2(3) scalars(F) nogaps
:使用esttab
命令可以输出接近发表质量的表格。本例中b(a3)
、se(a3)
中的a3
确保每个估计回归系数和每个标准误至少有 3 位有效数字,scalars(F)
显模型的 统计量,star
后可以设置不同显著性水平的星号,nogaps
可以删除行与行之间的空格,有助于复制表格到 word 中; -
esttab est1 est2 using results, rtf
:将存储的名为 est1 和 est2 表格保存到名为 results 的 word 文件中,需要在逗号之后添加rtf
选项; -
estadd scalar xdiff = r(estimate)
: 使用estadd
可以保存额外的命令,本例中将估计的差异与回归结果一起存储,保存到名为xdiff
的标量中。
需要注意的是使用 eststo
命令存储的结果在退出 Stata 之前一直存在,如果要删除之前存储的结果,请执行以下操作:
-
eststo clear
:清除所有先前存储的结果,以避免混淆。
6. 面板数据模型
6.1 固定效应—使用虚拟变量
在面板数据模型中,可以创建虚拟变量,将它们包括为回归变量。对于 n 个个体,应该加上 (n-1) 个虚拟变量。有一种简单的方法可以做到这一点,只需要在变量前加上 i.
,虚拟变量就会在回归过程中自动生成。例如:
-
regress yvar xvars i.sex i.age i.city i.year, vce(robust)
:将因变量回归到解释变量和性别、年龄、城市和年份的虚拟变量上; -
regress yvar xvars i.entity i.time, vce(robust)
:将因变量回归到解释变量和个体、时间的虚拟变量上,i.entity
和i.time
表示创建个体固定效应和时间固定效应。
此外,也可以使用面板数据专属的命令 xtreg
来进行回归估计,需要提前使用 xtset
命令将数据声明为面板数据。
-
xtset idvar timevar
:告诉 Stata 使用的是面板数据,其中 idvar 是样本中每个个体的唯一 ID,timevar 是时间变量; -
xtreg yvar xvarlist, fe
:添加fe
选项进行固定效应回归,不再需要添加个体的虚拟变量了,使用传统非稳健的标准误; -
xtreg yvar xvarlist, fe vce(cluster clustervar)
:个体定效应再次回归,使用聚类稳健标准误。并聚类到指定的变量 clustervar。
6.2 固定效应—去均值
Stata 的 areg
命令提供了在 OLS 回归中包含固定效应的简单方法,允许对一个变量进行去均值处理,例如个体或年份,但不能同时对两个变量进行去均值处理。如果你想要个体固定效应和时间固定效应,需要使用虚拟变量输入其中一个。
-
areg yvar xvarlist, absorb(byvar) vce(robust)
:将因变量 yvar 回归到自变量 xvarlist 和需要区分的虚拟变量上,这些虚拟变量由absorb
选项中的 byvar 变量表示。
6.3 随机效应和豪斯曼检验
-
xtreg yvar xvarlist, re vce(robust)
:添加re
选项进行随机效应回归,使用稳健标准误; -
estimates store random
:在运行完随机效应模型后存储估计结果; -
hausman fixed random
:使用hausman
命令检验是否采用随机效应模型代替固定效应模型。如果结果被拒绝,表明系数估计是不一致的,固定效应模型不能使用。
7. 受限因变量模型
7.1 Probit 和 Logit 模型
-
probit yvar xvarlist, vce(robust)
:进行 Probit 回归; -
logit yvar xvarlist, vce(robust)
:进行 Logit 回归。
当使用 Probit 或 Logit 模型,或任何其他非线性模型时,必须谨慎地解释估计的系数。首先,不能只看一个系数估计然后就说:当 X 增大 1 时,Y 等于 1 的概率增大。要做出这样的声明,必须计算回归量特定值的拟合概率。其次,要根据 X 的系数估计的符号是正还是负来判断概率随 X 的增加或减少,—如果变量 X 在模型中有交互项,这种说法可能是错误的。
因此,重要的是要有方法计算样本中不同可能类型的个体的预测概率,并比较当回归变量的值变化时,这些预测概率如何变化。下面这个命令可以帮助你得到样本中每个独立个体的预测概率,给定该个体的回归量:
-
predict probofOutcome, pr
:对每个观测分别计算因变量为 1 的预测概率; -
margins, at(x1=1)
:计算样本中所有个体 y=1 的平均概率,假设所有个体都有 x1=1 的可能性; -
margins, at(x1=(0 1))
:计算样本中所有个体 y=1 的平均概率,对于两种不同的假设情况:如果他们都有 x1=0 或者他们都有 x1=1。
7.2 Tobit 模型
如果误差项为正态分布,则 Tobit 模型的命令如下所示:
-
tobit yvar xvarlist, vce(robust) ll(#)
:进行 Tobit 回归,其中变量的值有一个下限ll(#)
和上限ul(#)
; -
truncreg yvar xvarlist, vce(robust) ll(#)
:也可以使用truncreg
替换tobit
命令。
7.3 计数模型
泊松分布模型和负二项模型是两种最常见的计数模型。
-
poisson yvar xvarlist, vce(robust)
:估计泊松分布模型,其中计数因变量来自泊松到达过程,即在一段时间内“到达”的泊松率 (每一个因变量的计数加 1); -
nbreg yvar xvarlist, vce(robust)
:估计负二项计数模型,该模型允许因变量的方差超过平均值,而泊松分布模型假设两者相等。
8. 工具变量回归
8.1 两阶段最小二乘法
-
ivregress 2sls yvar exogXVarlist (endogXVarlist = otherInstruments), vce(robust)
:因变量yvar
对自变量exogXVarlist
和endogXVarlist
的两阶段最小二乘回归,假设endogXVarlist
中的变量是内生的,otherInstruments
为该变量的工具变量; -
ivregress 2sls yvar exogXVarlist (endogXVarlist = otherInstruments), vce(robust) first
:增加first
选项可以报告第一阶段的回归结果。
8.2 广义矩估计法工具变量
-
ivregress gmm yvar exogXVarlist (endogXVarlist = otherInstruments), vce(robust) first
:进行 GMM 工具变量回归,报告第一阶段结果; -
ivregress gmm yvar exogXVarlist (endogXVarlist = otherInstruments), vce(robust) small
:如果用小样本进行 GMM 工具变量回归,需要在最后加上small
选项。
8.3 有限信息最大似然法工具变量
-
ivregress liml yvar exogXVarlist (endogXVarlist = otherInstruments), vce(robust) first
:对于 LIML 工具变量回归,需要在上述回归命令中输入liml
,报告第一阶段结果。
8.4 工具变量检验
在估计了带有工具变量的回归后,可以按照如下方式进行过度识别检验、弱工具变量检验、正交检验以及异方差检验:
-
estat overid
:在ivregress
或ivreg2
命令之后执行过度识别检验,需要安装第三方overid
命令; -
estat firststage
:在ivregress
或ivreg2
命令之后,输出第一个阶段回归结果,如果 就可以判断为弱工具变量; -
ivreg2 yvar exogXVarlist (endogXVarlist=otherInstruments), vce(robust) gmm orthog(vars)
:在 GMM 工具变量回归之后,对变量vars
进行正交检验。
对于进行工具变量的异方差检验,可以使用第三方的 ivhettest
命令。
8.5 其他工具变量回归
对于 Probit 和 Logit 模型,可用 ivprobit
和 ivlogit
命令。对于 Tobit 模型,可用 ivtobit
命令。此外,一般的非线性 GMM 模型也可以使用 GMM 命令进行估计。
9. 时间序列模型
首先,需要像上面的面板数据模型那样对数据进行 xtset
,指定时间变量。
9.1 自相关
-
corrgram varname
:创建一个表,显示变量varname
的滞后值的自相关性; -
correlate x L.x L2.x L3.x L4.x L5.x L6.x L7.x L8.x
:计算x
的前 8 期滞后项自相关的方法; -
correlate L(0/8).x
:可以使用更紧凑的方式表示x
的前 8 期滞后。
9.2 自回归和自回归分布滞后模型
-
regress y L.y, vce(robust)
:对y
及其自身的滞后 1 期进行回归,使用稳健标准误; -
regress y L(1/4).y, vce(robust)
:对y
及其自身的滞后前 4 期进行回归,使用稳健标准误; -
regress y L.y L.x1 L.x2, vce(robust)
:对y
、y
的滞后一期、x
的滞后 1 期和 2 期进行回归,使用稳健标准误。 -
regress y L.y if time(1962q1,1999q4), vce(robust)
:这里使用的if time(…)
将样本限制在指定日期范围内的时间,在本例中是从 1962 年第一季度到 1999 年第四季度。
9.3 滞后期选择的信息准则
如果要得到经过回归后的 BIC(Bayes-Schwartz information criterion) 和 AIC (Akaike information criterion) 信息准则值,需要使用 estat ic
命令:
-
estat ic
:回归后显示 AIC 和 BIC 信息准则。
如果要在回归结果表中包含 BIC 和 AIC 值,你可以使用 eststo
和 esttab
命令,如下述三行命令所示:
eststo m1: regress y L.y, vce(robust)
eststo m2: regress y L(1/2).y, vce(robust)
esttab m1 m2, b(a3) se(a3) star(* 0.10 ** 0.05 *** 0.01) r2(3) ar2(3) scalars(F bic aic) nogaps
为了加快比较不同滞后期的过程,可以在 do 文档编辑器中使用 forvalues
循环。例如:
forvalues lags = 1/6 {
eststo m `lags': regress y L(1/`lags').y, vce(robust)
}
esttab m1 m2 m3 m4 m5 m6, stats(bic aic)
9.4 单位根的 ADF 检验
dfuller y
对非平稳性进行 DF 检验,检查 y
有单位根的零假设 (在单侧检验中)。
-
dfuller y, regress
:在做 DF 检验时,显示相关的回归; -
dfuller y, lag(2) regress
:使用y
的两期滞后对非平稳性进行 ADF 检验,检查y
有单位根的零假设,并显示相关回归; -
dfuller y, lag(2) trend regress
:使用y
的两期滞后对非平稳性进行 ADF 检验,并且在相关回归中包含一个时间趋势项。
10. 系统方程估计
10.1 三阶段最小二乘
-
reg3 (consump wagepriv wagegovt) (wagepriv consump govt capital1)
:估计一个两方程 3SLS 模型,其中因变量有两个,分别是 consump 和 wagepriv。假设因变量是内生的,工具变量包括所有其他变量 wagegovt、govt、capital1 和常数项; -
reg3 (qDemand: quantity price pcompete income) (qSupply: quantity price praw), endog(price)
:估计一个两方程 3SLS 模型,命名方程名为 qDemand 和 qSupply,因为它们有相同的因变量 quantity,并将价格作为 price 内生变量,将其他三个回归量和常数视为外生的。
10.2 似无相关回归
sureg (price foreign mpg displ) (weight foreign length), corr
:估计一个 SUR 模型,corr
选项将显示残差的交叉方程相关矩阵,以及对误差项在方程之间进行具有零协方差的零假设的检验。
10.3 多元回归
mvreg headroom trunk turn = price mpg displ gear_ratio length weight, corr
: 同时估计 3 个多元回归方程,第一个以 headroom 为因变量,第二个以 trunk 为因变量,第三个以 turn 为因变量。在每种情况下,等号右侧列出的六个变量都被用作回归量。corr
选项将显示残差的交叉方程相关矩阵,以及对误差项在方程之间具有零协方差的零假设的检验。同样的估计可以通过运行三个独立的回归得到,但这个命令也分析了误差项的相关性,并使之后进行交叉方程检验成为可能。
11. 相关推文
Note:产生如下推文列表的 Stata 命令为:
lianxh 常用命令 结果, m
安装最新版lianxh
命令:
ssc install lianxh, replace
-
专题:Stata教程 -
Stata小抄:一组图记住Stata常用命令 -
专题:Stata资源 -
会计期刊论文的结果可重现吗? -
专题:结果输出 -
Stata结果输出:用esttab命令绘制LaTeX表格 -
Stata结果输出:addest自己定制输出的统计量 -
Stata:回归结果导出-parmest -
Stata结果输出:tabout命令详解 -
Stata结果输出-addest:自己添加统计量 -
Stata结果输出:Excel结果表变身LaTeX表格 -
Stata结果输出:outreg2命令详解 -
Stata结果输出:pwcorr_a输出相关系数矩阵 -
Stata结果输出:两阶段回归的结果输出 -
Stata结果输出:用esttab生成带组别名称的LaTeX回归表格 -
Stata结果输出:tabout-用-Stata-输出高品质表格 -
Stata:毕业论文大礼包 A——实证结果输出命令大比拼 -
Stata:毕业论文大礼包 B——神速实证结果输出之搜狗短语 -
Stata可视化:让他看懂我的结果! -
Stata:回归结果中不报告行业虚拟变量的系数 -
asdoc:Stata 结果输出又一利器!
课程推荐:Stata2R:针对 Stata 用户的 R 课程
主讲老师:游万海 (福州大学)
课程时间:2023 年 12 月 3/10/17 (三个周日)
🍓 课程主页:https://www.lianxh.cn
New! Stata 搜索神器:
lianxh
和songbl
GIF 动图介绍
搜: 推文、数据分享、期刊论文、重现代码 ……
👉 安装:
. ssc install lianxh
. ssc install songbl
👉 使用:
. lianxh DID 倍分法
. songbl all
🍏 关于我们
-
连享会 ( www.lianxh.cn,推文列表) 由中山大学连玉君老师团队创办,定期分享实证分析经验。 -
直通车: 👉【百度一下: 连享会】即可直达连享会主页。亦可进一步添加 「知乎」,「b 站」,「面板数据」,「公开课」 等关键词细化搜索。
发表评论