Stata常用命令——从导入到输出

在线调取案例数据

#调取婚姻对女性工资造成的结构性的差异数据
sysuse nlsw88.dta, clear

数据导入及初步处理

cd 文件存放位置
clear
#导入csv之前要打开再另存为csv格式,导入txt之前要打开,选择utf-8再保存
insheet using filename.csv/filename.txt
#删除非合并报表数据
keep  if typrep=="A"
drop  if typrep!="A"
#获取年份、月份数据
g year=substr(accper,1,4)
g mon=substr(accper,6,2)
#只保留年份数据
keep if mon=="12"
#也可以通过分割的方式获取年份、月份
#替换字符串
replace accper =subinstr(accper , "-", "/", .)
split accper , p("/")
#改变变量名称
rename Stkcd stkcd
#给变量排序
order stkcd year mon
#定义全局暂元,将多个变量用一个符号表示
global X x1 x2 x3
egen miss=rowmiss($x)
drop if mis
reg y $X
#保存变量
save filename,relace

滞后项、前推项、差分项、移动平均

xtset stkcd year
#滞后一期,即取上一年数据
g var1=L.roa
#滞后两期,滞后多期同理
g var2=L2.roa
#差分,以增长率为例
g var3=(roa-L.roa)/L.roa
#差分也有直接的命令
g var3=D.roa/L.roa
#前推项,相比滞后项用的比较少,和滞后性相反
g var4=F.roa
g var5=F2.roa

以上适用于面板数据,如果上一年没有数据,则当年滞后一期的数据也没有。还有另一个类似的方法,不需要面板数据,如果上一年没有数据,则上一期数据表示的是上上期数据,如果上上期没有数据,再往上推。

#bys是by和sort的结合,即分组和排序,加了括号表示只排序不分组,roa[_n-1]表示上一期。
bys stkcd (year):g var6=roa-roa[_n-1]
bys stkcd (year):g var7=(roa-roa[_n-1])/roa[_n-1]
bys stkcd (year):g var8=roa[_n+1]-roa
bys stkcd (year):g var9=roa[_n+2]-roa
#还可以计算移动平均
bys stkcd (year):g var10=(roa[_n+1]+roa+roa[_n-1])/3

DID双重差分

help fvvarlist
#i表示二分变量,c表示连续变量,#表示二者相乘,##表示阶乘,二个变量组合有三种
reg absREM i.back##i.time
reg absREM i.back##c.x

强制执行,防止因报错中断——capture/cap

capture psmatch2 group $x ,neighbor(1) noreplace 
	if(_rc==0){
		keep if _weight!=.
		replace _n1=_id if _n1 ==.
		egen tt = group(_n1)
		g t = "-"
		egen pair = concat(year t tt)
		drop t tt
		save `c'match-psm,replace
	}
forvalues i = 1/1529{
   capture  qui reg acc invA Dsale PPE if (sic_year==`i'), nocons
   if(_rc==0){
	predict e if e(sample), res
	replace DACC1 = e if e(sample) 
   drop e
   }
}

均值、中位数、秩和检验

ttest  roa, by (soe)
logout, save(t1) excel replace: ttable2  x1 x2 x3 , by(group) f(%8.3f)
logout, save(t1) excel replace: ttable3  x1 x2 x3 , by(group) f(%8.3f)
 median wage,by(married)
 ranksum wage,by(married)

输出描述性统计

logout,save (miaoshu) excel replace:tabstat X roa size lev RISK  DA, s(n mean sd max p50 min) c(s) long f(%9.3g)

输出相关性分析

#皮尔森相关系数
logout,save (xiangguan) excel replace:pwcorr_a X roa size lev RISK  DA
#斯皮尔曼相关系数
logout, save(mytable) excel replace: spearman_a y x

说明:此命pwcorr_a令自动打星号,老版本的pwcorr_a需要在相关目录添加文件才能调用,具体方法可百度。

输出回归结果

reg DA X roa size lev RISK 
est store m1
reg DA X roa size lev RISK   i.Ind
est store m2
reg DA X roa size lev RISK   i.year 
est store m3
reg DA X roa size lev RISK   i.year i.Ind
est store m4
//outreg2需要用ssc install outreg2或者findit outreg2安装
outreg2 [m1 m2 m3 m4] using huigui,excel replace dec(3) tstat 
//删除行业年份虚拟变量的回归结果输出可以用下面命令:
local s  "using Table03.rtf"  // 输出到word文档
local m  "m1 m2 m3 m4"        // 模型名称
local mt "r1 r2 r3 r4" //模型标题
esttab `m' `s', mtitle(`mt') b(%6.3f) nogap compress  ///
   star(* 0.1 ** 0.05 *** 0.01)  ///
   ar2 scalar(N) replace         ///
   indicate("industy =*.Ind2" "year =*.year" )

你可能感兴趣的:(Stata)