时间: 2026-01-12 浏览量: 17872
描述性统计是任何数据分析的第一步。在Stata中,这一步骤可以非常简洁高效。通过几条简单的命令,就能快速了解数据的基本特征,包括样本量、均值、标准差、最小值、最大值等。更重要的是,这些结果可以直接导出,用于论文或报告中。本文将从最基础的命令讲起,逐步深入到分组统计和结果输出,帮你全面掌握Stata的描述性统计功能。
在进行描述性统计之前,首先要确保数据已经正确导入Stata。假设你有一个Excel格式的数据文件,可以用以下命令导入:
import excel "文件路径\数据文件名.xlsx", sheet("Sheet1") firstrow clear
其中firstrow选项表示将Excel的第一行作为变量名,clear会清除当前内存中的数据。
导入数据后,建议先用describe命令查看数据的基本信息:
describe
这个命令会列出数据集中所有变量的名称、存储类型、显示格式以及变量标签。它还会告诉你数据集的总观测数(样本量)和变量个数。这些信息能帮你快速确认数据是否完整导入。
summarize是Stata中进行描述性统计最常用的命令,它可以计算数值变量的基本统计量。
在命令窗口输入:
summarize
不加任何变量名时,Stata会对数据集中所有数值型变量计算描述性统计量,包括观测数、均值、标准差、最小值和最大值。
如果想只看特定变量的统计量,可以在命令后面跟上变量名:
summarize price mpg weight
这条命令会只显示price、mpg和weight这三个变量的统计结果。
默认情况下,summarize只输出基础的几个统计量。如果需要更详细的信息,比如百分位数、方差、峰度、偏度等,可以加上detail选项:
summarize price, detail
加上detail后,Stata会输出非常详细的统计信息,包括四个百分位数(1%、5%、10%、25%、50%、75%、90%、95%、99%)、方差、偏度、峰度等。这对于深入了解变量分布非常有帮助。
summarize虽然好用,但在输出格式上灵活性不够。tabstat命令提供了更强的定制能力,可以让你精确控制要显示的统计量和输出格式。
tabstat的基本语法是:
tabstat 变量列表, statistics(统计量列表)
例如,要计算price、mpg和weight的均值、标准差、最小值和最大值:
tabstat price mpg weight, statistics(mean sd min max)
tabstat支持的统计量非常丰富,常用的有:
mean:均值
sd:标准差
var:方差
min:最小值
max:最大值
range:极差(最大值减最小值)
p1、p5、p10、p25、p50、p75、p90、p95、p99:各百分位数
iqr:四分位距
cv:变异系数(标准差除以均值)
semean:均值的标准误
skewness:偏度
kurtosis:峰度
count:观测数
tabstat还可以控制输出格式。例如,用format选项指定数字格式:
tabstat price mpg weight, statistics(mean sd min max) format(%9.2f)
这条命令会把所有统计量保留两位小数输出。
默认情况下,tabstat的输出是变量按列、统计量按行排列。如果想转置,可以用columns选项:
tabstat price mpg weight, statistics(mean sd min max) columns(statistics)
这样输出就变成了统计量按列、变量按行排列,更适合直接粘贴到论文表格中。
在实际研究中,经常需要比较不同组别的描述性统计结果。例如,比较男性和女性的收入分布。Stata提供了多种分组统计的方法。
by前缀是Stata中非常强大的分组工具。使用前需要先用sort命令对分组变量排序:
sort gender by gender: summarize income
或者用更简洁的bysort一步完成:
bysort gender: summarize income
这条命令会分别显示男性和女性的收入统计。
tabstat命令同样支持分组统计,而且输出格式更紧凑:
tabstat income, by(gender) statistics(mean sd n)
这条命令会生成一个表格,每一列是一个性别组,每一行是一个统计量。
如果想同时比较多变量在不同组别的情况,可以这样写:
tabstat price mpg weight, by(foreign) statistics(mean sd n) format(%9.2f)
这条命令会对比国产车和进口车在价格、油耗、重量上的均值和标准差。
对于分类变量,描述性统计需要的是频数和百分比。Stata中tabulate命令专门用于处理这类变量。
查看一个分类变量的分布:
tabulate gender
输出会显示每个类别的频数、百分比和累计百分比。
分析两个分类变量之间的关系:
tabulate gender education
如果加上column选项,可以显示列百分比;加上row选项显示行百分比;加上cell选项显示单元格百分比。
tabulate gender education, column
对于二维表,还可以计算卡方统计量:
tabulate gender education, chi2
输出会包括卡方值和对应的p值,用于检验两个变量是否独立。
描述性统计做完了,下一步就是把这些结果整理出来,用于论文或报告。
outreg2是Stata中最常用的结果导出命令之一。首先需要安装:
ssc install outreg2, replace
然后可以这样导出描述性统计结果:
summarize price mpg weight
outreg2 using "描述统计.doc", replace sum(log) title("表1:变量描述性统计")
sum(log)选项会输出样本量、均值、标准差、最小值和最大值。如果想输出更多统计量,可以用sum(detail)。
如果想只保留部分变量,可以用keep()选项:
outreg2 using "描述统计.doc", replace sum(log) keep(price mpg weight) title("表1:主要变量描述性统计")
asdoc是另一个非常方便的导出命令,用法更简单:
ssc install asdoc, replace
asdoc sum price mpg weight, replace title("表1:描述性统计")
这条命令会直接生成一个Word文档,包含变量的描述性统计结果。
对于分组描述性统计,可以用tabstat配合outreg2导出:
tabstat price mpg weight, by(foreign) statistics(mean sd n) save matrix T = r(Stat1) outreg2 using "分组统计.doc", replace sum(log) keep(price mpg weight)
这个方法稍微复杂一些,但掌握了之后可以灵活处理各种分组输出。
除了数字统计,图形也能直观展示变量分布。Stata提供了丰富的绘图命令。
查看连续变量的分布:
histogram price, normal
加上normal选项会在图上叠加正态分布曲线,方便判断数据是否符合正态分布。
比较多个变量的分布:
graph box price mpg weight
箱线图可以直观显示中位数、四分位数和异常值。
平滑地展示变量分布:
kdensity price, normal
把上面所有步骤串起来,一个典型的描述性统计分析流程如下:
* 1. 导入数据
cd "D:\我的研究\数据分析"
import excel "汽车数据.xlsx", sheet("Sheet1") firstrow clear
* 2. 查看数据概况
describe
* 3. 全体样本描述性统计
summarize price mpg weight rep78
tabstat price mpg weight rep78, statistics(mean sd min max) format(%9.2f)
* 4. 分组描述性统计
bysort foreign: summarize price mpg weight
tabstat price mpg weight, by(foreign) statistics(mean sd n) format(%9.2f)
* 5. 分类变量频数统计
tabulate rep78
tabulate foreign rep78, column chi2
* 6. 结果导出
outreg2 using "表1_描述统计.doc", replace sum(log) keep(price mpg weight) title("表1:主要变量描述性统计")
asdoc tabstat price mpg weight, by(foreign) statistics(mean sd n) format(%9.2f) replace title("表2:分组描述性统计")
* 7. 图形辅助
histogram price, normal title("图1:价格分布")
graph export "图1_价格分布.png", replace
Stata的描述性统计功能强大而灵活。summarize命令适合快速查看基础统计量,tabstat提供了更精确的控制,tabulate专门处理分类变量,bysort和by选项实现了分组统计。配合outreg2或asdoc,这些结果可以轻松导出为规范的表格。
掌握这些命令后,你就能在几分钟内完成对任何数据集的初步探索,为后续的深入分析打下坚实基础。无论是课程作业、毕业论文还是学术发表,这些技能都会让你事半功倍。
Copyright @ 国际会议云 2026 版权所有 蜀ICP备2022018807号-3