Stata - ttest的输出结果

时间:2015-02-12 22:53:30

标签: output stata

我有group_id的数据(1,2,3等)。我必须通过group_id进行t检验。下面我提供了我认为我将为每个group_id使用的代码。如何修改它以便我可以循环group_ids并获得所有t测试组合的输出?将不胜感激任何帮助。感谢。

ttest return, by(test_indicator) unequal

1 个答案:

答案 0 :(得分:2)

by前缀可以为每个group_id重复t检验,但很难与其他代码结合使用。以下是使用levelsofforeach循环遍历每个ID,运行ttests和post结果到临时数据集的快速示例。然后加载新数据集并将其导出到.xls文件中。

sysuse auto,clear
recode rep78 (1/3=1)(4/5=2),gen(id) // artificial group id
drop if missing(id) // ensure all casea have ids

tempname ttestparm
tempfile outfile

postfile `ttestparm' obs n1 n2 mu1 mu2 sd1 sd2 diff_b diff_se diff_p using `outfile',replace
levelsof id,local(idvals)
foreach i of local idvals {
    ttest mpg if id==`i', by(foreign)
    post `ttestparm' (`i') (`r(N_1)') (`r(N_2)') (`r(mu_1)') (`r(mu_2)') (`r(sd_1)') (`r(sd_2)') (`r(mu_1)'-`r(mu_2)') (`r(se)') (`r(p)')
}

postclose `ttestparm'
preserve
use `outfile',clear

export excel using "ttestout.xls", firstrow(variables) replace
restore

请注意,preserve / restore组合仅在有更多工作要处理原始数据时才有用。