stata笔记要点.docx
《stata笔记要点.docx》由会员分享,可在线阅读,更多相关《stata笔记要点.docx(30页珍藏版)》请在冰豆网上搜索。
![stata笔记要点.docx](https://file1.bdocx.com/fileroot1/2023-7/10/2371fd9a-d26f-4724-b799-a5a4fd0051bb/2371fd9a-d26f-4724-b799-a5a4fd0051bb1.gif)
stata笔记要点
1.一般检验
假设系数为 0, t 比较大则拒绝假设,认为系数不为 0.
假设系数为 0,P 比较小则拒绝假设,认为系数不为 0.
假设方程不显著,F 比较大则拒绝假设,认为方程显著。
2.小样本运用 OLS 进行估计的前提条件为:
(1)线性假定。
即解释变量与被解释变量之间为线性关系。
这一前提可以通过将非线性
转换为线性方程来解决。
(2)严格外生性。
即随机扰动项独立于所有解释变量:
与解释变量之间所有时候都是正
交关系,随机扰动项期望为 0。
(工具变量法解决)
(3)不存在严格的多重共线性。
一般在现实数据中不会出现,但是设置过多的虚拟变量
时,可能会出现这种现象。
Stata 可以自动剔除。
(4)扰动项为球型扰动项,即随即扰动项同方差,无自相关性。
3.大样本估计时,一般要求数据在 30 个以上就可以称为大样本了。
大样本的前提是
(1)线性假定
(2)渐进独立的平稳过程
(3)前定解释变量,即解释变量与同期的扰动项正交。
(4)E(XiXit)为非退化矩阵。
(5)gt 为鞅差分序列,且其协方差矩阵为非退化矩阵。
与小样本相比,其不需要严格的外生性和正太随机扰动项的要求。
4.命令
稳健标准差回归:
reg y x1 x2 x3, robust回归系数与 OLS 一样,但标准差存在差异。
如果认为存在异方差,则使用稳健标准差。
使用稳健标准差可以对大样本进行检验。
只要样本容量足够大,在模型出现异方差的情况下,使用稳健标准差时参数估计、假
设检验等均可正常进行,即可以很大程度上消除异方差带来的副作用
对单个系数进行检验:
test lnq=1
线性检验:
testnl _b[lnpl]=_b[lnq]^2
5.如果回归模型为非线性,不方便使用 OLS,则可以采取最大似然估计法(MLE),或者非线
性最小二乘法(NLS)
6.违背经典假设,即存在异方差的情况。
截面数据通常会出现异方差。
因此检验异方差可以:
(1) 看残差图,但只是直观,可能并不准确。
rvfplot (residual-versus-fitted plot) 与拟合值的散点图
rvpplot varname (residual-versus-predictor plot) 与解释变量的散点图
扰动项的方差随观测值而变动,表示可能存在异方差。
(2) 怀特检验:
estat imtest, white(post-estimation information matrix test)
P 比较小,则拒绝同方差假设,表示存在异方差,不能用 OLS。
反之则证明为同方差。
(3)BP 检验
estat hettest,iid(默认设置为使用拟合值 y^)
estat hettest, rhs iid(使用方程右边的解释变量,而不是 y^)
estat hettest [ varlist],iid (使用某个指定的解释变量)
P 小,则拒绝原假设。
如果存在异方差,则可以:
(1)使用 OLS+稳健标准差 robust
(2)广义最小二乘法(GLS)
(3)加权最小二乘法(WLS)
predict el, res(预测残差)
g e2=el^2
辅助回归:
g lne2=log(e2)
reg lne2 lnq, noc
predict lne2f计算辅助回归的拟合值
g e2f=exp(lne2f) 去掉对数即权重之倒数
reg lntc lnq lnpl lnpk lnpf [aw=1/e2f]
reg y x1 x2 x3 [aw=1/var](aw 表示 analytical weight, var 表示随即扰动项的方差。
)
或者:
predict u, residuals
predict yf, xb
gen lnu2=ln(u^2)
gen yf2=yf^2
quietly reg lnu2 yf yf2
predictnl u2f = exp (xb())
gen sd=sqrt(u2f)
vwls lntc lnq lnpl lnpf lnpk , sd(sd)
(4)可行广义最小二乘法(FGLS)
FGLS 所做的过程和 GLS 一样,只是 GLS 假设扰动项的方差已知,若要用 GLS,必须计
算得到扰动项方差,而 FGLS 则是在未知方差的情况下求方差并最终通过将异方差转换为同
方差后再运用 OLS 的结果。
因此,GLS 和 FGLS 在过程上是一致的。
6.自相关
时间序列中容易出现自相关,而截面数据也可能存在空间自相关。
人为处理数据如移动
平均等做法也可能导致自相关。
检验自相关可以:
(1)作图,但并不严格。
定义滞后算子 L.(只有时间序列数据和面板数据才能定义时间变量。
)
tsset yaear
一阶差分:
D.x=xt-xt-1 D2. X=xt-xt-2
LD. 表示一阶差分的滞后值
画图:
scatter el L.el
ac el (看自相关图)
pac el (看偏相关图)
(2)BG 检验
estat bgodfrey (默认 p=1)
estat bgodfrey,lags(p)
estat bgodfrey, nomiss0 (使用不添加 0 的 BG 检验)
使用命令 ac查看自相关图,或者设置较大的 p 值进行显著性检验,t 期不显著了,
则选择 P=T-1
统计检验 P 值小,则拒绝假设。
(3)box-pierce Q 检验/ Ljung-Box Q
reg y x1 x2 x3
predict el, resid
wntestq el(使用 stata 提供的默认滞后期)
wntestq el, lags(p)(使用自己设定的滞后期)
(4)DW 检验:
现在已经不常用,因为其只能检验一阶自相关。
estat dwatson
自相关的处理方法:
(1)使用 OLS+异方差自相关稳健的标准差(HeteroskedasticityandAutocorrelation
Consistent Standard Error, HAC)
newey y x1 x2 x3, lag(p)(HAC 标准差,必须制定滞后阶数 p)
滞后期数选择 n^1/4
(2)使用 OLS+聚类稳健的标准差(cluster robust standard error)面板数据中经常使用聚类稳
健的标准差。
reg y x1 x2 x3, cluster(state)(聚类稳健标准差,假设“state”为聚类变量)
(3)使用可行广义最小二乘法(FGLS)
prais y x1 x2 x3(使用默认的 PW 估计法)
prais y x1 x2 x3, corc(使用 CO 估计法)
(4)修改模型设定,可能自相关是由于遗漏了自相关的解释变量。
7 多重共线性
在回归后,使用命令 VIF
estat vif 经验表示, vif <10, 则不存在多重共线性。
如果存在多重共线性,但是只关心整个方程预测被解释变量的能力,或者只关心变量的
显著性,则不必理会多重共线性,因为多重共线性只是对单个解释变量的解释能力估计出
现了偏差。
存在多重共线性,则逐个剔除。
8.遗漏变量(解决扰动项严格外生性的问题)
遗漏变量与解释变量不相关时,扰动项与解释变量不相关,OLS 估计依然一致,但扰动
项方差过大,影响估计的精确度
如果遗漏变量与解释变量相关,扰动项与解释变量则会相关,导致 OLS 估计不再一致。
出现“遗漏变量偏差”。
所以可以不研究某些解释变量而只对感兴趣的解释变量进行研究,但是重要的是遗漏解
释变量不能与解释变量相关。
解决遗漏解释变量的方法有:
(1) 加入尽可能多的控制变量(controlvarible),从理论上说明遗漏变量与扰动项不相
关,或很弱的相关
(2) 使用代理变量(proxy variable),这在控制变量不可得的时候采用,如用 IQ 代替能
力
(3) 工具变量法
(4) 使用面板数据(短面板、长面板、动态面板)
(5) 随即实验和自然实验
9.选择解释变量的个数的时候,要选择适当的方式。
(1)按照变量个数使得矫正可决系数最大的准则选择个数(如果加入变量,反倒 A-R 变小,
则去掉加入的变量。
)
(2)赤池信息准则(AIC akaike Information Criteria)
(3)贝叶斯信息准则(Bayesian Information Criteria)
(4)汉南-昆信息准则(Hanan-Quinn Information Criteria) 但这一准则不常用
命令:
estat ic
取 AIC BIC 最大时候的变量个数
10.处理极端数据:
reg y x1 x2 x3
predict lev, leverage(列出所有解释变量的影响力值)
gsort –lev(将所有的观测值按照 lev 的降序排列)
sum lev(看 LVE 的最大值和平均值)
list lev 1/3 (列出影响力最大的三个值)
可以将极端数据加入和省略进行对比。
10 虚拟变量
M 个定性的量,最多可以有(M-1)个虚拟变量
设置虚拟变量:
generate d=(year>=1978)
如希望将每个省设置为虚拟变量,则需要 :
tabulate province, generate(pr)
回归简化为:
reg y x1 x2 x3 pr2-pr31
11.工具变量法
这可以解决扰动项与自变量的相关问题,设置的工具变量需要与扰动项无关而与内生
解释变量相关。
传统的工具变量法一般通过两阶段最小二乘法 TSLS、2SLS(two stage least
square)。
第一阶段,工具变量对内生解释变量回归;第二阶段,被解释变量对工具变量的
拟合值进行回归。
多个工具变量的线性组合仍然可以作为工具变量。
命令:
ivregress 2sls depvar [varlist1] (varlist2=inslist)
Depvar 为被解释变量,varlist1 为外生解释变量,varlist2 为内生解释变量,
instlist 为工具变量。
如:
ivregress 2sls y x1 (x2 = z1 z2)
ivregress 2sls y x1 (x2 x3 = z1 z2 z3 z4), r first (r 表示用异方差的标准差,first 表示
在结果中显示第一阶段的回归。
)
在面板数据中执行 2SLS 可以用:
xtivreg depvar [varlist1] (varlist_2=varlist_iv)(详见
help xtivreg)
检验工具变量与解释变量的相关性:
即检验工具变量是否为弱工具变量,
命令:
estat firststage, all forcenonrobust(all 表示显示每个内生变量的统计量,而非
仅仅所有内生变量综合的统计量,forcenonrobust 表示及时在进行工具变量法时用了稳健
标准差,也仍然允许计算 estat firststage)
解决弱工具变量的方法包括
A. 寻找更强的工具变量
B. 弱工具变量较多,则舍弃弱工具变量,
C. 用有限信息最大似然估计法(Limited information maximum likelihood estimation,
LIML)LIML 与 2SLS 渐进等价,但在弱工具变量的情况下,LIML 的小样本性质可能
优于 2SLS.
命令为:
ivregress liml depvar [varlist 1] (varlist2 = instlist)
过度识别(即多余的工具变量的个数)命令为:
estat overid 但并不能告诉哪些工具
变量无效。
使用工具变量的前提是存在内生解释变量(即解释变量与扰动项相关),这也需要检
验。
如果所有解释变量都是外生变量则用 OLS 比用工具变量法更有效,反之应该用工具变
量法。
豪斯曼检验就是假设所有解释变量都为外生变量。
豪斯曼检验的 stata 命令:
reg y x1 x2
estimates store ols(存储 OLS 的结果)
ivregress 2sls y x1 (x2= z1 z2)(假设怀疑 x2 为内生变量)
estimates store iv(存储 2SLS 的结果)
hausman iv ols, constant sigmamore (根据存储的结果进行豪斯曼检验)
但 uguo 存在异方差,则 OLS 并不是最有效的,传统额豪斯曼检验不适用于异方差的情
形,解决方法是“自助法”;或者使用“杜宾-吴-豪斯曼 DWH 检验”也可以适用于存在异
方差的情况。
命令:
estat endogenous
在球型扰动项的假定下,2SLS 是最有效的,但是如果扰动项存在异方差或者自相关,
则广义矩估计(generalized method of moments, GMM)更有效。
GMM 与 2SLS 的关系就相
当于 GLS 与 OLS 之间的关系。
GMM 过程:
scc install ivreg2(安装程序 ivreg2)
scc install ranktest (安装另外一个在运行 ivreg2 时需要用到的辅助程序 ranktest)
use data
xtset panelvar timevar (设置面板变量和时间变量)
ivreg2 y x1(x2=z1 z2), gmm2s
12.短面板:
(固定效应和随机效应模型)
N 大 T 小的一般叫做短面板。
面板数据的优点为:
可以解决遗漏变量的问题,可以提
供更多动态行为的信息,样本较多从而估计更准确。
但面板数据一般不满足独立同分布的
假设。
处理面板数据的一个方法是将面板数据当作横截面数据处理进行 OLS 回归,称为“混
合回归”,但它忽略了同一个聚类存在的相关问题。
虽然通常可以假定面板数据不同个体的
扰动项的独立性,但是对于同一个体却存在固定效应和随机效应。
固定效应模型通常可以采用组内估计法(FE)和一阶差分法(FD)。
当 T=2 时,FD=FE;
当 T>2,扰动项独立同分布时,FE 优于 FD。
因此,实践用 FE 较多,而对动态面板,则用
FD 较多。
随机效应的存在使得 OLS 估计是一致但无效的。
可使用广义最小二乘法(FGLS)来进
行估计。
也可以使用组间估计量(BE)
用豪斯曼检验选择是选用固定效应模型还是随机效应模型,如果统计量大于零界值,
则拒绝假设。
如果假设成立,RE 最有效,但是不适用于异方差的情形。
解决方法是自助法
和辅助回归。
非平衡面板经常会损失数据,导致破坏样本的随机性。
xtset panelva timevar(设定面板数据的面板个体变量和时间变量)
encode country, gen (cntry)(为面板个体编号使得面板个体为整数)
显示面板数据统计特征:
xtdes(显示面板数据结构,是否为平衡面板)
xtsum(显示组内、组间和整体的统计指标)
xttab varname(显示组内、组间与政体的分布频率)
xtline varname(对每个个体分别显示该变量的时间序列图,如果希望叠放,则选择
overlay)
reg y x1 x2 x3, vce (cluster id)(混合回归,VCE 是以 id 为 cluster 的聚类稳健标准差,
因为同一地区不同时间扰动项之间一般存在自相关。
) VCE 是考虑到了同一聚类之间的同方
差现象。
xtreg Y X1 X2 X3, fe vce (cluster id)(使用固定效应模型回归)
得到的回归中 rho 表示来自个体效应 ui 的比例。
Xtreg YX1 X2 X3, fe中的 F 检验通过,则可以使用混合回归模型。
若拒绝假设(p 小),
则 FE 更优,每个个体都有自己的固定效应。
但此时的由于没有使用稳健回归,因此 F 检验
并不有效,还需要进一步用 LSDV 法观察。
LSDV 法的 stata 命令为:
xi:
xtreg y x1 x2 x3 i.id, vce(cluster id)(xi 为增添互动项 interaction expansion,i.id 表示
根据确定个体变量 id 生成的虚拟变量,在这里是 state) (P 小,则说明个体虚拟变量很显著,
因此,不满足无个体效应的假设,则不能用混合回归模型。
)
对于固定效应模型,也可以用一阶差分法 FD 的命令:
xtserial y x1 x2 x3, output(我的 stata 不能识别 xtserial 咋回事?
)一般认为 FE 比
FD 有效,故较少使用 FD。
也可以在固定效应中考虑时间效应,即双向固定效应:
tab year gen(year)定义年度虚拟变量
xtreg YX1 X2 X3 year2-year7, fe vce (cluster id)(明明是 stata12,为什么说数据太多不
能计算?
要把前面的计算保存等清空,那后面怎么对比?
)
test year1 year2 year3。
。
year7对年度虚拟变量的联合检验为
检验存在时间效应和固定效益后,还可能存在随机效应,对随机效应进行检查:
xtreg y x1 x2 x3, re vce (cluster id)(随机效应 FGLS)
xtreg y x1 x2 x3, mle(随机效应 MLE)
检验个体随机效应存在一个 LM 检验,需要在随机效应估计之后进行:
Xtreg fatal spircons unrate perinc beertax, re vce (cluster, state)
estimates store RE
xttest0
如果 P 很小,则拒绝假设,认为在“随即效应”与“混合回归”之间,应该选择“随
即效应”。
如果数据质量不好,可以考虑使用组间估计量,但会损失较多信息量。
reg y x1 x2 x3, be
estimates store BE
选用固定效应模型还是随机效应模型运用豪斯曼检验
xtreg y x1 x2 x3, fe
estimates store FE
xtreg y x1 x2 x3, re
estimates store RE
hausman FE RE, constant sigmamore
P 小,则强烈拒绝使用随机效应模型,而应采用固定效应模型。
但是如果聚类稳健标准差和普通标准差相差较大,则传统的豪斯曼检验并不适用。
这
时需要进行辅助回归。
目前在 stata 中需要手动进行。
步骤如下:
quietly xtreg fatal beertax spircons unrate perinck, re
scalar theta=e(theata)(从回归中得到 THETA)
global yandxforhausman fatal beertax spircons unrate perinck(使用 yandxforhausman
时,代表了所有使用的变量)
foreach x of varlist $yandxforhausman{
by state:
egen mean ‘x’=mean(‘x’)到底用什么表示?
gen md‘x’=‘x’-mean‘x’
gen red‘x’=‘x’-theata*mean‘x’
}
quietly xtreg redfatal redbeertax redspircons redunrate redperinck mdbeertax mdspircons
mdunrate mdperinck, vce(cluster state)
test mdbeertax mdspircons mdunrate mdperinck
检验发现 P 小,则拒绝 r=0 的假设,应该选用固定效应模型。
(疑问:
那中间那个式子呢?
)
面板数据在回归之前要通过平稳性检验,其处理步骤简化为:
面板数据单位根检验—
协整检验—回归。
一般为了方便,采用相同单位根检验 LLC 检验和不同单位根检验 Fisher-
ADF 检验(非面板数据一般采用 ADF 检验)。
两种检验均拒绝存在单位根的元假设,则认
为序列平稳。
13.长面板和动态面板(不能像短面板那样假定独立同分布,而应该运用广义最小二乘法
FGLS 进行估计,解决组内和组间的自相关。
)
解释变量包含被解释变量的滞后项,则为动态面板,反之为静态面板。
(1)仅解决组内自相关的 FGLS
tab state, gen(state)考虑个体效应,生成州虚拟变量。
gen t=year-1962考虑时间趋势,生成时间趋势变量
reg Y X1 X2 X3 State2-state10 t, vce(cluster state)用 LSDV 估计双向固定效应模型
estimates store OLS
考虑组内自相关的情形:
用命令 stpcse
stpcse Y X1 X2 X3 state2-state10 t, corr(ar1)约束条件为自回归系数都相同的一阶。
考虑各组自回归系数不同的组内自相关情形
stpcse Y X1 X2 X3 state2-state10 t, corr(psar1)
如果仅考虑不同个体扰动项存在异方差而忽略自相关,则可以用
stpcse Y X1 X2 X3 state2-state10 t, hetonly
将以上各估计的系数及标准差列表便于比较:
究竟应该采用 OLS 还是采用 AR1,则需要检验自相关。
(2)同时处理组内自相关和组间同期相关的 FGLS 的命令 xtgls
xtgls Y X1 X2 X3state2-state10 t , panels(iid/het/cor) corr(ar1/psar1)
iid 表示不同个体(组间)的扰动项独立且具有相同的方差,het 表示不同个体的扰动项
独立但具有不同的方差,cor 表示不同个体的扰动项同期相关且具有不同的方差。
Corr 表
示组内,解释同前。
如果加上 igls 则表示用的迭代 FGLS,而非两步 FGLS.
若执行 xtgls 或者 xtpcse 时没有使用个体虚拟变量,则为随机效应模型,若使用了则为
固定效应模型。
(3)长面板数据自相关和异方差检验
组间异方差检验,运用似然比检验
Xtgls Y X1 X2 X3, igls panel(het)(允许异方差的迭代式 FGLS 估计)
Estimates store hetro (将异方差条件下的估计结果储存为 hetero)
Xtgls y x1 x2 x2, igls(同方差条件下的 FGLS)
Estimates store homo(将同方差条件下的估计结果储存为 homo)
local df = e(N_g)-1(计算自由度,即约束条件个数,其中 e(N_g)为个体个数)
lrtest hetero homo, df(‘df’)(制定自由度,进行似然比检验。
) 符号到底是怎样的?
P=0,则强烈拒绝 LR 检验的“组间同方差”假设。
另一种检验组间异方差的方法为 xttest3,只能在 xtreg,fe 或者 xtgls 之后使用: