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极端值处理:
打开链接:personal。anderson.ucla.edu/judson。caskey/data。html,到winsorizeJ,点击右键,另存为到stata中的ado/plus/目录下即可。命令格式:winsorizeJ var1var2var3,su
ffix(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 "_w” or "_tr", which can be changed by specifying suffix() option。 The replace option replaces the 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 ”wage_w"
    。  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 。
(二)多重共线性的修正
weight的所有形式
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)