optim()没有给出正确的最小值

时间:2018-05-17 21:06:42

标签: r

我使用optim尝试在二项式测试中找到关键区域,但是在某个样本大小后,它无法收敛到正确的值。

似乎功能很好,所以不确定为什么它在这一点上停止工作。

N <- 116

optim(1, function(x) abs(1 - pbinom(x, N, 0.1) - 0.05), method = "Brent", lower = 1, upper = N)

上述optim功能适用于N < 116

1 个答案:

答案 0 :(得分:1)

起点处的梯度几乎为0,算法无法转移到下一个最佳解决方案。

一种方法是使用另一个起点:

optim(0.1*N, function(x) abs(1 - pbinom(x, N, 0.1) - 0.05), method = "Brent", lower = 1, upper = N)

或使用optimize因为它的一维:

optimize(function(x) abs(1 - pbinom(x, N, 0.1) - 0.05), c(1,N))