关于BHHH算法失效问题及替代算法的技术咨询
关于BHHH算法收敛问题的解答
你的判断是否正确?
你的判断是正确的。BHHH算法依赖得分向量的外积来近似海森矩阵,当对数似然函数及其导数本身量级较大时,得分外积的元素会被显著放大,导致近似海森矩阵的逆矩阵变得极小——这会让参数更新的步长几乎为0,表现为“立即收敛”,但实际上参数根本没靠近最优解。起始点距最优解过远会进一步加剧这个问题,因为此时导数的量级通常本来就很高,两者叠加会让近似海森矩阵的量级失衡更严重。
适合的替代算法/改进方案
- 先做参数/对数似然缩放:这是最优先的解决方式。比如将参数做标准化处理(减去均值除以标准差),或者把对数似然函数除以样本量(多数情况下对数似然与样本量正相关,除以n后量级会趋于稳定)。缩放后再用BHHH算法,大概率能解决量级失衡问题。
- 换用BFGS/L-BFGS算法:这类拟牛顿算法对海森矩阵的近似更稳健,不会完全依赖得分外积。其中L-BFGS不需要存储完整的海森矩阵,适合样本量或参数维度较大的经济学模型,收敛稳定性远优于BHHH。
- 先用梯度下降过渡:如果起始点离最优解极远,先使用带线搜索的梯度下降法,让参数向最优解方向移动,降低导数的量级,之后再切换到拟牛顿类算法(包括BHHH)。
- 尝试EM算法:如果你的模型可以拆分为隐变量结构(比如面板数据、离散选择模型中的部分场景),EM算法每一步都能保证对数似然函数值不减,收敛过程更稳定,对起始点的要求更低。
内容的提问来源于stack exchange,提问作者tooongx
相关产品推荐
相关产品推荐

