我有兴趣从分析中聚合/收集值,以便将它们输出到文件中。这背后的动机是保持分析过程尽可能多的“放手”。尽可能避免输入错误并更有效地产生结果(即,不要在纯文本文件中绕过一堆值然后将它们重新输入到文档中......)。
作为一个例子,我想运行三个层次回归,并将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
*/
答案 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)