Mar
6
2009
在Stata中创建three-way table
标签: stata, 统计 类别:学问, 统计
最近写的一篇文章里好几次用多因子方差分析[1]来看两个自变量[2]对因变量[3]的主效应[4]和相互作用[5]。在文章里需要用表格对因变量在两个自变量构成的分组[6]里的平均值[7]和标准方差[8]进行描述[9]。
举例说,现在有一个因变量IV,有两个自变量cat4和cat2,我想用这样表格样式表现出来:

在了解Stata的table命令之前,我只会用tabulate结合summarize把各个分组中的均值和标准方差分别列出来:
tab var1 var2, sum(var3)
具体到刚才的例子里,语句和输出结果是这样:

不经过两个步骤的话,这个结果无法直接填充到设计好的表格中。首先,需要在文本编辑软件中转置矩阵[10]。其次,由于数据精确到了小数点后8位,而论文写作中通常只需精确到2位,还要对数字格式更改一下。
用table命令就可以一步实现我想要的效果了。table非常强大,可以自定义输出的statistics,格式,还可以生成最多七唯的表格[11]。要想实现和刚才tab类似的效果,非常简单。

相比tab,这个效果更简洁。但是cat2变量仍显示在行上,而非纵向显示在cat4的各列中。通过实验我发现用一个取巧的办法可以用four-way table实现理想中的效果。首先需要创建一个“鬼魂”变量[12],这个变量在four-way table中会取代cat2显示在行上,而cat2将分别显示在cat4下的单个分组中。一图胜千言——

所以这一篇的核心思想是,我真的是一个宁愿花七小时五十八分钟来研究怎么用两分钟完成一件事,也不愿意勤勤恳恳干八个小时的懒人。
- factorial analysis或factorial ANOVA
- independent variable
- dependent variable
- main effect
- interaction effect
- 以性别和年龄为例,分组可以有青年男性,中年女性等等
- mean
- standard deviation
- 这一段看起来及其拗口,希望我的中文统计术语用得不至于太离谱
- 听上去好吓人,其实就是transpose:把列变成行,把行变成列。在Microsoft Word中操作的方法可以参考这里
- seven-way table
- 称之为鬼魂是因为它没有实际意义,只是为了在生成表格时占位而已
