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