我正在尝试使用 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/