stata命令大全(全)

更新时间:2023-10-18 14:42:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

********* 面板数据计量分析与软件实现 *********

说明:以下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<1992

drop 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 *或者 xtdes

tsappend,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 year

gen ylag=l.y /*产生一阶滞后项),同样可产生二阶滞后项*/ gen ylag2=L2.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, clear browse

xtset id year xtdes

* ---------------------------------

* -------- 固定效应模型 -----------

* ---------------------------------

* 实质上就是在传统的线性回归模型中加入 N-1 个虚拟变量, * 使得每个截面都有自己的截距项,

* 截距项的不同反映了个体的某些不随时间改变的特征 *

* 例如: lny = a_i + b1*lnK + b2*lnL + e_it * 考虑中国29个省份的C-D生产函数

*******-------画图------*

*散点图+线性拟合直线

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 if id==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 \天津\河北\山西\

**每个省份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个省份的C-D生产函数的估计 tab id, gen(dum) list

* 回归分析

reg logy logk logl dum*, est store m_ols

xtreg logy logk logl, fe est store m_fe

est table m_ols m_fe, b(%6.3f) star(0.1 0.05 0.01)

* Wald 检验

test logk=logl=0 test 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_it-ym_i+ym) = um + (x_it-xm_i+xm)*b + (e_it-em_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_meanw gen dkw = logk - k_meanw gen dlw=logl-l_meanw reg dyw dkw dlw,nocons est store m_stata

gen dy = logy - y_meanw + y_mean gen dk = logk - k_meanw +k_mean gen dl=logl-l_meanw+l_mean reg dy dk dl

est store m_stata

est 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 *

* --> R-sq: within 模型(2)对应的R2,是一个真正意义上的R2 * --> R-sq: between corr{xm_i*b_w,ym_i}^2 * --> R-sq: overall corr{x_it*b_w,y_it}^2 *

*-- F(4,373) = 855.93检验除常数项外其他解释变量的联合显著性 *

*-- corr(u_i, Xb) = -0.2347 *

*-- 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,即 adj-R2 ? ereturn list

reg logy h inv gov open dum*

*---拟合值和残差

* y_it = u_i + x_it*b + e_it

* predict newvar, [option] /* xb xb, fitted values; the default

stdp calculate standard error of the fitted values ue u_i + e_it, the combined residual

xbu xb + u_i, prediction including effect

u u_i, the fixed- or random-error component e e_it, the overall error component */

xtreg logy logk logl, fe predict y_hat predict a , u predict res,e predict cres, ue gen ares = a + res

list 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, clear xtreg logy logk logl, re

*-- R2

* --> R-sq: within corr{(x_it-xm_i)*b_r, y_it-ym_i}^2 * --> R-sq: between corr{xm_i*b_r,ym_i}^2 * --> R-sq: 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 *

* Wald chi2(2) = 10962.50 Prob> chi2 = 0.0000

*-------- 时间效应、模型的筛选和常见问题

* 7.2.1 时间效应(双向固定(随机)效应模型)

* 7.2.2 模型的筛选 * 7.2.3 面板数据常见问题 * 7.2.4 面板数据的转换

* ----------------------------------

本文来源:https://www.bwwdw.com/article/h75f.html

Top