Stata -- 在循环中运行3500个回归并提取回归输出结果

5
我正在使用forval循环来运行3,500个回归,每个回归针对一个组。 然后我需要汇总结果。 通常,当我使用循环运行回归时,我使用estimates store函数,随后使用estout。以下是示例代码。但我认为此代码的处理限制为300。如果有人能让我知道如何自动化处理3,500个回归,我将非常感激。
forval j = 1/3500 {

    regress y x if group == `j'
    estimates store m`j', title(Model `j')
}

estout m* using "Results.csv", cells(b t)   ///
   legend label varlabels(_cons constant)   ///
       stats(r2 df_r N, fmt(3 0 1) label(R-sqr dfres N)) replace

Nick 和其他人,我一直无法让 statsby 正常工作。希望能提供一个示例来展示如何提取结果。谢谢! - user1542743
正好相反:这个网站专注于海报们寻求特定代码方面的具体建议。向我们展示哪些不起作用。 - Nick Cox
我将代码更改为:statsby _b _se,按(组)保存($path\my_reg.dta):regress ret2 ret2_lag。看起来可以工作了。谢谢,Nick。如果在完全实施时遇到问题,我会再写回来的。感谢你的帮助。 - user1542743
是的,我现在正在与几个小组进行测试。一旦我得到我需要的东西,我就会为3500个实施。 - user1542743
1
你还可以使用byvar:http://ideas.repec.org/c/boc/bocode/s392602.html - Metrics
显示剩余4条评论
1个回答

1

这里是一个使用statsby的示例,我对由rep78变量定义的5个组中每个组的mpg进行价格回归,并将结果存储在名为my_regs的Stata数据集中:

sysuse auto, clear
statsby _b _se, by(rep78) saving(my_regs): reg price mpg
use my_regs.dta

如果您愿意,可以省略saving()选项,然后您的数据集将被回归结果替换在内存中,因此您无需直接使用use打开文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接