R3. 基本统计量的呈现
作者: 刘雅玄 (北京大学) E-mail: lyxbamboo@163.com
1. 简介
我们在看论文的时候,常常在第一张表呈现基本统计量,便于读者了解我们使用的数据形态,也可以用于判断样本中是否包含严重的离群值。本文介绍几个快捷的命令以呈现基本统计量。
2. Stata 官方命令: sum 和 tabstat
2.1 summarize 命令
首先调入 Stata 官方的妇女工资的数据,执行 summarize 命令(简写为 sum
),所有变量的基本统计量都将被列示。
sysuse nlsw88.dta, clear
sum //粗看
sum wage, detail //查看分布和离群值
执行 sum
命令后汇报的基本统计量共有 5 列,分别为观测值个数、平均值、标准差、最小值和最大值。通过观察最大值 (Max)、最小值 (Min),可以判断数据是否有离群值;通过观察标准差 (Std. Dev.),可以判断数据的离散情况;通过观察观测值个数 (Obs),可以判断变量是否存在缺失值。
Variable | Obs Mean Std. Dev. Min Max
-------------+---------------------------------------------------------
idcode | 2,246 2612.654 1480.864 1 5159
age | 2,246 39.15316 3.060002 34 46
race | 2,246 1.282725 .4754413 1 3
married | 2,246 .6420303 .4795099 0 1d | 2,246 .1041852 .3055687 0 1
never_marr~
-------------+---------------------------------------------------------
grade | 2,244 13.09893 2.521246 0 18
collgrad | 2,246 .2368655 .4252538 0 1
south | 2,246 .4194123 .4935728 0 1
smsa | 2,246 .7039181 .4566292 0 1
c_city | 2,246 .2916296 .4546139 0 1
-------------+---------------------------------------------------------
industry | 2,232 8.189516 3.010875 1 12
occupation | 2,237 4.642825 3.408897 1 13union | 1,878 .2454739 .4304825 0 1
wage | 2,246 7.766949 5.755523 1.004952 40.74659
hours | 2,242 37.21811 10.50914 1 80
-------------+---------------------------------------------------------
ttl_exp | 2,246 12.53498 4.610208 .1153846 28.88461 tenure | 2,231 5.97785 5.510331 0 25.91667
如果想了解某个变量更为详细的信息,可以附加一个 detail 选项,可以看到,除了列举平均值、标准差等外,页面中还列示了各分位点的信息,以进一步判断离群值的严重程度。
hourly wage
-------------------------------------------------------------
Percentiles Smallest
1% 1.930993 1.004952
5% 2.801002 1.032247
10% 3.220612 1.151368 Obs 2,246of Wgt. 2,246
25% 4.259257 1.344605 Sum
50% 6.27227 Mean 7.766949
Largest Std. Dev. 5.755523
75% 9.597424 40.19808
90% 12.77777 40.19808 Variance 33.12604
95% 16.52979 40.19808 Skewness 3.096199 99% 38.70926 40.74659 Kurtosis 15.85446
2.2 tabstat 命令
论文中呈现基本统计量通常不再使用 summmarize 命令,因为其格式不太符合多数期刊的要求(通常期刊要求保留三位或两位有效数字),更多时候使用 tabstat 命令。
tabstat wage age hours married collgrad race, ///
N mean sd min max p25 p50 p75) ///
stat(format(%4.2f) columns(statistics)
columns (statistics) 表示每一列呈现基本统计量,则每一行呈现变量名称。格式通过 format 命令 (可简写为 f )来控制,.2f 表示保留两位有效数字。注意,在将表格插入 Word 文档时需要进行一个小的处理,即需要把观测值个数中的 “.00” 手动删掉。
另外,每一列呈现的基本统计量是通过 Statistics 选项来控制的,可简写为 s 或 Stat,可在 help 文档中查看各种统计量的名称并进行列举。
上述命令简写后如下:
local x "wage age hours married collgrad race"
local x "wage age hours married collgrad race"
tabstat `x', ///
s(N mean sd min max p25 p50 p75) ///
s) f(%4.2f) c(
注意,表格插入 Word 有两种方式:
- 使用 logout 命令输出为 Excel 表格。
- 选中后,右键复制表格。
2. Stata 外部命令:fsum
在基本设定下,在 Stata 中输入 fsum
可以快速呈现基本统计量,呈现的结果和 sum
很接近,但也存在细微的差别,比如输入 sum
口令时,基本统计量的小数点位数并不完全一致,但是 fsum
基本保留了小数点后两位,符合多数期刊的要求。
N Mean SD Min Max
Variable |
---------------+------------------------------------------
idcode | 2246 2612.65 1480.86 1.00 5159.00
age | 2246 39.15 3.06 34.00 46.00
race | 2246 1.28 0.48 1.00 3.00
married | 2246 0.64 0.48 0.00 1.00
never_married | 2246 0.10 0.31 0.00 1.00
grade | 2244 13.10 2.52 0.00 18.00
collgrad | 2246 0.24 0.43 0.00 1.00
south | 2246 0.42 0.49 0.00 1.00
smsa | 2246 0.70 0.46 0.00 1.00
c_city | 2246 0.29 0.45 0.00 1.00
industry | 2232 8.19 3.01 1.00 12.00
occupation | 2237 4.64 3.41 1.00 13.00union | 1878 0.25 0.43 0.00 1.00
wage | 2246 7.77 5.76 1.00 40.75
hours | 2242 37.22 10.51 1.00 80.00
ttl_exp | 2246 12.53 4.61 0.12 28.88 tenure | 2231 5.98 5.51 0.00 25.92
fsum
最大的优势在于呈现类别统计量时非常有效率,以下面的命令为例。
global x "wage age hours married collgrad race occupation"
$x, ///
fsum s(N mean median sd min max abspct) ///
///
pctvar(married collgrad) ///
catvar(race occupation) format(8.2)
全局暂元中包含了两个类别变量,分别为 occupation 和 race。pctvar 选项后的 married 和 collgrad 都为虚拟变量,在执行 fsum
后,呈现出的是变量取 0/1 的比例。比如在数据中,有64.2%的妇女已婚,有23.69%的妇女的学历是大学毕业。注意虚拟变量并不需要呈现最小值和最大值,中位数也完全可以通过平均值判断,比如平均值是0.642,则显然中位数是1(即1的个数多于0的个数)。
再往下看,catvar 选项中设定了所有类别变量, race 共有三个类别,则会呈现三个类别分别的统计情况,如白种人占了72.89%。在没有 fsum
命令时,统计类别变量的占比时还需要 tab 命令来处理。
N AbsPct Mean SD Median Min Max
Variable |
-------------------+--------------------------------------------------------
wage | 2246 0.00 7.77 5.76 6.27 1.00 40.75
age | 2246 0.00 39.15 3.06 39.00 34.00 46.00
hours | 2242 0.18 37.22 10.51 40.00 1.00 80.00
married | 2246 0.00 64.20
collgrad | 2246 0.00 23.69
race | 2246 0.00 1.28 0.48 1.00 1.00 3.00 white (%) | 1637 0.00 72.89
black (%) | 583 0.00 25.96
other (%) | 26 0.00 1.16
occupation | 2237 0.40 4.64 3.41 3.00 1.00 13.00
Professional (%) | 317 0.00 14.17
Managers/admin(%) | 264 0.00 11.80
Sales (%) | 726 0.00 32.45
unskilled (%) | 102 0.00 4.56
Craftsmen (%) | 53 0.00 2.37
Operatives (%) | 246 0.00 11.00
Transport (%) | 28 0.00 1.25
Laborers (%) | 286 0.00 12.78
Farmers (%) | 1 0.00 0.04
Farm laborers (%) | 9 0.00 0.40
Service (%) | 16 0.00 0.72
Household (%) | 2 0.00 0.09 Other (%) | 187 0.00 8.36
我们也可以加入 uselabel 选项,可显示数据中已经定义好的标签,或用 char 临时定义标签,标签内容将呈现在表格左侧。
除上文介绍的命令外, tabout 命令也可以呈现基本统计量,比较灵活,功能强大,可以配合 latex 使用。
publish 的功能也很庞大,但是语法较为复杂,还是建议使用前文提到的若干命令,更加方便使用。