我正在运行一个 .do 文件,其中包括由 .do 估计的许多模型xtlogit
。即使模型不收敛,我也想在日志中记录这一点。由于 .do 文件需要几个小时才能运行,我通常会离开并做其他事情。不幸的是,模型的不收敛会停止整个 .do 文件。因此,我用来capture noisily {}
运行整个 .do 文件。但是,这似乎忽略了我在每个xtlogit
命令中分别指定的最大迭代次数,具体取决于变量的数量和模型的假设复杂性。
在运行模型之前,我已经通过set maxiter
全局使用找到了解决方法。但这不允许对每个模型进行更精细的迭代规范(除非我经常使用它)。
我找不到任何关于capture
. 也许,有比我的解决方法更好的方法set maxiter
?
这是一个示例代码,它通过施加太少的迭代来手动重现错误:
webuse union, clear
capture noisily {
xtlogit union age grade i.not_smsa south##c.year, fe iter(2)
xtlogit union age grade i.not_smsa south##c.year, iter(3) pa
xtlogit union age grade i.not_smsa south##c.year, fe iter(2)
}
.do 文件在第二个模型之后停止并显示错误消息“未实现收敛”
r(430);
,并且不会继续执行第三个模型,因为我怀疑是因为capture
.