Stata统计分析命令 下载本文

内容发布更新时间 : 2024/12/24 3:51:31星期一 下面是文章的全部内容请认真阅读。

Stata统计分析常用命令汇总

一、winsorize极端值处理

范围:一般在1%和99%分位做极端值处理,对于小于1%的数用1%的值赋值,对于大于99%的数用99%的值赋值。

1、Stata中的单变量极端值处理:

stata 11.0,在命令窗口输入“findit winsor”后,系统弹出一个窗口,安装winsor模块 安装好模块之后,就可以调用winsor命令,命令格式:winsor var1, gen(new var) p(0.01) 或者在命令窗口中输入:ssc install winsor安装winsor命令。winsor命令不能进行批量处理。

2、批量进行winsorize极端值处理:

打开链接:http://personal.anderson.ucla.edu/judson.caskey/data.html,找到winsorizeJ,点击右键,另存为到stata中的ado/plus/目录下即可。命令格式:winsorizeJ var1var2var3,suffix(w)即可,这样会生成三个新变量,var1w var2w var3w,而且默认的是上下1%winsorize。如果要修改分位点,则写成如下格式:winsorizeJ var 1 var2 var3,suffix(w) cuts(5 95)。 3、Excel中的极端值处理:(略) winsor2 命令使用说明

简介:winsor2 winsorize or trim (if trim option is specified) the variables in varlist at particular percentiles specified by option cuts(# #). In defult, new variables will be generated with a suffix \variables with their winsorized or trimmed ones.

相比于winsor命令的改进: (1) 可以批量处理多个变量;

(2) 不仅可以 winsor,也可以 trimming;

(3) 附加了 by() 选项,可以分组 winsor 或 trimming;

(4) 增加了 replace 选项,可以不必生成新变量,直接替换原变量。

范例:

*- winsor at (p1 p99), get new variable \ . sysuse nlsw88, clear . winsor2 wage

*- left-trimming at 2th percentile . winsor2 wage, cuts(2 100) trim

*- winsor variables by (industry south), overwrite the old variables . winsor2 wage hours, replace by(industry south)

使用方法:

1. 请将 winsor2.ado 和 winsor2.sthlp 放置于 stata12\\ado\\base\\w 文件夹下; 2. 输入 help winsor2 可以查看帮助文件;

二、描述性统计

1、summarize

命令格式:su、sum或者summarize [varlist] [if] [in] [weight] [,options]

如果summarize或sum后不加任何变量,则默认对数据中的所有变量进行描述统计 options 选项:detail 表示产生更加详细的统计变量

Separator(n)表示每n个变量画一条分界线,n=0表示禁止使用分界线

Summarize 描述统计输出表中包含:样本容量、平均数、标准差、最小值和最大值 2、tabstat

命令格式:tabstat [varlist] [if] [in] [weight] [,options]

options 选项:stat(statname) 表示设定所需要的统计量 col(stat)或c(s)表示将结果报表转置 统计量:

mean:平均数 count/n:观测值数目 sum:加总

max/min :最大值/最小值 range :极差 sd:标准差 cv:变异系数 semean :平均标准误差 skewness:偏度var :方差

kurtosis :峰度 median/p50:中位数 p# :#%百分位数 例如:tabstat[varlist],stat(count mean sd median min max range) col(stat) 3、描述性统计结果输出到word或Excel

用sum做的描述性统计:logout, save(miaoshutongji) word replace:sum

用tabstat做的描述性统计:logout, save(miaoshutongji) word replace:tabstat [varlist] ,stat(count mean sd median min max range) col(stat) 分组描述:bysort var:

三、相关性分析

(一)相关性分析 1、Pearson相关系数命令格式:correlate(简写:cor或corr)[varlist] [if] [in] [weight] [,options] 2、spearman相关系数命令格式:spearman[varlist], stats(rho p)

3、在Stata中,命令corr用于计算一组变量间的协方差或相关系数矩阵;

4、命令pwcorr可用于计算一组变量中两两变量的相关系数,同时还可以对相关系数的显著性进行检验;option选项中加上sig可显示显著性水平:pwcorr[varlist] ,sig

5、命令pcorr 用于计算一组变量中两两变量的偏相关系数并进行显著性检验。 6、Spearman 和 Pearson 检验同在一个表的命令:corrtbl[varlist] ,corrvars ([varlist])

输出结果中,上三角为Spearman相关系数和显著水平,下三角为Pearson系数和显著水平。 (二)输出相关系数表到word或Excel中

例如:logout, save(mytable) word replace: pwcorr_a price mpg rep78 headroom trunk, star1(0.01) star5(0.05) star10(0.1)

四、截面数据单方程线性回归模型的Stata实现

命令格式:regress(简写:reg)depvar indepvars [if] [in] [weigh] [option] (depvar表示因变量, indepvars表示自变量)

五、异方差的检验与处理

1、检验异方差命令格式:hettest 2、判断异方差的标准:

看P值的大小来判断,如果P值小于0.05,则不能排除异方差的可能,上图中P值等于0.4584>0.05,因此,可以排除异方差的可能性。

3、处理异方差命令格式:在reg命令后加上“,r”或者“,robust”即可。经异方差处理后的回归不显示调整后的R2(adj-R2),如果要查看调整后的R2,再输入命令:di e(r2_a)

六、多重共线性(自变量之间高度相关)命令格式:vif

(一)判断多重共线性的标准(两个标准必须同时满足): 1、最大的vif大于10; 2、平均的vif大于1 。 (二)多重共线性的修正

1、采用逐步回归进行修正,命令格式:sw reg depvar indepvar, pr(0.05)

2、对于含二次项的,使用“对中”的方法,既可以保留二次项,又可以在一定程度上克服多重共线性的问题:先定义两个变量,分别为该变量减去其均值和该变量的平方,命令如下: sum var

gen var1=var-r(mean) gen var2=var^2

再用新变量代替原来的变量进行回归处理

七、内生性的检验与处理(内生性是指自变量与误差项之间有关系)

1、内生性的检验:ovtest

看P值的大小来判断,如果P值小于0.05,则不能排除内生性的可能,上图中P值等于0.4717>0.05,因此,可以排除内生性的可能。 2、内生性的处理:使用工具变量法:ivreg

内生性的三个来源:测量误差、遗漏变量和双向因果。 1、变量的内生性。

这个是没有办法单独检验的。当有合适工具变量时候,是可以检验的,就是hausman检验

2、工具变量的外生性。

这个也是没办法检验的。当有很多工具变量时候,可以检验是否有不是外生的,就是“过度识别”问题

3、工具变量的相关性。

这个可以说成是“弱工具变量”问题,检验可以通过一阶段的F值。还可以利用Partial R2。 4、估计方法

stata里面有这么几个2sls,2sls smal、liml、gmm,各自适用情况:small适合小样本;liml适合弱工具变量;gmm适合异方差。 【例子】 webuse hsng2

*Fit a regression via 2SLS, requesting small-sample statistics ivregress 2sls rent pcturban (hsngval = faminc iregion), small *Fit a regression using the LIML estimator

ivregress liml rent pcturban (hsngval = faminc iregion)

*Fit a regression via GMM using the default heteroskedasticity-robust weight matrix ivregress gmm rent pcturban (hsngval = faminc iregion)

*Fit a regression via GMM using a heteroskedasticity-robust weight matrix, requesting nonrobust standard errors

ivregress gmm rent pcturban (hsngval = faminc iregion), vce(unadjusted) *检验

estata firststage ,all forcenonrobust \\\\\\可以查看第一阶段F值,已经partial R2 estat overid \\\\\\查看是否过度识别 estat endogenous \\\\\\查看是否异方差

regress 2sls rent pcturban hsngval est store m1

ivregress 2sls rent pcturban (hsngval = faminc iregion) est store m2

hausman m1 m2 \\\\\\内生检验

八、线性方程组的回归分析

命令格式:sureg(depvar1 varlist1)(depvar2 varlist2)…(depvarN varlistN) [if] [in] [weigh]

九、联立方程组

命令格式:reg3 (depvar1 varlist1)(depvar2 varlist2)…(depvarN varlistN) [if] [in] [weigh]

十、面板数据的固定效应和随机效应 Xtset

固定效应命令格式:xtreg depvar indepvars [if] [in] ,fe[FE_options] 随机效应命令格式:xtreg depvar indepvars [if] [in] ,re[FE_options] hausman检验固定效应还是随机效应? 【例子】

xtreg y var1 var2 var3,fe est store fe

xtreg y var1 var2 var3,re est store re

hausman fe re,sigmamore hausman fe re,sigmaless

*sigmamore利用有效估计量方差,即re *sigmaless利用一致估计量方差,即fe

十一:Stata回归结果的导出

1、在命令窗口中输入:ssc install esttab,安装命令 esttab 2、reg 回归

3、esttab using filename.rtf 将以word形式输出回归结果,后缀改成.xls或者.csv则以Excel格式输出,输出内容为变量名称和相应的回归系数,t值,显著性水平标识。系统默认显著性水平是0.001,0.01和0.05,若要改成0.01,0.05和0.1,则输出esttab m1 m2 using aaa.rtf, star(* 0.10 ** 0.05 *** 0.01)。

4、批量输出回归结果:每运行一个regression,存起来:est store m1。m1是你要改的,第一个model所以我叫m1,第二个的话指令就变成est store m2,依次类推,最后运行指令:esttab m1 m2 ... using test.rtf。

esttab m11111 using aaaaa.rtf, star(* 0.10 ** 0.05 *** 0.01)b(%6.4f)

5、outreg2可以将回归结果导入word、excle、latex等,而且可以根据自己需要改变格式: ssc install outreg2 use auto,clear [varlist] est store m1

outreg2 [m1] using test.doc,replace

十二、合并样本(将关键词相同的多个样本合并为一个) 命令格式:duplicates drop varlist ,force

例如将同一企业在同一天发生的多起并购合为一起,可根据证券代码和公告日期关键词,将其合并,命令:duplicates drop company_id event_date ,force

十三、均值t检验

命令格式:ttest CAR1 == CAR2, unpaired

十四、中位数Z检验(非参数Wilcoxon秩和检验) 命令格式:ranksum var, by(groupvar) groupvar为分组变量