Stata操作

ssc install:下载未储存到电脑的指令。

一、定义面板数据

xtset:定义面板数据,将变量按照个体、年份的顺序纵向排列,非平衡面板数据会自动删去不平衡部分。

sum:后接变量,会出均值、方差及最大最小值等信息。

logout,save(Describe) word replace:sum +变量名 :logout是输出到文档,save括号中是输出文件名称,word是文件类型。

pwcorr_a:变量之间线性相关关系检验。

二、时间序列平稳检验

xtunitroot llc:单位根检验,检验不通过时可通过加lags(aic) demean,或者对变量取差分,或者同时使用两种方式看看能否通过。

xtcointtest kao:考的协整检验,检验不通过时可以尝试对变量取差分,同时只要被解释变量是零阶单整,解释变量一阶单整数大于等于二即可通过检验。

三、判断模型选择及计量问题检验

分别reg、xtreg,re后,再xttest0:P值越小则越应采用随机效应模型。

xttest1:判断是否存在自相关,原假设为不存在序列相关。

est store re:储存随机效应的结果。

xtreg,fe后,再xttest3:判断是否存在异方差,P值为0则存在异方差。

xtcsd,pes:原假设为无截面相关。

xtcsd,fri、xtcsd,fre:对比FREES一栏中的检验结果与分位数间大小,大于拒绝无截面相关的原假设。

est store fe:储存固定效应结果。

xtserial:序列是否存在自相关,原假设为不存在序列自相关。

hausman fe re后再est table re fe,b(%6.3f) star(0.1 0.05 0.01):展示怀斯曼检验结果,原假设为选择随机效应模型,即P值小于0.1选固定效应模型。

quietly xtreg 后再xtoverid:聚类稳健误的过度识别,存在异方差时补充,P值小拒绝随机效应。

tab 变量名,gen(变量名):生成虚拟变量。

test + 虚拟变量名:联合显著性检验,伴随概率小说明显著。

xtscc :修正计量问题后的短面板指令;xtgls:长面板指令;xtreg,fe cluster(要聚类的变量,通常是省市、地级市或个体) robust,效果等同于xtscc,只是对于标准误的处理方式有区别。

PS:在选择时间、个体或者双向效应的计量模型时,往往要根据具体问题进行调整,结合问题与检验结果确定最合适的模型。一般的,只要双向固定效应拟合优度较高,则选双向固定效应。

四、基准回归

xtscc:要在方程中加入个体时间层面的虚拟变量控制双向效应,xtreg,fe cluster() robust则已经自动控制了个体与时间维度。逐步回归是将控制变量逐一加入到方程的回归方式。

替换变量稳健性检验:直接换被解释变量与解释变量。

preserve:保存操作进行前的状态;winsor2  , cuts(1 99) replace:括号内控制缩尾的分位数,当上下缩尾超过5%的时候结果便有待考量;restore:恢复缩尾前的数据。

reg ,robust cluster():混合截面回归。

oprobit ,robust cluster():有序probit回归,适用于分类型变量类别较多的时候,输出的结果只有边际系数才有意义。

margins, dydx(关切的变量) atmeans 后再asdoc margins, dydx(关切的变量) atmeans, replace:将回归所得的边际系数输出到指定文档中。

outreg2 using 名称.doc,alpha(0.01, 0.05, 0.1) symbol(***, **, *) dec(3):将结果保存到指定文件夹。

五、内生性检验

ivreg2

xtivreg2  时间虚拟变量 (解释变量=工具变量), fe robust cluster() first savefp(first)后再eststo second后再local var="解释变量"后再est restore first`var':将工具变量第一阶段的回归过程保留下来,一般的,不可识别检验P值要小于0.05,弱工具变量检验F统计值要高于10,当工具变量多于解释变量时,则要进行过度识别检验,怀斯曼伴随概率要尽量低。

xtbound2:广义矩估计,工具变量尽量避免用滞后项。滞后用l.表示,前置用F.表示。

六、异质性分析

preserve后再keep if  关注组别变量== 数值,后再restore,进行分组回归。

组间系数同时显著时,大小比较要进行组间差异检验:
bdiff, group(组变量) model(模型) reps(100) bs detail,reps是指定的抽样次数。

七、中介效应

原三步法,先对核心解释变量与被解释变量回归,再核心解释变量对中介变量回归,最后再将三个变量放进一个方程回归。但是因为三步法有争议,对于其中中介对被解释变量的解释可以用理论解释,即采用两步法加以论证。

在三步法中,如果第二步对中介回归不显著或第三步中直接效应不显著,那么需要进行bootstrap检验:bootstrap r(ind_eff) r(dir_eff), reps(抽样次数): sgmediation 被解释变量, mv(中介变量) iv(解释变量) cv(控制变量)。

八、门槛效应

xthreg 变量,rx(被解释变量) qx(门槛变量) thnum(门槛数) grid(200) trim(0.01 0.01 0.01) bs(300 300 300) vce(cluster 个体):trim内是精度,bs内是抽样次数。

九、调节效应

egen 变量均值=mean(变量),后再gen 去中心化变量=变量-变量均值,后再gen 调节变量交互项=解释变量*调节变量,回归中代入交互项、调节变量以及解释变量即可。

十、空间计量

forvalue i = 起始时间/结束时间 {
         preserve
             keep if years == `i'
             spatwmat using W_neib.dta,name(Wmns) standardize
             spatgsa 被解释变量, weights(Wmns) moran
         restore
         }

生成历年全域莫兰指数,其中矩阵类型分邻接矩阵、逆反距离矩阵、反距离矩阵及经济距离矩阵,需要自己导入到stata格式。

xtmoran 被解释变量, wname(权重矩阵.dta) morani(年份) graph symbol(name):绘制特定年份局域莫兰指数散点图。

use W_neib.dta
spcs2xt var1-var个体数上限,matrix(自定义矩阵名) time(年份数上限)
spatwmat using 自定义矩阵名.dta,name(自定义矩阵名) standardize
reg 变量
spatdiag,weights(自定义矩阵名)

生成一个能够参与空间计量的矩阵,并进行lm检验。

spatwmat using W_neib.dta,name(自定义矩阵名1) standardize
xsmle EPQ DGE FCO EDL CLO IEO MSO FIM,model(sdm)  wmat(自定义矩阵名1) hausman nolog 

怀斯曼检验

xsmle 变量,model(sdm) wmat(自定义矩阵名1) fe nolog effects
est store sdm_a
xsmle 变量,model(sar) wmat(自定义矩阵名1) fe nolog effects 
est store sar_a
xsmle 变量,model(sem) emat(自定义矩阵名1) fe nolog effects 
est store sem_a
lrtest sdm_a sar_a
lrtest sdm_a sem_a

lr检验,选择空间自回归、空间误差以及空间杜宾模型。

xsmle 变量名,model(sdm)  wmat(自定义矩阵名1) hausman nolog
test [Wx]解释变量=[Wx]控制变量1=[Wx]控制变量2=[Wx]控制变量3=0 
testnl ([Wx]解释变量=-[Spatial]rho*[Main]解释变量) ([Wx]控制变量1=-[Spatial]rho*[Main]控制变量1) ([Wx]控制变量2=-[Spatial]rho*[Main]控制变量2) ([Wx]控制变量3=-[Spatial]rho*[Main]控制变量3) 

wald检验

xsmle 变量,model(sdm)  wmat(Wmns) fe type(ind) nolog effects
est store sdm_ind
xsmle 变量,model(sdm)  wmat(Wmns) fe type(time) nolog effects
est store sdm_time
xsmle 变量,model(sdm)  wmat(Wmns) fe type(both) nolog effects
est store sdm_both
lrtest sdm_both sdm_ind,df(16)
lrtest sdm_both sdm_time,df(16)

选个体或双向效应,括号内为自由度。

回归:xsmle 变量,model(sdm)  wmat(自定义矩阵名1) fe type(both) nolog effects vce(oim) cluster(counties)

这里采用了距估计消除了内生性。

PS:检验结果意义参考:一文读懂空间杜宾_空间杜宾模型-CSDN博客

stata空间杜宾模型(SDM)论文实战-莫兰指数-空间效应分解-反经济距离矩阵-门槛效应-面板数据 - 知乎

十一、双重差分

xtdidregress (方程) (treatment) ,group(个体) time(时间) vce(cluster 个体) 
虚拟变量treatment表示的是时间与实验组虚拟变量乘积为1时的数值,最终呈现的是实验组受影响后标识为1,其它则标识为0
estat trendplots
绘制平行趋势图并进行图设置
estat ptrends原假设是满足平行趋势假定(平行趋势检验)
foreach x in 年份的等差数列 {
 gen treated_`x'=treated*[years==`x']
 }
preserve
drop treated_政策发生年份
reghdfe 被解释变量 treated_年份都具备的前两位*, absorb(个体 时间 c.控制变量1#years c.控制变量2#years c.控制变量3#years ) cluster(banks)
coefplot, baselevels keep(treated_*) vertical coeflabels(treated_时间1=时间1 treated_时间2=时间2 )  yline(0,lwidth(vthin) lpattern(dash) lcolor(teal)) xline(4,lwidth(vthin) lpattern(dash) lcolor(teal))ylabel(,labsize(*0.85) angle(0)) xlabel(,labsize(*0.75)) ytitle("系数") xtitle("年份") msymbol(O) msize(small) mcolor(gs1) addplot(line @b @at,lcolor(gs1) lwidth(medthick)) ciopts(lpattern(dash) recast(rcap) msize(medium)) graphregion(color(white))
restore
平行趋势检验

mat b =J(500,1,0)
*系数矩阵
mat se = J(500,1,0) 
*标准误矩阵
mat p = J(500,1,0) 
*p值矩阵
**循环500次抽取随机样本并回归
forvalues i = 1/500{
    use Boostrap检验.dta, clear
    *创建一个面板数据,使得其中仅包含自变量、因变量及虚拟变量及个体时间序号
    xtset 个体 时间       
    *设置面板数据
    keep if years == 初始年份 
    *保留一期数据
    sample n, count 
    *随机抽取n个个体(根据作为实验组数量确定n取值)
    keep banks 
    *得到抽取样本id编号
    save match_id.dta, replace 
    *另存id数据
    merge 1:m 个体 using Boostrap检验.dta 
    *与原数据匹配
    drop Treated 
    *删掉原本的处理组虚拟变量
    gen Treated = (_merge == 3) 
    *将所抽取样本赋值为1,其余为0,得到伪处理虚拟变量
    gen did = Treated*Time
    reghdfe 被解释变量 did, absorb(个体 时间 c.控制变量1#years c.控制变量2#years c.控制变量3#years) vce(cluster 个体)
    * 将回归结果赋值到对应矩阵的对应位置
    mat b[`i',1] = _b[did]
    mat se[`i',1] = _se[did]
    * 计算P值并赋值于矩阵
    mat p[`i',1] = 2*ttail(e(df_r), abs(_b[did]/_se[did]))
}
* 矩阵转化为向量
svmat b, names(coef)
svmat se, names(se)
svmat p, names(pvalue)
* 删除空值并添加标签
drop if pvalue1 == .
label var pvalue1 p值
label var coef1 估计系数
keep coef1 se1 pvalue1 
save 绘图数据.dta,replace

*绘图
use 绘图数据.dta,clear
twoway (kdensity coef1) (scatter pvalue1 coef1, msymbol(smcircle_hollow) mcolor(black)),title("安慰剂检验") xlabel(-0.5(0.1)0.5) ylabel(,angle(0)) xline(0.289, lwidth(vthin) lp(shortdash)) xtitle("变异系数") yline(0.05,lwidth(vthin) lp(dash)) ytitle(p value) legend(label(1 "核密度估计值") label( 2 "伴随概率")) plotregion(style(none)) graphregion(color(white))
*无边框
*白底
*安慰剂检验及绘图

十二、数据预处理

keep 变量:保留变量。

drop if mi(变量1,变量2):删除缺失值。

drop if (变量1==n1)|(变量1==n2):删除符合特定条件的个体。

recode 变量 (1=0) (2=1):对变量进行重新编码。

replace 变量 =n-变量:对变量进行运算。

label define 变量标签名称 1 "女" 0 "男",后再label values 变量 变量标签名称:命名变量。

merge:实现宏微观数据相匹配。


 

<think>好的,我现在需要回答用户关于在Stata中执行内生性检验方法和命令的问题。首先,我需要回忆一下内生性检验的相关知识,并结合用户提供的引用内容来组织答案。 用户提到的引用包括处理内生性方法,比如工具变量法(IV)、随机边界模型、GMM估计,以及heckman命令等。但问题聚焦在内生性检验,也就是如何检测模型中是否存在内生性问题。根据我的理解,内生性检验通常涉及检验解释变量是否与误差项相关,常用的方法包括Hausman检验、Durbin-Wu-Hausman检验,以及工具变量的有效性检验,如过度识别检验(Sargan检验或Hansen检验)、弱工具变量检验等。 接下来,我需要将这些方法Stata的具体命令对应起来。例如,Hausman检验可以通过`hausman`命令执行,而工具变量法的检验可能在ivregress或ivreg2之后进行。另外,用户提供的引用中提到了外生变量的检验,如不可识别检验和C统计量,这可能涉及到工具变量的相关检验步骤。 需要注意的是,内生性检验的步骤通常分为几个部分:首先确定可能存在内生性的变量,然后选择合适的工具变量,接着进行检验,如比较OLS和IV估计的结果差异(Hausman检验),检验工具变量的有效性(如弱工具变量检验、过度识别检验)等。 此外,用户提供的引用[2]中提到了“不可识别检验”和“C统计量”,这可能是指工具变量是否满足排他性约束和相关性条件。例如,不可识别检验可能是指工具变量是否与内生变量相关,而C统计量用于检验过度识别的情况,比如在存在多个工具变量时,检验部分工具的外生性。 在Stata中,使用ivreg2命令进行工具变量回归后,会输出相关的检验统计量,如Anderson canon. corr. LR statistic(用于不可识别检验),Cragg-Donald Wald F统计量(弱工具变量检验),Sargan或Hansen J检验(过度识别检验)。这些内容需要详细说明。 同时,用户提到的heckman命令用于处理样本选择偏差导致的内生性,这可能涉及到Heckman两阶段模型的选择,但用户的问题更关注于一般的检验方法,而不仅仅是处理。因此,可能需要区分不同的内生性来源(如遗漏变量、测量误差、样本选择等)对应的检验方法。 总结步骤可能包括: 1. 使用Hausman检验比较OLS和IV估计结果。 2. 工具变量有效性检验:弱工具变量检验、过度识别检验。 3. 其他检验方法,如Durbin-Wu-Hausman检验。 接下来需要将这些步骤与具体的Stata命令结合,例如: - `ivreg2`进行工具变量回归,并获取检验结果。 - `estat endogenous`在ivregress后使用,但可能某些命令需要额外安装。 - `hausman`命令比较两个估计量。 需要确认在Stata中如何执行这些检验,例如: 1. 进行OLS回归并保存结果。 2. 进行IV回归(如使用ivregress或ivreg2)并保存结果。 3. 使用hausman命令比较两者是否存在显著差异,若存在,则说明存在内生性。 此外,可能还需要解释每个检验的原假设和如何解读结果,例如Hausman检验的原假设是OLS和IV估计量无差异,即不存在内生性;如果拒绝原假设,则存在内生性问题。 然后,需要确保回答结构清晰,分步骤说明方法和命令,并引用用户提供的资料中的相关内容,比如引用[2]提到的不可识别检验和C统计量,引用[3]提到的GMM等方法,引用[4]中的heckman命令示例,但用户问题主要是检验而非处理方法,所以可能需要调整引用对应的部分。 可能遇到的疑问点: - 如何正确使用hausman检验的步骤,是否必须先进行IV估计? - 工具变量回归的命令在Stata中的不同,比如ivregress和ivreg2的区别。 - 如何解释弱工具变量检验的结果,如Cragg-Donald统计量的临界值。 - 如何执行过度识别检验,比如Sargan检验与Hansen检验的适用情况。 需要确保回答准确,例如指出在Stata中使用ivreg2命令可以方便地获得这些检验结果,而传统的ivregress可能需要其他步骤。此外,安装ivreg2可能需要用户通过`ssc install ivreg2`来获取。 最后,生成相关问题时要围绕内生性检验和处理方法,比如如何选择工具变量,其他检验方法如Durbin-Wu-Hausman检验,或者如何处理弱工具变量问题等。</think>在Stata中执行内生性检验通常涉及以下方法及命令: --- ### 一、内生性检验的核心方法 1. **Hausman检验** - **原理**:比较OLS估计量与工具变量法(IV)估计量的结果差异。若存在显著差异,则说明存在内生性[^1]。 - **Stata命令**: ```stata * 步骤1:进行OLS回归 reg y x1 x2 estimates store ols * 步骤2:进行IV回归(需指定工具变量) ivregress 2sls y x1 (x2 = z1 z2) estimates store iv * 步骤3:执行Hausman检验 hausman iv ols, constant sigmamore ``` - **结果解读**:若p值小于显著性水平(如0.05),则拒绝原假设(无内生性),表明存在内生性问题[^2]。 2. **Durbin-Wu-Hausman检验** - **原理**:在工具变量回归框架下直接检验内生性,无需手动比较OLS和IV结果。 - **Stata命令**(需安装`ivreg2`): ```stata ssc install ivreg2 // 安装ivreg2 ivreg2 y x1 (x2 = z1 z2), robust ``` - **输出中的检验项**: - `Durbin (score) chi2` 和 `Wu-Hausman F` 统计量,p值小于0.05表示存在内生性[^3]。 --- ### 二、工具变量有效性检验 若使用工具变量法,需验证工具变量的有效性: 1. **不可识别检验(Underidentification Test)** - **原假设**:工具变量与内生变量无关。 - **检验统计量**:Anderson canon. corr. LR统计量(输出于`ivreg2`结果中)。 - **解读**:p值<0.05表明工具变量与内生变量相关,拒绝不可识别假设。 2. **弱工具变量检验** - **原假设**:工具变量与内生变量弱相关。 - **检验统计量**:Cragg-Donald Wald F值(`ivreg2`输出)。 - 经验法则:F值>10表明工具变量强度足够[^3]。 3. **过度识别检验(Sargan/Hansen检验)** - **适用条件**:工具变量数量 > 内生变量数量。 - **原假设**:所有工具变量均外生。 - **命令示例**: ```stata ivreg2 y x1 (x2 = z1 z2 z3), robust ``` - **解读**: - Sargan检验(适用于同方差)或Hansen J检验(异方差稳健),p值>0.05表明工具变量有效[^3]。 --- ### 三、其他情境下的检验 1. **样本选择偏差(Heckman模型)** - **命令**:使用`heckman`命令检验选择方程的内生性: ```stata heckman y x1 x2, select(z1 z2) twostep ``` - **输出中的`rho`和`sigma`参数**:若显著不为0,表明存在样本选择导致的内生性[^4]。 2. **面板数据内生性检验** - **方法**:使用GMM(广义矩估计)结合Hansen检验: ```stata xtabond2 y L.y x1, gmm(L.y) iv(x1) robust ``` --- ### 四、总结步骤 1. 初步判断内生性来源(如遗漏变量、测量误差等)。 2. 选择工具变量并执行IV回归(`ivreg2`)。 3. 通过Hausman或Durbin-Wu-Hausman检验确认内生性。 4. 检验工具变量的有效性和强度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值