全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
938 1
2024-06-11
各位uu,我的双边随机前沿,这个出不了结果
      version 9  // 这个命令必须加上
    SFA2tier lny  lnz1 lnz2 lnz3 lnz4 lnz5 ,sigmau(lnx) sigmaw(lnx) check search  ///不固定地区和时间
   
    version 9          // 这个命令必须加上
    ml max             // MLE 估计目标函数
    est store m0 // 保保存结果
提示“could not calculate numerical derivatives
missing values encountered”

但是将()中的lnx删除就可以

      version 9  // 这个命令必须加上
    SFA2tier lny  lnz1 lnz2 lnz3 lnz4 lnz5 ,sigmau() sigmaw() check search  ///不固定地区和时间
   
    version 9          // 这个命令必须加上
    ml max             // MLE 估计目标函数
    est store m0 // 保保存结果

这个问题怎么解决呀?有偿求解!



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2024-6-12 17:56:27
你遇到的问题在于`SFA2tier`命令在尝试计算数值导数时遇到了缺失值,这通常是由于数据中的某些观察值无法用于模型的迭代优化过程。具体到你的案例中,问题可能来源于`sigmau()`和`sigmaw()`选项中的对数转换(`lnx`)。

当`lnx`被指定为`sigmau()`和`sigmaw()`的参数时,命令会尝试用每个观察值的对数值来估计随机前沿模型中的方差组件。然而,如果数据中有任何负值或零值,取自然对数(即使用`ln`函数)会导致未定义的结果或者缺失值。

因此,在你的具体例子中,即使移除了`lnx`选项后可以运行成功,这表明原本的命令可能是因为数据中的某些观察值在对数转换时产生问题导致的。为了避免这类错误:

1. 检查所有用于取自然对数的变量(`lnz1`, `lnz2`, ..., `lnz5`)是否包含非正数值。
2. 如果存在负值或零,考虑加一个足够小的正常数再进行对数转换。例如:将`lnx`替换为`ln(x + epsilon)`,其中`epsilon`是一个很小的正值(比如0.01),这可以避免对数函数在非正数值上产生未定义的结果。
3. 或者,在模型设定中重新考虑是否真的需要使用对数转换。如果仅是为了处理数据中的量纲问题或者线性化目的,你可能需要评估这种转换对于你的具体研究问题的必要性和适用性。

最后,确保数据集没有缺失值也是一个好习惯。在运行任何统计命令之前,通过`tabstat varlist, missing`检查变量列表中是否存在缺失观测是推荐的做法。
如果以上建议都不能解决问题,尝试详细查阅Stata文档或在线论坛中关于`sfa2tier`和`ml max`的使用案例和常见问题,可能会有更具体的指导帮助你定位并解决错误。

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



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群