作者:连玉君 (中山大学, arlionn@163.com)
连享会主页: https://gitee.com/arlionn/Course
目录
- 1. 问题背景
- 2. 查找 Bug 过程记录
- 3. 过程模拟重现
- 报错代码
- 正常代码
- 4. 结论
- 问题描述
- 解决办法
- 5. 额外说明
- 6. 插曲:排查的思路
- 关于我们
1. 问题背景
这两天在紧锣密鼓地准备 「连享会直播:动态面板数据模型」,发现了一件悲催的事情:运行这条我执行过几百次的 xtabond y x
命令,居然报错:
于是开始了一段快乐又痛苦的查错之旅。最终发现是 xtabond
和 xtdpd
命令存在一个小 Bug。而我之前在 Profile.do 文件中的设定正是触发这个小 Bug 的那颗子弹。
最终的解决办法很简单:删除 Profile.do 文件中的如下两条命令,然后重启 Stata 即可:
set showemptycells on, permanently
set showomitted on, permanently
2. 查找 Bug 过程记录
输入如下命令得到报错信息,追踪错误来源:
xtarsim y x eta, n(1000) t(10) gamma(0.1) beta(1.3) rho(0.2) ///
one(corr 3) sn(9) seed(1234)
*-GMM
cls // 清屏
set trace on // 追踪错误来源
xtabond y x
错误信息如下:
……
- local options2 : subinstr local options " " "", all
- if `"`options2'"' != "" {
= if `"noemptycellsnoomitted"' != "" {
- di as err "option `options2' not allowed"
= di as err "option noemptycellsnoomitted not allowed"
option noemptycellsnoomitted not allowed
- exit 198
}
------------------------------- end xtdpd.Estimate ---
------------------------------------------ end xtdpd ---
------------------------------------------ end xtabond ---
r