如何从多个分析中收集/汇总Stata输出到文件?

时间:2015-03-23 21:07:41

标签: output stata

我有兴趣从分析中聚合/收集值,以便将它们输出到文件中。这背后的动机是保持分析过程尽可能多的“放手”。尽可能避免输入错误并更有效地产生结果(即,不要在纯文本文件中绕过一堆值然后将它们重新输入到文档中......)。

作为一个例子,我想运行三个层次回归,并将SEX的边际预测值保存在结果变量TOTALSCORE上。

我知道我可以启动一个日志文件并保存所有输出,但我想避免手动重新输入。

我确实找到了关于类似主题here的讨论,但无法弄清楚如何让它发挥作用......


use http://www.stata-press.com/data/r13/depression.dta , replace



foreach v of varlist * {
rename `v' `=lower("`v'")'
}
****



anova totalscore i.sex
ereturn list , all
return list , all
estat esize 
return list, all
margins i.sex, at( (mean) _c (asobserved) _f)
return list , all
matrix list r(b)


anova totalscore i.sex i.race
ereturn list , all
estat esize
margins i.sex,  at( (mean) _c (asobserved) _f)
matrix list r(b)



anova totalscore i.sex i.race c.age
ereturn list , all
estat esize
margins i.sex,  at( (mean) _c (asobserved) _f)
matrix list r(b)


/*
would ultimately like to produce something like 
this and save to a file :  


Model       0.sex       1.sex           est_name
model 1     57.237      57.840          anova totalscore i.sex
model 2     57.243      57.825          anova totalscore i.sex  i.race
model 3     57.228      57.864          anova totalscore i.sex  i.race  c.age



*/

2 个答案:

答案 0 :(得分:1)

您可以使用用户编写的模块ESTOUT(运行ssc describe estout)。

一个例子:

clear

use http://www.stata-press.com/data/r13/depression.dta
rename _all, lower

local mods `" "i.sex" "i.sex i.race" "i.sex i.race c.age" "'

quietly foreach mod of local mods {
    anova totalscore `mod'
    margins i.sex, at( (mean) _c (asobserved) _f) post
    eststo
}   

esttab, noobs not nostar mtitles nonumbers title(Marginal Effects)
eststo clear

(注意post命令的margins选项。)

该命令允许以多种方式将结果写入文件和自定义输出,但需要彻底阅读

答案 1 :(得分:1)