我写了一个在 R 中执行最大模拟似然估计的函数,效果很好。
然而,问题在于 optim 不会像 matlab 中的 fminuc 优化器那样同时调用相同的函数来估计似然值和估计梯度。因此,每次如果 optim 想要更新梯度,就必须重复对给定参数向量的模拟。最后,优化调用了大约 100 次 loglik 函数来更新参数,另外调用了 50 次 loglik 函数来计算梯度。
我想知道是否有一个优雅的解决方案可以避免 50 个额外的模拟步骤,例如通过在每个步骤中存储估计的似然值和梯度。然后在下一次调用似然函数之前,检查给定参数向量的信息是否已经可用。这可以通过在 optim 和 loglik 函数之间插入一个附加函数来完成。但这似乎有点小。
有什么好主意吗?
干杯,本