我正在尝试使用 Stata 中的 nlcom(Delta 方法)为有限因变量模型估计边际效应的标准误差。在计算边际效应时,我们通常会计算概率、条件和无条件部分。我还能够在 Stata 中使用 nlcom 获得条件和无条件部分的标准错误。但是,在使用 nlcom 进行概率计算时,出现错误“超出最大迭代次数”。我确实查看了解决方案 here,它确实解决了一些二进制变量 (3)。但是,对于 4 个变量,我仍然遇到相同的错误。我深入研究了这个问题,发现错误与虚拟变量为 0 的部分相关:

\begin{方程}
\Delta P(y>0)= P(y>0|x=1)-P(y>0|x=0)
\end{方程}

这是种族变量(虚拟变量)的示例代码,其中 nlcom 适用于虚拟变量为 1(未更正)但不适用于 0 的部分,即使考虑到前面提到的网站中建议的更正。增加迭代次数和乘以更大的幅度也无济于事:

       _nl_1:  binormal(1.733373263151318-(.0438395852394023*[Tier1]_b[race])+(1*[Tier1]_b[race]),7.575546508411257-(.0438395852394023*[Tier2]_b[race])+
> (1*[Tier2]_b[race])/exp([lnsigma]_b[_cons]),tanh([tau]_b[_cons]))

------------------------------------------------------------------------------
             |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
       _nl_1 |   .9223902   .0129743    71.09   0.000     .8969611    .9478193
------------------------------------------------------------------------------

       _nl_1:  binormal(1.733373263151318-(.0438395852394023*[Tier1]_b[race])+(0*[Tier1]_b[race]),7.575546508411257-(.0438395852394023*[Tier2]_b[race])+
> (0*[Tier2]_b[race])/exp([lnsigma]_b[_cons]),tanh([tau]_b[_cons]))*(1e+2)
Maximum number of iterations exceeded.

任何想法来解决这个问题?

最佳答案

我不知道这是否是您的问题的根源,但在成功和不成功的 nl 语句中,估计的标准偏差 exp([lnsigma]_b[_cons]) 只除最后一个 [Tier*]_b[race] 项,然后只除在 binormal 的第二个参数中(这可能是因为您在第一个参数中将 SD 限制为 1)。这是对您在第二个 nl 语句中的意思的猜测,但这只是猜测。

 #delim ;
_nl_1:
 binormal
((1.733373263151318-(.0438395852394023*[Tier1]_b[race])+(0*[Tier1]_b[race]))
/exp([lnsigma]_b[_cons]),
 (7.575546508411257-(.0438395852394023*[Tier2]_b[race])+ (0*[Tier2]_b[race]))
/exp([lnsigma]_b[_cons]),
tanh([tau]_b[_cons])) ;
#delim cr

关于stata - 错误 : "Maximum number of iterations exceeded" using nlcom in Stata,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20460772/

10-12 13:57