常用的27个Stata命令
【1】直接导入csv格式数据
insheet using name.csv, clear
【2】修改变量长度
format var %20.2g
【3】删除重复值
sort var1 var2
duplicatesdrop var1 var2, force
【4】数据合并
use data1, clear
merge m:m var1var2 using data2
drop if _merge==2
drop if _merge==1
drop _merge
【5】生成一期滞后项
tsset stkcd accper
gen newvarname=L.varname
【6】将文字转化为数字变量
genBigN=0
replaceBigN=1 if strmatch(dadtunit,"普华永道*")
【7】删除有缺失值的记录
egen mis=rowmiss(_all)
drop if mis
drop mis
【8】行业划分
clonevarsic2=ind
order stkcd accper sic2
replace sic2=substr(sic2,1,1) if substr(sic2,1,1)!=”C”
replace sic2=substr(sic2,1,2) if substr(sic2,1,1)==”C”
tabulate sic2 accper
【9】日期只保留年份
drop if substr( reptdt ,6,2)!="12"
replace reptdt=substr(reptdt,1,4)
gen accper=real(reptdt)
【10】数据分列
split date ,parse(-) destring ignor("-")
【11】求两个日期之间的间隔天数
g td=date(trading_date,"YMD")
g ed=date(eventdate,"YMD")
form td ed %td
g d=ed-td
【12】生成行业、年份哑变量
tab year, gen(year)
tab industry, gen(industry)
【13】对数据进行Winsorize处理
findit winsor2
winsor2 varname, replace cut(1 99)
【14】描述性统计
tabstat var1var2, stat(n min mean median p25 p75 max sd), if groupvar==0 or 1
logout, save(name) word replace: tabstat var, stat(n min mean p50 max sd) col(stat)f(%9.2g)
【15】两变量列联表
tabulate var1 var2, row chi2 taub gamma
【16】两样本间的均值T检验
ttest var, by(groupvar)
【17】两样本中位数Z检验
ranksum var, by(groupvar)
【18】Pearson/Spearman系数
spearmanx
n mata
x=st_data(.,"x")
c=correlation(x)
n=rows(c)
b=strofreal(lowertriangle(c)+uppertriangle(st_matrix("r(Rho)")),"%9.3f")
p=st_matrix("r(P)")
for (i=2; i<=n; i++) {
for (j=1; j<=i-1; j++) {
p[i,j]=2*ttail(rows(x)-2,abs(c[i,j]/sqrt((1-c[i,j]^2)/(rows(x)-2))))
b[i,j]=b[i,j]+(p[i,j]<0.01?"":(p[i,j]<0.05?"":(p[i,j]<0.1?"":"")))
b[j,i]=b[j,i]+(p[j,i]<0.01?"":(p[j,i]<0.05?"":(p[j,i]<0.1?"":"")))
}
}
c=editvalue(b, "2.000", "1")
c
end
直接导出结果
logout, save(pw) word replace:pwcorr_avars, star1(0.01) star5(0.05) star10(0.1)
【19】按年度按中位数分组
方法一
bysort year: egen g=xtile(var), n(2)
方法二
bys accper: cumul icindex, g(g) eq
levelsof accper, local(id)
display "`r(levels)’"
local cut1 = 1/2
foreach x of local id {
recode g (min/cut1'=0)(
cut1’/max=1) if accper==`x’
}
分三组
bys accper:cumul icindex, g(g) eq
levelsof accper, local(id)
display "`r(levels)’"
local cut1 = 1/3
local cut2 = 2/3
foreach x of local id {
recode g (min/cut1'=1)(
cut1’/cut2'=2)(
cut2’/max=3)if accper==`x’
}
【20】输出回归结果
安装
ssc install estout, replace
单个回归
reg
esttab using name.rtf, compress nogap r2 ar2 star( 0.1 0.05 0.01)
多个回归一起
reg
est store m1
reg
est store m2
esttab m1 m2 using name.rtf, compress nogap r2 ar2 star( 0.1 0.05 0.01)
连续运行tobit模型结果导出:
esttab m1 m2, b(%9.4f) t scalars(N ll Fchi2 type), using name.rtf, compress nogap
连续运行OLS模型结果导出:
esttab m1m2, b(%9.4f) tscalars(N r2 F p), using name.rtf, compress nogap
【21】异方差检验及处理
检验:怀特检验
ssc install whitetst
reg
estat imtest, white
处理:“OLS+稳健标准差”
reg y x1 x2 x3, robust
【22】DW检验(序列相关性一阶)
gen id=_n
tsset id
estat dwatson
【23】多重共线性
reg y x1 x2 x3
vif
【24】是否遗漏高次项
例如,检验y对x的线性回归有没有遗漏高次项
reg y x
estat ovtest
或者estat ovtest, rhs
【25】逐步回归
stepwise, pe(0.1): reg y x
【26】Maddala(1983)两阶段处理效应模型
treatreg yx1-xn, tr(z=w1-wm)two
【27】Justified Jones Model
statsby _b, by(ind accper)saving(*.dta,replace):reg yx, noconstant
merge m:m indaccper using *.dta
gen yhat=y-_b*x
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/opensource/194422.html