Stata命令整理
STATA常用命令大全

STATA 常用命令大全调整变量格式:format x1 %10.3f ——将x1的列宽固定为10,小数点后取三位format x1 %10.3g ——将x1的列宽固定为10,有效数字取三位format x1 %10.3e ——将x1的列宽固定为10,采用科学计数法format x1 %10.3fc ——将x1的列宽固定为10,小数点后取三位,加入千分位分隔符format x1 %10.3gc ——将x1的列宽固定为10,有效数字取三位,加入千分位分隔符format x1 %-10.3gc ——将x1的列宽固定为10,有效数字取三位,加入千分位分隔符,加入“-”表示左对齐合并数据:use "C:\Documents and Settings\xks\桌面\2006.dta", clearmerge using "C:\Documents and Settings\xks\桌面\1999.dta"——将1999和2006的数据按照样本(observation)排列的自然顺序合并起来use "C:\Documents and Settings\xks\桌面\2006.dta", clearmerge id using "C:\Documents and Settings\xks\桌面\1999.dta" ,unique sort——将1999和2006的数据按照唯一的(unique)变量id来合并,在合并时对id进行排序(sort)建议采用第一种方法。
对样本进行随机筛选:sample 50在观测案例中随机选取50%的样本,其余删除sample 50,count在观测案例中随机选取50个样本,其余删除查看与编辑数据:browse x1 x2 if x3>3 (按所列变量与条件打开数据查看器)edit x1 x2 if x3>3 (按所列变量与条件打开数据编辑器)数据合并(merge)与扩展(append)merge表示样本量不变,但增加了一些新变量;append表示样本总量增加了,但变量数目不变。
stata命令大全(全)

*********面板数据计量分析与软件实现*********之迟辟智美创作说明:以下do文件相当一部份内容来自于中山年夜学连玉君STATA教程,感谢他的贡献.自己做了一定的修改与筛选.*面板数据模型* 1.静态面板模型:FE 和RE* 2.模型选择:FE vs POLS, RE vs POLS, FE vs RE(pols混合最小二乘估计)* 3.异方差、序列相关和截面相关检验* 4.静态面板模型(DIDGMM,SYSGMM)* 6.面板协整分析(FMOLS,DOLS)*** 说明:15均用STATA软件实现, 6用GAUSS软件实现.* 生产效率分析(尤其指TFP):数据包络分析(DEA)与随机前沿分析(SFA)*** 说明:DEA由DEAP2.1软件实现,SFA由Frontier4.1实现,尤其后者,偏重于比力CD与Translog生产函数,一步法与两步法的区别.常应用于地域经济不同、FDI溢出效应(Spillovers Effect)、工业行业效率状况等.* 空间计量分析:SLM模型与SEM模型*说明:STATA与Matlab结合使用.常应用于空间溢出效应(R&D)、财政分权、处所政府公共行为等.** 一、经常使用的数据处置与作图** 指定面板格式xtset id year(id为截面名称,year为时间名称)xtdes /*数据特征*/xtsum logy h /*数据统计特征*/sum logy h /*数据统计特征*/*添加标签或更改变量名label var h "人力资本"rename h hum*排序sort id year /*是以STATA面板数据格式呈现*/sort year id /*是以DEA格式呈现*/*删除个别年份或省份drop if year<1992drop if id==2 /*注意用==*/*如何获得连续year或id编号(当完成上述把持时,year或id就不连续,为形成panel格式,需要用egen命令)egen year_new=group(year)xtset id year_new**保管变量或保管观测值keep inv /*删除变量*/**或keep if year==2000**排序sort id year /*是以STATA面板数据格式呈现sort year id /*是以DEA格式呈现**长数据和宽数据的转换*长>>>宽数据reshape wide logy,i(id) j(year)*宽>>>长数据reshape logy,i(id) j(year)**追加数据(用于面板数据和时间序列)xtset id year*或者xtdestsappend,add(5) /暗示在每个省份再追加5年,用于面板数据/ tsset*或者tsdes.tsappend,add(8) /暗示追加8年,用于时间序列/*方差分解,比如三个变量Y,X,Z都是面板格式的数据,且满足Y=X+Z,求方差var(Y),协方差Cov(X,Y)和Cov(Z,Y)bysort year:corr Y X Z,cov**生产虚拟变量*生成年份虚拟变量tab year,gen(yr)*生成省份虚拟变量tab id,gen(dum)**生成滞后项和差分项xtset id yeargen ylag=l.y /*发生一阶滞后项),同样可发生二阶滞后项*/gen dy=D.y /*发生差分项*/*求出各省2000年以前的open inv的平均增长率collapse (mean) open inv if year<2000,by(id)变量排序,当变量太多,按规律排列.可用命令aorder或者order fdi open insti** 二、静态面板模型** 简介* 面板数据的结构(兼具截面资料和时间序列资料的特征)use product.dta, clearbrowsextset id yearxtdes** 固定效应模型** 实质上就是在传统的线性回归模型中加入 N1 个虚拟变量,* 使得每个截面都有自己的截距项,* 截距项的分歧反映了个体的某些不随时间改变的特征** 例如: lny = a_i + b1*lnK + b2*lnL + e_it* 考虑中国29个省份的CD生产函数*******画图**散点图+线性拟合直线twoway (scatter logy h) (lfit logy h)*散点图+二次拟合曲线twoway (scatter logy h) (qfit logy h)*散点图+线性拟合直线+置信区间twoway (scatter logy h) (lfit logy h) (lfitci logy h)*按分歧个体画出散点图和拟合线,可以以做出fe vs re的初判断*twoway (scatter logy h if id<4) (lfit logy h if id<4) (lfit logy h if id==1) (lfit logy h if id==2) (lfit logy h if id==3)*按分歧个体画散点图,so beautiful!!!*graph twoway scatter logy h if id==1 || scatter logy h ifid==2,msymbol(Sh) || scatter logy h if id==3,msymbol(T) || scatter logy h if id==4,msymbol(d) || , legend(position(11) ring(0) label(1 "北京") label(2 "天津") label(3 "河北") label(4 "山西")) **每个省份logy与h的散点图,并将各个图形合并twoway scatter logy h,by(id) ylabel(,format(%3.0f))xlabel(,format(%3.0f))*每个个体的时间趋势图*xtline h if id<11,overlay legend(on)* 一个例子:中国29个省份的CD生产函数的估计tab id, gen(dum)list* 回归分析reg logy logk logl dum*,est store m_olsxtreg logy logk logl, feest store m_feest table m_ols m_fe, b(%6.3f) star(0.1 0.05 0.01)* Wald 检验test logk=logl=0test logk=logl* stata的估计方法解析* 目的:如果截面的个数非常多,那么采纳虚拟变量的方式运算量过年夜* 因此,要寻求合理的方式去除失落个体效应* 因为,我们关注的是 x 的系数,而非每个截面的截距项 * 处置方法:** y_it = u_i + x_it*b + e_it (1)* ym_i = u_i + xm_i*b + em_i (2) 组内平均* ym = um + xm*b + em (3) 样本平均* (1) (2), 可得:* (y_it ym_i) = (x_it xm_i)*b + (e_it em_i) (4) /*within estimator*/* (4)+(3), 可得:* (y_itym_i+ym) = um + (x_itxm_i+xm)*b + (e_item_i+em) * 可重新暗示为:* Y_it = a_0 + X_it*b + E_it* 对该模型执行 OLS 估计,即可获得 b 的无偏估计量**stata后台把持,揭开fe估计的神秘面纱!!!egen y_meanw = mean(logy), by(id) /*个体内部平均*/egen y_mean = mean(logy) /*样本平均*/egen k_meanw = mean(logk), by(id)egen k_mean = mean(logk)egen l_meanw = mean(logl), by(id)egen l_mean = mean(logl)gen dyw = logy y_meanwgen dkw = logk k_meanwgen dlw=logll_meanwreg dyw dkw dlw,noconsest store m_statagen dy = logy y_meanw + y_meangen dk = logk k_meanw +k_meangen dl=logll_meanw+l_meanreg dy dk dlest store m_stataest table m_*, b(%6.3f) star(0.1 0.05 0.01)* 解读 xtreg,fe 的估计结果xtreg logy h inv gov open,fe* R^2* y_it = a_0 + x_it*b_o + e_it (1) pooled OLS* y_it = u_i + x_it*b_w + e_it (2) within estimator* ym_i = a_0 + xm_i*b_b + em_i (3) between estimator** > Rsq: within 模型(2)对应的R2,是一个真正意义上的R2 * > Rsq: between corr{xm_i*b_w,ym_i}^2* > Rsq: overall corr{x_it*b_w,y_it}^2***** sigma_u, sigma_e, rho* rho = sigma_u^2 / (sigma_u^2 + sigma_e^2)dis e(sigma_u)^2 / (e(sigma_u)^2 + e(sigma_e)^2)** 个体效应是否显著?* F(28, 373) = 338.86 H0: a1 = a2 = a3 = a4 = a29* Prob > F = 0.0000 标明,固定效应高度显著*如何获得调整后的 R2,即 adjR2 ?ereturn listreg logy h inv gov open dum**拟合值和残差* y_it = u_i + x_it*b + e_it* predict newvar, [option]/*xb xb, fitted values; the defaultstdp calculate standard error of the fitted valuesue u_i + e_it, the combined residualxbu xb + u_i, prediction including effectu u_i, the fixed or randomerror componente e_it, the overall error component */xtreg logy logk logl, fepredict y_hatpredict a , upredict res,epredict cres, uegen ares = a + reslist ares cres in 1/10** 随机效应模型** y_it = x_it*b + (a_i + u_it)* = x_it*b + v_it* 基本思想:将随机干扰项分成两种* 一种是不随时间改变的,即个体效应 a_i* 另一种是随时间改变的,即通常意义上的干扰项 u_it * 估计方法:FGLS* Var(v_it) = sigma_a^2 + sigma_u^2* Cov(v_it,v_is) = sigma_a^2* Cov(v_it,v_js) = 0* 利用Pooled OLS,Within Estimator, Between Estimator* 可以估计出sigma_a^2和sigma_u^2,进而采纳GLS或FGLS* Re估计量是Fe估计量和Be估计量的加权平均* yr_it = y_it theta*ym_i* xr_it = x_it theta*xm_i* theta = 1 sigma_u / sqrt[(T*sigma_a^2 + sigma_u^2)]* 解读 xtreg,re 的估计结果use product.dta, clearxtreg logy logk logl, re* R2* > Rsq: within corr{(x_itxm_i)*b_r, y_itym_i}^2* > Rsq: between corr{xm_i*b_r,ym_i}^2* > Rsq: overall corr{x_it*b_r,y_it}^2* 上述R2都不是真正意义上的R2,因为Re模型采纳的是GLS估计.** rho = sigma_u^2 / (sigma_u^2 + sigma_e^2)dis e(sigma_u)^2 / (e(sigma_u)^2 + e(sigma_e)^2)** corr(u_i, X) = 0 (assumed)* 这是随机效应模型的一个最重要,也限制该模型应用的一个重要假设* 然而,采纳固定效应模型,我们可以粗略估计出corr(u_i, X) xtreg market invest stock, fe** 时间效应、模型的筛选和罕见问题*目录* 时间效应(双向固定(随机)效应模型)* 模型的筛选* 面板数据罕见问题* 面板数据的转换** 时间效应** 单向固定效应模型* y_it = u_i + x_it*b + e_it* 双向固定效应模型* y_it = u_i + f_t + x_it*b + e_itqui tab year, gen(yr)drop yr1xtreg logy logk logl yr*, fe* 随机效应模型中的时间效应xtreg logy logk logl yr*, fe** 模型的筛选** 固定效应模型还是Pooled OLS?xtreg logy logk logl yr*, fe /*Wald 检验*/ qui tab id, gen(dum) /*LR检验*/ reg logy logk logl /*POLS*/est store m_olsreg logy logk logl dum*,noconsest store m_felrtest m_ols m_feest table m_*, b(%6.3f) star(0.1 0.05 0.01) * RE vs Pooled OLS?* H0: Var(u) = 0* 方法一:BP 检验xtreg logy logk logl, rexttest0* FE vs RE?* y_it = u_i + x_it*b + e_it* Hausman 检验* 基本思想:如果 Corr(u_i,x_it) = 0, Fe 和 Re 都是一致的,但Re更有效* 如果 Corr(u_i,x_it)!= 0, Fe 仍然有效,但Re是有偏的* 基本步伐***情形1:huasman为正数xtreg logy logk logl, feest store m_fextreg logy logk logl, reest store m_rehausman m_fe m_re*** 情形2:qui xtreg logy h inv gov open,feest store fequi xtreg logy h inv gov open,reest store rehausman fe re* Hausman 检验值为负怎么办?* 通常是因为RE模型的基本假设 Corr(x,u_i)=0 无法获得满足* 检验过程中两个模型的方差协方差矩阵都采纳Fe模型的 hausman fe re, sigmaless* 两个模型的方差协方差矩阵都采纳Re模型的hausman fe re, sigmamore*== 为何有些变量会被drop失落?use nlswork.dta, cleartsset idcode yearxtreg ln_wage hours tenure ttl_exp, fe /*正常执行*/* 发生种族虚拟变量tab race, gen(dum_race)xtreg ln_wage hours tenure ttl_exp dum_race2 dum_race3, fe * 为何 dum_race2 和 dum_race3 会被 dropped ?* 固定效应模型的设定:y_it = u_i + x_it*b + e_it (1)* 由于个体效应 u_i 不随时间改变,* 因此若 x_it 包括了任何不随时间改变的变量,* 城市与 u_i 构成多重共线性,Stata会自动删除之.*******异方差、序列相关和截面相关问题* 简介* y_it = x_it*b + u_i + e_it** 由于面板数据同时兼顾了截面数据和时间序列的特征,* 所以异方差和序列相关肯定会存在于面板数据中;* 同时,由于面板数据中每个截面(公司、个人、国家、地域)之间还可能存在内在的联系,* 所以,截面相关性也是一个需要考虑的问题.** 此前的分析依赖三个假设条件:* (1) Var[e_it] = sigma^2 同方差假设* (2) Corr[e_it, e_its] = 0 序列无关假设* (3) Corr[e_it, e_jt] = 0 截面不相关假设** 当这三个假设无法获得满足时,便分别呈现异方差、序列相关和截面相关问题;* 我们一方面要采纳各种方法来检验这些假设是否获得了满足;* 另一方面,也要在这些假设无法满足时寻求合理的估计方法.* 假设检验*== 组间异方差检验(截面数据的特征)* Var(e_i) = sigma_i^2* Fe 模型xtreg logy logk logl, fexttest3* Re 模型* Re自己已经较年夜水平的考虑了异方差问题,主要体现在sigma_u^2上*== 序列相关检验* Fe 模型xtserial logy logk loglxtserial logy logk logl, output* Re 模型xtreg logy logk logl, rexttest1 /*提供多个统计检验量*/*== 截面相关检验* xttest2命令 H0: 所有截面残差的相关系数都相等xtreg logy logk logl, fexttest2* 由于检验过程中执行了SUE估计,所以要求T>Nxtreg logy logk logl if id<6, fexttest2* xtcsd 命令(提供了三种检验方法)xtreg logy logk logl, fextcsd , pesaran /*Pesaran()*/xtcsd , friedman /*Friedman(1937)*/xtreg logy logk logl, rextcsd , pesaran* 估计方法*== 异方差稳健型估计xtreg logy h inv gov open, fe robustest store fe_rbxtreg logy h inv gov open, fe robustest store fe* 结果比较esttab fe_rb fe, b(%6.3f) se(%6.3f) mtitle(fe_rb fe)*== 序列相关估计* 一阶自相关 xtregar, fe/re* 模型: y_it = u_i + x_it*b + v_it (1)* v_it = rho*v_it1 + z_it (2)xtregar logy h inv gov open, feest store fe_ar1xtregar logy h inv gov open,fe lbi /*BaltagiWu LBI test*/* 说明:* (1) 这里的DurbinWatson =1.280677 具有较为复杂的分布,* 分歧于时间序列中的DW统计量.* (2) 其临界值见Bhargava et al. (1982, The Review of Economic Studies 49:553549)* (3) BaltagiWu LBI = 1.4739834 基本上没有太年夜的参考价值,* 因为他们并未提供临界值表,而该统计量的分布又相当复杂xtregar logy h inv gov open, reest store re_ar1* 两阶段估计xtregar logy h inv gov open, fe twostepest store fe_ar1_two* 结果比较xtreg logy h inv gov open, feest store felocal models "fe fe_ar1 re_ar1 fe_ar1_two "esttab `models', b(%6.3f) se(%6.3f) mtitle(`models') r2sca(r2_w corr)* 高阶自相关* newey2 命令newey2 logy h inv gov open, lag(2)*== 组间相关(截面相关)* cluster 选项use xtcs.dta, clearxtreg logy h inv gov open, fe cluster(id)est store fe_clusterxtreg logy h inv gov open, re cluster(id)est store re_cluster************看过去很晕,采纳一种综合处置:* xtgls 命令* xtpcse 命令* 简介(Greene, 2000, chp15)** 模型* y = X*b + U* 重点在于考虑干扰项 U 的结构,包括* (1) 异方差 (2) 序列相关 (3) 截面相关性* 应用范围:多用于“年夜T,小N”型面板数据,* 因为,此时截面的异质性其实不是重点关注的,而时序特征则较为明显* 因此,模型设定中未考虑个体效果* | y_1 | | X_1 | | e_1 |* | y_2 | | X_2 | | e_2 |* | . | | . | | . |* | . | = | . | * b + | . |* | . | | . | | . |* | y_n | | X_n | | e_n |* 截面异方差* E[e_i*e_i'] = s_i^2** | s1^2 0 ... 0 |* | 0 s2^2 ... 0 |* | . |* V = | . |* | . |* | 0 0 ... sn^2 |* 截面相关* E[e_i*e_i'] = s_ij^2** | s_11 s_12 ... s_1n |* | s_21 s_22 ... s_2n |* | . |* V = | . | * sigma^2* | . |* | s_n1 s_n2 ... s_nn |* 序列相关* E[e_i*e_i'] = s_i^2 * M_i** | s1^2*M_1 0 ... 0 |* | 0 s2^2*M_2 ... 0 |* | . |* V = | . |* | . |* | 0 0 ... sn^2*M_n |* GLS 估计* b = [X'V^{1}*X]^{1}[X'V^{1}y]* Var[b] = [X'V^{1}*X]^{1}* 估计和检验*=== xtgls 命令use invest2.dta, clearxtgls market invest stock, panels(iid) /*iid, 同即是Pooled OLS*/est store g_0reg market invest stockest store g_olsxtgls market invest stock, panel(het) /*截面异方差*/est store g_phetxtgls market invest stock, corr(ar1) /*所有截面具有相同的自相关系数*/est store g_par1xtgls market invest stock, corr(psar1) /*每个截面有自己的自相关系数*/est store g_psar1xtgls market invest stock, panel(corr) /*截面间相关且异方差*/est store g_pcorrxtgls market invest stock, p(c) corr(ar1)est store g_all* 检验异方差xtgls market invest stock, panel(het) /*截面异方差*/xttest3* 检验序列相关xtserial market invest stock* 检验截面相关xtgls market invest stock, panel(het)xttest2* 结果比较xtreg market invest stock, feest store felocal models "fe g_0 g_ols"esttab `models', b(%6.3f) se(%6.3f) mtitle(`models') r2sca(r2_w)local models "fe g_phet g_par1 g_psar1 g_pcorr g_all"esttab `models', b(%6.3f) se(%6.3f) mtitle(`models') r2sca(r2_w) compress* 说明:* 为何 xtgls 不汇报 R2 ?* 因为此时的R2未必介于0和1之间,不具有传统线性回归模型中R2的含义*=== xtpcse 命令* 默认假设:存在截面异方差和截面相关* 估计方法:OLS 或 PraisWinsten 回归* 有别于xtgls(采纳FGLS估计)* 更适于方块面板 N不年夜(1020),T不年夜(1040)* 与 xtgls 的区别:估计方法分歧* xtgls 采纳GLS进行估计,而xtpsce采纳OLS.use invest2.dta, clearxtpcse invest market stockest store pcse_full /*OLS估计,调整异方差和截面相关后的标准误*/xtgls invest market stock, panels(correlated)est store m_xtgls /*FGLS估计,异方差和截面相关*/ xtpcse invest market stock, correlation(ar1)est store pcse_ar1 /*Prais_Winsten估计,共同的自相关系数*/xtpcse invest market stock, correlation(ar1) hetonlyest store pcse_ar1 /*不考虑截面相关*/* 结果比较xtreg invest market stock, feest store felocal models "fe pcse_full m_xtgls pcse_ar1 pcse_ar1"esttab `models', b(%6.3f) se(%6.3f) mtitle(`models') r2sca(r2_w)* xtpcse 的结果与 xtgls 非常相似,但前者可以汇报R2* 当N较年夜时,采纳该方法会非常费时,* 因为方差协方差矩阵是采纳OLS估计的残差计算的use xtcs.dta, clearxtdesxtpcse tl size ndts tang tobin npr /*年夜约58分钟*/est store xtpcsextreg tl size ndts tang tobin npr, feest store fe* 结果比较local models "fe xtpcse"esttab `models', b(%6.3f) se(%6.3f) mtitle(`models') r2sca(r2_w)* 系数估计值有较年夜分歧,但符号和显著性是一致的.***静态面板模型 Part I** 静态面板模型** 简介* 一阶差分IV估计量(Anderson and Hisao, 1982)* 一阶差分GMM估计量(Arellano and Bond, 1991)* 系统GMM估计量(AB,1995; BB,1998)* == 简介 ==** 模型: y[it] = a0*y[it1] + a1*x[it] + a2*w[it] + u_i + e[it]** 特征:解释变量中包括了被解释变量的一阶滞后项* 可以是非平行面板,但要保证时间连续* x[it] ——严格外生变量 E[x_it,e_is] =0 for all t and s* 即,所有干扰项与x都不相关* w[it] ——先决变量 E[w_it,e_is]!=0 for s<t, butE[x_it,v_is]=0 for all s>=t* 即,前期干扰项与当期x相关,但当期和未来期干扰项与x不相关.* y[it1]——内生变量 E[x_it,e_is]!=0 for s<=t* 即,前期和当期,尤其是当期干扰项与x相关* u_i 随机效应,在截面间是 iid 的.u_i 与 e[it] 自力.** 内生性问题:* (1) 若假设 u_i 为随机效应,则 Corr(y[i,t1], u_i) !=0* (2) 若假设 u_i 为个体效应,需要想法子去除之,因为数据为"年夜N小T"* 一阶差分: D.y[i,t1] = y[i,t1] y[i,t2]* D.e[i,t] = e[i,t] e[i,t1]* 显然: Corr(D.y[i,t1], D.e[i,t]) !=0, 差分方程存在内生问题;* 组内去心: ym[i,t1] = y[i,t1] 1/(T1)*(y[i,t1]+...+y[i,T])* em[i,t] = e[i,t] 1/T*(e[i,t]+e[i,t1]+...+e[i,T])* 显然: Corr(ym[i,t1], em[i,t]) !=0, 仍然存在内生性问题** 处置法子:IV估计或GMM估计,选择合适的工具变量** 矩条件: E[e_it,z_it] = 0*========================================*========= 一阶差分 IV 估计量 ============*========Anderson and Hisao(1982)========*========================================** 基本思想:采纳一阶差分去除个体效应 u_i,* y 的滞后二阶作为 D.y[it1] 的工具变量* 同时,D.y[it2] 也可以作为 D.y[it1] 的工具变量use abdata.dta, cleardes /*变量的界说*/tsset id year* 模型: n_it = b1*n_it1 + b2*n_it2* + b3*w_it + b4*w_it1* + b5*k_it + b6*k_it1 + b7*k_it2* + b8*ys_it + b9*ys_it1 + b10*ys_it2*xtivreg n L2.n w L1.w k L1.k L2.k ys L1.ys L2.ysyr1981yr1984 ///(L.n = L3.n), fd** 等价于*xtivreg n L2.n L(0/1).w L(0/2).(k ys) yr1981yr1984 (L.n = L3.n), fd*====================================*========= 一阶差分GMM估计量 =========*==============AB91==================** L.Hansen (1982) 提出 GMM** Arellano and Bond (1991)** 模型:** y[it] = a0*y[it1] + a1*x[it] + a2*w[it] + u_i + v[it]** 假设条件:* 干扰项 v[it] 不存在序列相关;** 适用范围:* 年夜N,小T* 随后,我们会介绍“小N年夜T”型静态面板的估计方法** 基本思想:** 在 Anderson and Hisao(1982) 基础上增加了更多可用的工具变量** 在 t=3 处,y_i1 可以作为所有滞后项的工具变量* 在 t=4 处, y_i1, y_i2 可以作为所有滞后项的工具变量** D.y[it] = a1*D.y[it1] + a2*D.X[it] + D.v[it] X_it = [x_it, w_it] ** 因此,所有工具变量构成的矩阵如下:** |y_i1 0 0 0 0 0 ... 0 ... 0 D.x_i3 |* | 0 y_i1 y_i2 0 0 0 ... 0 ... 0 D.x_i4 |* | 0 0 0 y_i1 y_i2 y_i3 ... 0 ... 0 D.x_i5 |* Z_i = | . . . . . . . . . . . |* | . . . . . . . . . . . |* | 0 0 0 0 0 0 ... y_i1 ... yiT2 D.x_iT |** Z_i 的行数为 T2* Z_i 的列数为 sum_(m=1)^(T2){m} + K, K 为 X 的列数** 以 T =7,K=3 为例,则 Z_i 的列数为 (1+2+3+4+5)+3 = 18 ** 设定工具变量的基来源根基则:** 对内生变量的处置:与上述方法类似,* 即滞后两阶以上的水平变量均可作为差分方程的工具变量 (GMM type)* 对先决变量的处置:滞后一阶以上的水平变量均可作为工具变量 (GMM type)* 对外生变量的处置:自己作为自己的工具变量 (Standard IV) *== 例1:一阶差分估计量的基本设定* 解释变量仅包括 y_it 的一阶滞后项,默认设定* 干扰项同方差,一阶段估计use abdata.dta, clearxtabond n L(0/1).w L(0/2).(k ys) yr1980yr1984est store ab_0* 结果释疑** 1 工具变量的个数是如何确定的?(xtdpd, p.74)** 外生变量的工具变量即是外生变量的个数* L(0/1).w L(0/2).(k ys) yr1980yr1984 共 13个* 内生变量的工具变量:共 27个*list id year n L2.n DL2.n if id == 140** 差分方程的可用工具变量** year of Years of Number of* difference equation instruments instruments* 1978 1976 1* 1979 19761977 2* 1980 19761978 3* 1981 19761979 4* 1982 19761980 5* 1983 19761981 6* 1984 19761982 7** 28个* 2 GMMtype 和 Standard 两种类型的工具变量有何不同?(xtabond,p.27)** GMMtype 是针对内生变量或先决变量而言的工具变量,有多列* Standard 是针对外生变量而言的工具变量,只有一列* 过度识别检验(工具变量的使用是否合理)*estat sargan** 说明:* H0: overidentifying restrictions are valid* 这里,我们拒绝了原假设,但AB91指出,当干扰项存在异方差时,* Sargan检验倾向于过度拒绝原假设,因此此处获得的结论其实不成信.* 采纳两阶段估计,然后再执行Sargan检验较为稳妥:*xtabond n L(0/1).w L(0/2).(k ys) yr1980yr1984,twostepestat sargan** 说明:不外,AB91发现,* 若存在异方差,在两阶段估计后执行Sargan检验往往倾向于* Underreject问题,即过度接受原假设.* 通常而言,这很可能是我们的模型设定不妥,或是工具变量的选择分歧理.* 干扰项序列相关检验** AB91 一阶差分估计量要求原始模型的干扰项不存在序列相关,* 显然,差分后的干扰项肯定存在一阶序列相关,* 因此,我们需要检验差分方程的残差是否存在二阶(或更高阶)序列相关即可** 默认,二阶序列相关检验xtabond n L(0/1).w L(0/2).(k ys) yr1980yr1984,vce(robust)estat abond* 说明:若存在二阶相关,则意味着选取的工具变量分歧理* 高阶序列相关检验xtabond n L(0/1).w L(0/2).(k ys) yr1980yr1984,vce(robust) artest(3)estat abond*== 稳健型估计xtabond n L(0/1).w L(0/2).(k ys) yr1980yr1984, lags(2) robust est store ab4_one_rb* 此时,无法 Sargan 统计量estat sargan*== 两阶段估计 AB91(Tab4(a2)) 考虑异方差问题* 利用第一阶段估计获得的残差构造方差协方差矩阵,进而重新估计模型*xtabond n L(0/1).w L(0/2).(k ys) yr1980yr1984, lags(2) twostep est store ab4_twostep* 此时,Sargan 检验无法拒绝原假设*estat sargan* AB91重要建议:* (1) 采纳一阶段估计结果进行系数显著性的统计推断;* (2) 采纳两阶段估计给出的 Sargan统计量进行模型筛选** 进一步的讨论:* 虽然AB91建议不要采纳两阶段(非稳健)估计进行统计推断,* 但Windmeijer(,Journal of Econometrics)通过模拟分析标明,* 采纳纠偏(biascorrected,WC)后的稳健性VCE,可以更好地进行统计推断xtabond n L(0/1).w L(0/2).(k ys) yr1980yr1984, lags(2) twostep vce(robust)est store ab_wc_rb* 结果比较local mm "ab4_one_rb ab4_twostep ab_wc_rb"esttab `mm',mtitle(`mm')** 结论:* AB91_onestep_rb 的结果与 AB91_WC_rb 的参数估计相同,后者标准误较年夜* 建议采纳 Windmeijer() 两阶段纠偏稳健型估计量.*== 先决变量的设定* 由于当期干扰项显然会影响后续 w 和 k,所以把它们设定为先决变量更为合理* 注意: 此时逗号前就不能再呈现这两个变量了xtabond n L(0/1).ys yr1980yr1984, lags(2) twostep ///pre(w k)est store ab4_preestat sargan* 从 Sargan p值来看,将 w 和 k 设为先决变量似乎更为合理 * pre() 选项的设定xtabond n L(0/1).ys yr1980yr1984, lags(2) twostep ///pre(w,lag(1,3)) pre(k,lag(2,.))** 解释:* pre(w,lag(1,3))* lag(1,3) 中的 1 暗示 L.w 也会作为解释变量,* lag(1,3) 中的 3 暗示 L2.w 和 L3.w 可以作为 L.w 的工具变量,但 L4.w 不成以;* pre(k,lag(2,.))* lag(2,.) 中的 2 暗示 L1.k, L2.k 城市作为解释变量;* lag(2,.) 中的 . 暗示 L3.k, L4.k ... 都可以作为 L2.k 的工具变量* 说明:上述设建都可附加 vce(robust) 选项以便获得稳健型标准误.*== 工具变量过多招致的问题* 过多的工具变量往往招致过度约束假设无法满足* 估计结果的有效性降低,因为部份工具变量与内生或先决变量的相关性很弱* 对矩阵尺寸的要求增加* 解决法子:限制最年夜的滞后阶数xtabond n L(0/1).ys yr1980yr1984, lags(2) twostep ///pre(w,lag(1,3)) pre(k,lag(2,3))*== 系数估计的上下限* 虽然 Pooled OLS 和 Fixed Effects 估计都是有偏的,* 可是二者却决定了 y_it1 真是估计值的上界和下界* 换言之, Pooled OLS 估计高估了真实值* 而 Fixed effects 估计则低估了真实值*=======================================*============= 系统GMM估计量 ===========*==============AB95,BB98===============*=======================================* Arellano and Bover (1995),* Blundell and Bond(1998)* Haha(1999), Judson and Owen(1999)** 适用范围:* 年夜N,小T** AB91 的局限* (1) 当 y[i,t1] 的系数较年夜,即 y[i,t] 暗示出强烈的序列相关时;* (2) 当 Var[u_i]/Var[e_it] 较年夜时,即个体效应的摆荡远年夜于惯例干扰项的摆荡;* AB91 的暗示欠佳.* 原因在于,水平滞后项是差分方程中内生变量的弱工具变量;* 因此,需要寻求更佳的工具变量**== 基本思想:** 几个概念** 水平值—— y x* 水平方程:y_it = b1*y_it1 + b2*x_it + u_i + v_it* 可用工具变量:D.y[i,t1] 可以作为 y[i,t1] 的工具变量* 可用工具变量:y[i,t2],y[i,t3]...都可以作为 D.y[i,t1]的工具变量** 差分GMM估计量与系统GMM估计量的区别** (1) 差分GMM估计量采纳水平值的滞后项作为差分变量的工具变量;* 如 y_it3 是 D.y_it1 的工具变量* (2) 系统GMM估计量进一步采纳差分变量的滞后项作为水平值的工具变量;* 相当于进一步增加了可用的工具变量,* 且估计过程中同时使用水平方程和差分方程* (3) 主要原因在于差分GMM的工具变量往往是弱工具变量,即 corr(X,Z) 过低** xtabond2 命令Roodman()** 既可以估计差分 GMM 估计量,也可以估计系统 GMM 估计量;* 同时可以估计一般化的回归模型* 提供两阶自相关检验,Sargan检验,Hansen检验,以及工具变量外生性检验** xtdpdsys 命令 Stata官方命令,以 xtabond2命令为基础** xtabond2 命令** 适用于 Stata810 各个版本* 既可以完成一阶差分GMM估计* 也可以完成系统GMM估计* 详细参考资料:* Roodman, D. . How to Do xtabond2:* An Introduction to "Difference" and "System" GMM in Stata. * Working Paper 103. Center for Global Development, Washington.*== 使用 xtabond2 命令获得一阶差分估计量* 附加 noleveleq 选项即可* 采纳 xtabond2 估计 AB91 文中表4 的结果* Arellano and Bond (1991), Table 4* Column (a1)use abdata, clearxtabond2 n L(1/2).n L(0/1).w L(0/2).(k ys) yr1980yr1984, ///gmm(L.n) iv(L(0/1).w l(0/2).(k ys) yr1980yr1984) /// nomata noleveleq small* gmm(*) 填写内生变量的名称* iv(*) 填写所有外生变量以及自己设定的工具变量的名称* noleveleq 暗示估计过程中不使用水平方程,即为差分GMM估计量est store aba1_ab2xtabond n L(0/1).w L(0/2).(k ys) yr1980yr1984, lags(2)est store aba1_abesttab aba1_ab2 aba1_ab, mtitle(aba1_ab2 aba1_ab)* Column (a2)* 两阶段估计xtabond2 n L(0/1).w L(0/2).(k ys) L(1/2).n yr1980yr1984, /// gmm(L.n) iv(L(0/1).w l(0/2).(k ys) yr1980yr1984) /// noleveleq small twostepest store aba2_ab2xtabond n L(0/1).w L(0/2).(k ys) yr1980yr1984, lags(2) twostep est store aba2_abesttab aba2_ab2 aba2_ab, mtitle(aba2_ab2 aba2_ab)*=== 一阶差分估计量部份解释变量内生* 一阶段估计xtabond2 n L.n L(0/1).(w k) yr1980yr1984, ///gmm(L.(w k n)) iv(yr1980yr1984) ///noleveleq noconstant small robustest store fd_1s* 两阶段估计xtabond2 n L.n L(0/1).(w k) yr1980yr1984, ///gmm(L.(w k n)) iv(yr1980yr1984) ///noleveleq robust small twostepest store fd_2sesttab fd_1s fd_2s, mtitle(fd_1s fd_2s)*== 系统 GMM 估计量xtabond2 n L.n L(0/1).(w k) yr1978yr1984, ///gmm(L.n) iv(L(0/1).(w k) yr1978yr1984) ///robust small** 解释:** gmm() 选项* 设定内生变量和先决变量,它们的工具变量将有多列,GMM** iv() 选项* 设定严格外生变量,作为自己的工具变量,在工具变量矩阵中仅占一列** 差分方程和水平方程* 默认情况下,差分方程和水平方程都介入估计** robust 选项* (1) 对一阶段估计(不附加twostep选项),* 采纳传统异方差序列相关稳健型估计量计算标准误;* (2) 对两阶段估计(附加twostep选项),* 采纳Windmeijer()纠偏估计量计算标准误;* Sargan检验* Sargan test of overid. restrictions: chi2(34)* 34 = 47 13 (13是外生变量的个数,包括常数项)* 可见,无论采纳Sargan检验还是Hansen J检验,都拒绝了工具变量合理的原假设* 指定工具变量应用于水平方程还是差分方程* 例如,假设 w, k, 以及年度虚拟变量都是外生的(固然,这一假设可能其实分歧理)*xtabond2 n L.n L(0/1).(w k) yr1978yr1984, gmm(L.n) ///iv(L(0/1).(w k) yr1978yr1984, eq(level)) ///robust small twostepest store sys_wkexg* 将 w 和 k 都设定为内生变量* yr dummies 仅呈现在水平方程中xtabond2 n L.n L(0/1).(w k) yr1978yr1984, ///gmm(L.(w k n)) iv(yr1978yr1984, eq(level)) ///robust small twostepest store sys_wkendog_lev* yr dummies 同时呈现在水平方程和差分方程中xtabond2 n L.n L(0/1).(w k) yr1978yr1984, ///gmm(L.(w k n)) iv(yr1978yr1984, eq(both)) ///robust small twostepest store sys_wkendog_both* 结果比较local mm "fd_1s fd_2s sys_wkexg sys_wkendog_levsys_wkendog_both"esttab `mm', mtitle(`mm') compress** xtdpdsys 命令** 仅适用于 Stata10 版本* 中国上市公司资本结构静态调整use xtcs.dta, clearqui tab year, gen(yr)drop yr1* Case I:假设所有解释变量均为外生变量(L.tl除外)*local xx "size tang ndts L(0/1).tobin L(0/1).npr yr*"xtdpdsys tl `xx', vce(robust) twostepdis ln(2) / (1 _b[L1.tl]) /*调整半周期*/est store dycs_2sys* 设定说明:* (1) 无需设定 L.tl, 因为 xtdpdsys 默认设定被解释变量的滞后一期为解释变量,* 而且该变量被自动设定为内生变量;* (2) 稳健型估计采纳 vce(robust) 选项加以设定;* (3) 该命令不会自动进行 AR(2)序列相关检验和Sargan过度识别检验* 序列相关检验estat abond* 过度识别检验estat sargan /*稳健型估计下无法获得Sargan统计量*/* 正确方法local xx "size tang ndts L(0/1).tobin L(0/1).npr yr*"xtdpdsys tl `xx', twostepestat sargan* Case II:假设Tobin和npr为先决变量local xx "size tang ndts yr*" /*此处不应再包括 tobin和npr*/ xtdpdsys tl `xx', pre(tobin npr,lag(1,.)) twostepest store dycs_2preestat abondestat sargan* Case III:假设Tobin和npr为内生变量local xx "size tang ndts yr*" /*此处不应再包括 tobin和npr*/ xtdpdsys tl `xx', endog(tobin npr,lag(1,.)) twostepest store dycs_2endogestat abondestat sargan* Case IV: 假设除年度虚拟变量和公司规模外,所有解释变量均为先决变量local xx "size yr*"xtdpdsys tl `xx', pre(tobin npr,lag(1,.)) ///pre(tang ndts) twostepest store dycs_2preAllestat abondestat sargan* 假设除 L.tl 外的所有解释变量外生最为合适.* OLS 估计(调整系数的上限)local xx "size tang ndts L(0/1).tobin L(0/1).npr yr*"reg tl L.tl `xx', robustest store dycs_2OLS* FE 估计(调整系数的下限)local xx "size tang ndts L(0/1).tobin L(0/1).npr yr*"xtreg tl L.tl `xx', robust feest store dycs_2FE* 结果比较local mm "dycs_2sys dycs_2pre dycs_2endog dycs_2preAll dycs_2OLS dycs_2FE"local ss "ar2 ar2p sargan sar_df sarganp"esttab `mm',mtitle(`mm') scalar(`ss') compress* 结论:* (1) 估计出的调整系数介于合理的范围内,即OLS和FE之间;* (2) 就模型设定而言,dycs_2sys 最为合理,即把所有解释变量均设定为外生变量.** 调整半周期为:local xx "size tang ndts L(0/1).tobin L(0/1).npr yr*"xtdpdsys tl `xx', vce(robust) twostepdis ln(2) / (1 _b[L1.tl]) /*调整半周期*/xtabond2 logy l.logy h inv gov open fdi yr4yr14, ///gmm(l.logy h) iv(gov open fdi yr4yr14)robust twostep。
计量经济学stata命令汇总

计量经济学stata命令汇总1. 数据处理与描述性统计summarize 变量1 变量2…计算变量的均值、中位数等统计量tabulate 变量1 变量2…制表histogram 变量画单变量直方图scatter 变量1 变量2…画双变量散点图graph twoway 程序名变量1 变量2…绘制双变量图形sort 变量按照变量排序by 变量: 命令按照变量拆分数据并执行命令replace 变量=表达式替换变量中的值generate 新变量=表达式生成新变量egen 新变量=函数(变量) 生成新变量2. 回归分析regress 因变量自变量1 自变量2…普通最小二乘回归reg 相关变量,robust 异方差鲁棒性回归logit 因变量自变量1 自变量2…二元Logit模型probit 因变量自变量1 自变量2…二元Probit模型tobit 因变量自变量1 自变量2… 截尾变量(下界或上界)cens(下界或上界) 截尾Tobit模型heckman 因变量自变量1 自变量2… 难以观察到自变量矩阵决策过程变量名称=接收权值做二阶段回归Heckman选择模型pheckman 因变量自变量1 自变量2… 难以观察到自变量矩阵决策过程经验Bayes做二阶段回归Pooled Heckman选择模型xtset 变量1 变量2…指定面板数据xtreg 因变量自变量1 自变量2…, fe/be/fevd/arellano间隔估计xtlogit 因变量自变量1 自变量2…, fe面板Logit模型xtprobit 因变量自变量1 自变量2…, fe面板Probit模型3. 时间序列分析dfuller 变量单位根检验tsset 变量指定时间序列数据tsline 变量绘制时间序列图arma 阶数, lags(*laglist*) ARMA过程估计arima 阶数, lags(*laglist*) 差分阶数(*diff*) 现有模型(*model*) ARIMA模型估计arch hq/aic, lags(*laglist*) ARCH模型估计garch q=p o=r t=m, arch(q) garch(p) GARCH模型估计ivregress (2SLS)因变量自变量1(内生变量)编号=gmm/cluster(varname) 内生变量外生变量IV或2SLS回归分析4. 面板数据分析&横截面数据分析xtsum 等对面板数据的描述统计量xttest0 2个变量计算相对于H0的t值,考虑了异方差和面板数据结构(前提是两个变量符合随机效应或固定效应假设)xttobit 因变量自变量1 自变量2… 下界 cens(下界或上界)面板Tobit模型xtreg 因变量自变量1 自变量2…, fe/be/fevd/arellano面板回归模型xtlogit/xtprobit 因变量自变量1 自变量2…, fe面板分类模型5. 高级统计方法cluster 变量聚类分析pca 变量1 变量2…, components(4)主成分分析mvreg 因变量向量1 向量2…, clustervar(cluster)多元回归及聚类分析multilevel 因变量自变量1 自变量2…, mle 内部命令(通常是cov)多层线性模型分析glm 因变量自变量1 自变量2…, family(binomial) 连接函数(logit/probit) 难以观察到自变量(即随机拦截模型)其他选项广义线性模型分析heckprob/reg3 因变量自变量1 自变量2… 等随机效应模型分析。
stata命令大全(全)

********* 面板数据计量分析与软件实现 *********说明:以下do文件相当一部分内容来自于中山大学连玉君STATA教程,感谢他的贡献。
本人做了一定的修改与筛选。
*----------面板数据模型* 1.静态面板模型:FE 和RE* 2.模型选择:FE vs POLS, RE vs POLS, FE vs RE (pols混合最小二乘估计) * 3.异方差、序列相关和截面相关检验* 4.动态面板模型(DID-GMM,SYS-GMM)* 5.面板随机前沿模型* 6.面板协整分析(FMOLS,DOLS)*** 说明:1-5均用STATA软件实现, 6用GAUSS软件实现。
* 生产效率分析(尤其指TFP):数据包络分析(DEA)与随机前沿分析(SFA)*** 说明:DEA由DEAP2.1软件实现,SFA由Frontier4.1实现,尤其后者,侧重于比较C-D与Translog生产函数,一步法与两步法的区别。
常应用于地区经济差异、FDI 溢出效应(Spillovers Effect)、工业行业效率状况等。
* 空间计量分析:SLM模型与SEM模型*说明:STATA与Matlab结合使用。
常应用于空间溢出效应(R&D)、财政分权、地方政府公共行为等。
* ---------------------------------* --------一、常用的数据处理与作图-----------* ---------------------------------* 指定面板格式xtset id year (id为截面名称,year为时间名称)xtdes /*数据特征*/xtsum logy h /*数据统计特征*/sum logy h /*数据统计特征*/*添加标签或更改变量名label var h "人力资本"rename h hum*排序sort id year /*是以STATA面板数据格式出现*/sort year id /*是以DEA格式出现*/*删除个别年份或省份drop if year<1992drop if id==2 /*注意用==*/*如何得到连续year或id编号(当完成上述操作时,year或id就不连续,为形成panel 格式,需要用egen命令)egen year_new=group(year)xtset id year_new**保留变量或保留观测值keep inv /*删除变量*/**或keep if year==2000**排序sort id year /*是以STATA面板数据格式出现sort year id /*是以DEA格式出现**长数据和宽数据的转换*长>>>宽数据reshape wide logy,i(id) j(year)*宽>>>长数据reshape logy,i(id) j(year)**追加数据(用于面板数据和时间序列)xtset id year*或者xtdestsappend,add(5) /表示在每个省份再追加5年,用于面板数据/tsset*或者tsdes.tsappend,add(8) /表示追加8年,用于时间序列/*方差分解,比如三个变量Y,X,Z都是面板格式的数据,且满足Y=X+Z,求方差var(Y),协方差Cov(X,Y)和Cov(Z,Y)bysort year:corr Y X Z,cov**生产虚拟变量*生成年份虚拟变量tab year,gen(yr)*生成省份虚拟变量tab id,gen(dum)**生成滞后项和差分项xtset id yeargen ylag=l.y /*产生一阶滞后项),同样可产生二阶滞后项*/gen ylag2=L2.ygen dy=D.y /*产生差分项*/*求出各省2000年以前的open inv的平均增长率collapse (mean) open inv if year<2000,by(id)变量排序,当变量太多,按规律排列。
stata常用命令总结

Stata常用命令总结Stata是一种统计分析软件,广泛用于社会科学、经济学、生物医学等领域的数据分析。
它具有丰富的功能和灵活的数据处理能力,能够进行各种统计分析、数据可视化和模型建立。
本文将总结Stata的常用命令,包括重要观点、关键发现和进一步思考,帮助读者更好地理解和使用Stata。
一、数据导入和处理e命令:用于导入Stata数据文件(.dta)。
2.import命令:用于导入其他格式的数据文件(如Excel、CSV等)。
3.save命令:用于保存当前数据文件。
4.drop命令:用于删除变量或观察值。
5.keep命令:用于保留指定的变量或观察值。
重要观点:在数据导入和处理阶段,要注意数据的完整性和准确性。
需要检查数据的缺失值、异常值和数据类型,做好数据清洗和预处理工作。
二、数据描述和统计分析1.summarize命令:用于计算变量的描述性统计量,如均值、标准差、最大值、最小值等。
2.tabulate命令:用于制作交叉表和列联表。
3.correlate命令:用于计算变量之间的相关系数。
4.regress命令:用于进行线性回归分析。
5.logit命令:用于进行二分类的逻辑回归分析。
重要观点:在进行数据描述和统计分析时,要根据研究问题选择合适的方法和指标。
同时要注意解释统计结果的意义,避免过度解读和误导。
三、数据可视化1.histogram命令:用于绘制直方图。
2.scatter命令:用于绘制散点图。
3.twoway命令:用于绘制多种类型的图形,如线图、柱状图、饼图等。
4.graph export命令:用于将图形导出为图片文件。
重要观点:数据可视化是数据分析的重要手段,能够直观地展示数据的分布和关系。
在进行数据可视化时,要选择合适的图形类型和参数,使图形简洁明了,易于理解和解释。
四、面板数据分析1.xtset命令:用于设置面板数据的时间和单位。
2.xtreg命令:用于进行面板数据的固定效应或随机效应模型分析。
stata命令大全(全)

*********面板数据计量分析与软件实现*********说明:以下do文件相当一部分容来自于大学连玉君STATA教程,感他的贡献。
本人做了一定的修改与筛选。
*----------面板数据模型* 1.静态面板模型:FE 和RE* 2.模型选择:FE vs POLS, RE vs POLS, FE vs RE (pols混合最小二乘估计)* 3.异方差、序列相关和截面相关检验* 4.动态面板模型(DID-GMM,SYS-GMM)* 5.面板随机前沿模型* 6.面板协整分析(FMOLS,DOLS)*** 说明:1-5均用STATA软件实现, 6用GAUSS软件实现。
* 生产效率分析(尤其指TFP):数据包络分析(DEA)与随机前沿分析(SFA)*** 说明:DEA由DEAP2.1软件实现,SFA由Frontier4.1实现,尤其后者,侧重于比较C-D与Translog 生产函数,一步法与两步法的区别。
常应用于地区经济差异、FDI溢出效应(Spillovers Effect)、工业行业效率状况等。
* 空间计量分析:SLM模型与SEM模型*说明:STATA与Matlab结合使用。
常应用于空间溢出效应(R&D)、财政分权、地方政府公共行为等。
* ---------------------------------* --------一、常用的数据处理与作图-----------* ---------------------------------* 指定面板格式xtset id year (id为截面名称,year为时间名称)xtdes /*数据特征*/xtsum logy h /*数据统计特征*/sum logy h /*数据统计特征*/*添加标签或更改变量名label var h "人力资本"rename h hum*排序sort id year /*是以STATA面板数据格式出现*/sort year id /*是以DEA格式出现*/*删除个别年份或省份drop if year<1992drop if id==2 /*注意用==*/*如何得到连续year或id编号(当完成上述操作时,year或id就不连续,为形成panel格式,需要用egen命令)egen year_new=group(year)xtset id year_new**保留变量或保留观测值keep inv /*删除变量*/**或keep if year==2000**排序sort id year /*是以STATA面板数据格式出现sort year id /*是以DEA格式出现**长数据和宽数据的转换*长>>>宽数据reshape wide logy,i(id) j(year)*宽>>>长数据reshape logy,i(id) j(year)**追加数据(用于面板数据和时间序列)xtset id year*或者xtdestsappend,add(5) /表示在每个省份再追加5年,用于面板数据/tsset*或者tsdes.tsappend,add(8) /表示追加8年,用于时间序列/*方差分解,比如三个变量Y,X,Z都是面板格式的数据,且满足Y=X+Z,求方差var(Y),协方差Cov(X,Y)和Cov(Z,Y)bysort year:corr Y X Z,cov**生产虚拟变量*生成年份虚拟变量tab year,gen(yr)*生成省份虚拟变量tab id,gen(dum)**生成滞后项和差分项xtset id yeargen ylag=l.y /*产生一阶滞后项),同样可产生二阶滞后项*/ gen ylag2=L2.ygen dy=D.y /*产生差分项*/*求出各省2000年以前的open inv的平均增长率collapse (mean) open inv if year<2000,by(id)变量排序,当变量太多,按规律排列。
stata命令大全(全)

********* 面板数据计量分析与软件实现 *********说明:以下do文件相当一部分内容来自于中山大学连玉君STATA教程,感谢他的贡献。
本人做了一定的修改与筛选。
*----------面板数据模型* 1.静态面板模型:FE 和RE* 2.模型选择:FE vs POLS, RE vs POLS, FE vs RE (pols混合最小二乘估计) * 3.异方差、序列相关和截面相关检验* 4.动态面板模型(DID-GMM,SYS-GMM)* 5.面板随机前沿模型* 6.面板协整分析(FMOLS,DOLS)*** 说明:1-5均用STATA软件实现, 6用GAUSS软件实现。
* 生产效率分析(尤其指TFP):数据包络分析(DEA)与随机前沿分析(SFA)*** 说明:DEA由DEAP2.1软件实现,SFA由Frontier4.1实现,尤其后者,侧重于比较C-D与Translog生产函数,一步法与两步法的区别。
常应用于地区经济差异、FDI 溢出效应(Spillovers Effect)、工业行业效率状况等。
* 空间计量分析:SLM模型与SEM模型*说明:STATA与Matlab结合使用。
常应用于空间溢出效应(R&D)、财政分权、地方政府公共行为等。
* ---------------------------------* --------一、常用的数据处理与作图-----------* ---------------------------------* 指定面板格式xtset id year (id为截面名称,year为时间名称)xtdes /*数据特征*/xtsum logy h /*数据统计特征*/sum logy h /*数据统计特征*/*添加标签或更改变量名label var h "人力资本"rename h hum*排序sort id year /*是以STATA面板数据格式出现*/sort year id /*是以DEA格式出现*/*删除个别年份或省份drop if year<1992drop if id==2 /*注意用==*/*如何得到连续year或id编号(当完成上述操作时,year或id就不连续,为形成panel 格式,需要用egen命令)egen year_new=group(year)xtset id year_new**保留变量或保留观测值keep inv /*删除变量*/**或keep if year==2000**排序sort id year /*是以STATA面板数据格式出现sort year id /*是以DEA格式出现**长数据和宽数据的转换*长>>>宽数据reshape wide logy,i(id) j(year)*宽>>>长数据reshape logy,i(id) j(year)**追加数据(用于面板数据和时间序列)xtset id year*或者xtdestsappend,add(5) /表示在每个省份再追加5年,用于面板数据/tsset*或者tsdes.tsappend,add(8) /表示追加8年,用于时间序列/*方差分解,比如三个变量Y,X,Z都是面板格式的数据,且满足Y=X+Z,求方差var(Y),协方差Cov(X,Y)和Cov(Z,Y)bysort year:corr Y X Z,cov**生产虚拟变量*生成年份虚拟变量tab year,gen(yr)*生成省份虚拟变量tab id,gen(dum)**生成滞后项和差分项xtset id yeargen ylag=l.y /*产生一阶滞后项),同样可产生二阶滞后项*/gen ylag2=L2.ygen dy=D.y /*产生差分项*/*求出各省2000年以前的open inv的平均增长率collapse (mean) open inv if year<2000,by(id)变量排序,当变量太多,按规律排列。
stata命令大全超实用(全)

stata命令大全超实用(全)*********面板数据计量分析与软件实现*********说明:以下do文件相当一部分内容来自于中山大学连玉君STATA 教程,感谢他的贡献。
本人做了一定的修改与筛选。
*----------面板数据模型* 1.静态面板模型:FE 和RE* 2.模型选择:FE vs POLS, RE vs POLS, FE vs RE (pols混合最小二乘估计)* 3.异方差、序列相关和截面相关检验* 4.动态面板模型(DID-GMM,SYS-GMM)* 5.面板随机前沿模型* 6.面板协整分析(FMOLS,DOLS)*** 说明:1-5均用STATA软件实现, 6用GAUSS软件实现。
* 生产效率分析(尤其指TFP):数据包络分析(DEA)与随机前沿分析(SFA)*** 说明:DEA由DEAP2.1软件实现,SFA由Frontier4.1实现,尤其后者,侧重于比较C-D与Translog 生产函数,一步法与两步法的区别。
常应用于地区经济差异、FDI溢出效应(Spillovers Effect)、工业行业效率状况等。
* 空间计量分析:SLM模型与SEM模型*说明:STATA与Matlab结合使用。
常应用于空间溢出效应(R&D)、财政分权、地方政府公共行为等。
* ---------------------------------* --------一、常用的数据处理与作图-----------* ---------------------------------* 指定面板格式xtset id year (id为截面名称,year为时间名称)xtdes /*数据特征*/xtsum logy h /*数据统计特征*/sum logy h /*数据统计特征*/*添加标签或更改变量名label var h "人力资本"rename h hum*排序sort id year /*是以STATA面板数据格式出现*/sort year id /*是以DEA格式出现*/*删除个别年份或省份drop if year<1992drop if id==2 /*注意用==*/*如何得到连续year或id编号(当完成上述操作时,year或id就不连续,为形成panel格式,需要用egen命令)egen year_new=group(year)xtset id year_new**保留变量或保留观测值keep inv /*删除变量*/**或keep if year==2000**排序sort id year /*是以STATA面板数据格式出现sort year id /*是以DEA格式出现**长数据和宽数据的转换*长>>>宽数据reshape wide logy,i(id) j(year)*宽>>>长数据reshape logy,i(id) j(year)**追加数据(用于面板数据和时间序列)xtset id year*或者xtdestsappend,add(5) /表示在每个省份再追加5年,用于面板数据/ tsset*或者tsdes.tsappend,add(8) /表示追加8年,用于时间序列/*方差分解,比如三个变量Y,X,Z都是面板格式的数据,且满足Y=X+Z,求方差var(Y),协方差Cov(X,Y)和Cov(Z,Y)bysort year:corr Y X Z,cov**生产虚拟变量*生成年份虚拟变量tab year,gen(yr)*生成省份虚拟变量tab id,gen(dum)**生成滞后项和差分项xtset id yeargen ylag=l.y /*产生一阶滞后项),同样可产生二阶滞后项*/ gen ylag2=L2.ygen dy=D.y /*产生差分项*/*求出各省2000年以前的open inv的平均增长率collapse (mean) open inv if year<2000,by(id)变量排序,当变量太多,按规律排列。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Stata 命令语句格式:[by varlist:] command [varlist] [=exp] [if exp] [in range] [weight] [, options]1、[by varlist:]*如果需要分别知道国产车和进口车的价格和重量,可以采用分类操作来求得,sort foreign //按国产车和进口车排序. by foreign: sum price weight*更简略的方式是把两个命令用一个组合命令来写。
. by foreign, sort: sum price weight如果不想从小到大排序,而是从大到小排序,其命令为gsort。
. sort - price //按价格从高到低排序. sort foreign -price /*先把国产车都排在前,进口车排在后面,然后在国产车内再按价格从大小到排序,在进口车内部,也按从大到小排序*/2、[=exp]赋值运算. gen nprice=price+10 //生成新变量nprice,其值为price+10/*上面的命令generate(略写为gen) 生成一个新的变量,新变量的变量名为nprice,新的价格在原价格的基础上均增加了10 元。
. replace nprice=nprice-10 /*命令replace 则直接改变原变量的赋值,nprice 调减后与price 变量取值相等*/3、[if exp]条件表达式. list make price if foreign==0*只查看价格超过1 万元的进口车(同时满足两个条件),则. list make price if foreign==1 & price>10000*查看价格超过1 万元或者进口车(两个条件任满足一个). list make price if foreign==1 | price>100004、[in range]范围筛选sum price in 1/5注意“1/5”中,斜杠不是除号,而是从1 到 5 的意思,即1,2,3,4,5。
如果要计算前10 台车中的国产车的平均价格,则可将范围和条件筛选联合使用。
. sum price in 1/10 if foreign==05、[weight] 加权sum score [weight=num] 其中,num为每个成绩所对应的人数6、[, options]其他可选项例如,我们不仅要计算平均成绩,还想知道成绩的中值,方差,偏度和峰度等*/. sum score, detail. sum score, d //d 为detail 的略写,两个命令完全等价. list price, nohead //不要表头Stata 数据类型转换1、字符型转化成数值型destring, replace //全部转换为数值型,replace 表示将原来的变量(值)更新destring date, replace ignore(“ ”) 将字符型数据转换为数值型数据:去掉字符间的空格destring price percent, gen(price2 percent2) ignore(“$ ,%”) 与date 变量类似,变量price 前面有美元符号,变量percent 后有百分号,换为数值型时需要忽略这些非数值型字符2、数值型转化为字符型tostring year day, replace //将年和日转化为字符型gen date1=month+”/”+day+”/”+year //month day变为字符型后可以运算,将年月日构成一个新的日期变量gen date2=date(date1,”mdy”) /* date()为日期函数,它以1960 年1 月1日为第0 天,计算从那天起直到括号中指定的某天date1一共过了多少天。
”mdy”指定date1 的排列顺序,这里是按照月日年的顺序来表示日期。
*/数据显示格式/*format 只控制数据的显示格式,并不改变内存中数据的大小。
*/变量的格式为%14s,表示右对齐,共14 个字符,%为固定用法(字符变量跟s,数值变量跟g)ormat state %-14s // 该命令使stata 的显示格式左对齐,14 前面多了个负号format pop %11.0gc /*pop 的显示格式为%11.0g,后面加上c,则每三位数间用逗号分开,c 为comma 的意思.*/format medage %8.1f //要求所有的medage 都显示一位小数format id %05.0f //对于编号,我们希望前面用零使得位数对齐,通过在前面补零,所有的id 都成了5位数。
导入/导出其他格式数据1、数据导入insheet using 3origin.csv/txt, clearinsheet using 3origin.txt, double clear 当数据中某个变量的位数特别长或者对导入数据的精度要求很高的时候,需要在该命令后面加double 选项。
2、数据导出outsheet using myresult.asc, nonames 如果不希望在第一行存储变量名,则可以使用nonames 选项outsheet using myresult.asc, nonames replace 如果文件已经存在,则需要使用replace 选项数据合并1、纵向合并use male, clear //打开记录男生信息的数据文件maleappend using female //将记录女生信息的female 文件追加到当前数据集中save mydata1, replace2、横向合并use economy,clear //打开经济学成绩数据文件sort id //按学号排序save economy, replace //重新保存一下use student,c clear //打开学生基本信息数据文件sort id //按学号排序merge id using economy //以学号为关联,将学生的信息和成绩一一对应对接tab _merge //显示对接情况,3 表示成功对接,1 和2 表示未成功对接drop _merge //去掉标识对接是否成功变量_mergeStata很多命令可单独使用,单独使用时,一般是对所有变量进行操作,等价于后面加上代表所有变量的_all数据重整1、长宽转换宽:长:1)宽变长use mywide, clearreshape long math economy, i(id name) j(year) //数据重整,宽变长save mylong, replace2)长变宽reshape wide*或者use mylong, clearreshape wide math economy, i(id name) j(yearr) //数据重整,长变宽save mywide2, replace2、多列数据转为少数几列有些数据集虽然有很多列,但实际上只有一个变量,利用stata转化成一项数据。
stack var1-var6, into(x) clear x是新生成变量的名称drop _stack 变量stack 记录观测值原来所在行数3、数据转置use math,clearxpose, clear变量运算:Stata中,加(+)号同样可用于字符运算,当加号出现在两个字符之间时,两个字符将被连成一个字符。
比如把”我爱” “STA TA”合并在一起,命令为:. scalar a=”我爱” +“STATA”一些运算函数:comb(n,k) 从n 中取k 个的组合fill() 自动填充数据int(x) 取整log10(x) 以10 为底的对数mod(x,y) 求余数round(x) 四舍五入di round(3.345,.1) //四舍五入到十分位,结果为3.3di round(3.345,.01) //四舍五入到百分位,结果为3.35di round(335.1,10) //四舍五入到十位,结果为340sqrt(x) 开更号substr(s,n1,n2) 从S 的第n1 个字符开始,截取n2 个字符word(s,n) 返回s 的第n 个字符_n 当前观察值的序号_N 共有多少观察值gen y=sum(x) //求列累积和egen z=sum(x) //求列总和egen avgx=mean(x) //求列均值egen byte dxy = diff(x y) //当x与y相等时,differ取0,若不相等为1分离变量值clearinput str15 x"10*123""543*21""12*422""43532*32134""4349*1"endgen a=strpos(x,"*") //计算出*所在的位数gen b=substr(x,1,a-1) //取*前面的字符gen c=substr(x,a+1,.) //取*后面的字符stata中,系统缺失值大于任何一个数据,因此在生成分类哑变量时:gen agegrp2=(age>=65) if age<.生成的数据中,将缺失值排除在外生成分组变量:clearset obs 100 //设定100 个观察值gen age=_n //生成一个假设的年龄变量age,依次取1,2,…,100recode age (min/30=1) (30/60=2) (60/max=3),gen(agegrp) /*生成新的分组变量agegrp, 当年龄age在30及以下时取值为1,30到60为2,60以上为3*/分组运算:by x, sort: gen n1=_n 根据x的不同,生成n1变量对不同类的x计数by hhid,sort: egen mage=mean(age) //根据不同类别求平均年龄bysort hhid (age): gen nid1=_n //括号中的变量age 只排序,不参于分组。
bysort hhid age: gen nid2=_n // hhid 和ag e 都既用来参与排序也分组encode country, gen(country1) 将文本变量转化为数值变量di splay5+9 显示计算结果sum price weight 描述统计:求价格和重量的观察值个数、平均值、标准差、最小值和最大值scatter price weight 绘出价格和重量的散点图line price weight, sort 绘出价格和重量的折线图clear 清除内存中原有内容cd d:/stata9 在打开数据之前,先定位数据的位置use 打开STATA 格式的数据文件set obs 5 //设定5 个观察值dir 查看当前路径下有哪些文件save mydata //保存数据,数据文件名为mydatasave mydata, replace 如果同一文件夹下已经存有mydata.dta,而你又要再次执行save mydata 时edit 编辑数据log 将输出结果存放入结果文件gen id=_n //生成一个新变量id,根据观测值排列顺序从上到下取值依次为123……replace id=9842 in 3 第三个观测的id值改变compress //压缩数据,使之在不损失任何信息的前提下占用空间最小erase mydata1.dta 删除文件,一定要带上后缀名。