楼主: Brdic
16749 17

[回归分析求助] ML求助-could not calculate numerical derivatives -- flat or discontinuous region [推广有奖]

11
羊皮就是我 发表于 2020-11-8 17:56:31
jl3a17 发表于 2020-9-21 16:15
我目前在做scm安慰剂的时候遇到了,经过检查,是模型设定错误,控制变量过少以至无法跑满循环
你好,我在做合成控制法的稳健性检验时也遇到了类似问题,请问你是怎么解决的呢

12
库洛洛洛洛洛 学生认证  发表于 2021-12-15 21:02:15
jl3a17 发表于 2020-9-21 16:15
我目前在做scm安慰剂的时候遇到了,经过检查,是模型设定错误,控制变量过少以至无法跑满循环
请教一下 scm控制变量需要多少个呢

13
曾菁保险 发表于 2022-3-4 14:33:55
jl3a17 发表于 2020-9-21 16:15
我目前在做scm安慰剂的时候遇到了,经过检查,是模型设定错误,控制变量过少以至无法跑满循环
同是XCM,请问怎么看是哪个样本或者变量出了问题呢

14
曾菁保险 发表于 2022-3-4 14:34:15
曾菁保险 发表于 2022-3-4 14:33
同是XCM,请问怎么看是哪个样本或者变量出了问题呢
打错,是SCM

15
曾菁保险 发表于 2022-3-4 14:35:04
羊皮就是我 发表于 2020-11-8 17:56
你好,我在做合成控制法的稳健性检验时也遇到了类似问题,请问你是怎么解决的呢
同问,请问解决了吗

16
曾菁保险 发表于 2022-3-4 14:37:20
jl3a17 发表于 2020-9-21 16:15
我目前在做scm安慰剂的时候遇到了,经过检查,是模型设定错误,控制变量过少以至无法跑满循环
我看也有说是中间某个样本存在不可导的情形,不知道怎么找到那个样本

17
卞婷婷 发表于 2024-3-17 16:49:41
曾菁保险 发表于 2022-3-4 14:34
打错,是SCM
请问你解决这个问题了吗

18
赵安豆 发表于 2024-10-11 19:37:37
遇到`could not calculate numerical derivatives -- flat or discontinuous region encountered`这样的错误,通常意味着Stata在尝试计算似然函数梯度或Hessian矩阵时遇到了问题。这可能是因为你的模型在某些参数值下无法被正确评估,或者数据特征导致了数值不稳定。

要解决这个问题,可以尝试以下几个方向:

1. **初始化参数**:检查你的初始参数估计是否适当。如果初始值选择不当,可能会让算法陷入不连续或平坦区域。尝试更改初始值看是否能解决问题。

2. **数值稳定性**:在计算似然函数时,确保所有运算都是数值稳定的。例如,避免溢出(如极大数相乘)和下溢(极小数)。使用log-likelihood而非likelihood可以提高数值稳定性。

3. **模型复杂性**:你的模型可能过于复杂或不适合数据的特征。尝试简化模型,或者增加更多数据以更好地估计参数。

4. **约束条件**:在某些情况下,添加合理的约束条件可以帮助算法收敛。例如,确保所有比例因子都非负,并且总和为1。

5. **微分步长调整**:Stata计算导数时的默认步长可能不适合你的问题。可以尝试使用`ml option dnumerical`来调整数值导数的步长。

6. **检查数据质量**:确保没有异常值或缺失值,这些都可能导致优化算法失败。

7. **程序逻辑审查**:仔细检查你的ML程序代码是否有错误,例如在计算似然函数时是否正确处理了所有边界条件和特殊情况。

8. **使用`ml debug`选项**:这个选项可以帮助你更详细地了解问题所在。它会输出每次迭代的参数值、拟合值等信息,有助于调试。

9. **求助于社区或专家**:如果上述方法都尝试过但仍然无法解决问题,可以考虑将你的代码和数据(或者模拟数据)发布到Stata论坛或其他专业社区中寻求帮助。

最后,确保你对ml命令的使用是正确的。例如,在定义似然函数时是否正确指定了参数;在调用`ml model`时是否正确设置了类型、公式等信息。检查并修改程序后,运行`ml check`来验证模型设置是否正确是一个好习惯。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-31 20:31