optim () не дает правильные минимумы - PullRequest
0 голосов
/ 18 мая 2018

Я использую 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 голосов
/ 18 мая 2018

Градиент в вашей начальной точке равен почти 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...