Я пытаюсь использовать optimize()
найти минимальное значение п для следующей функции (Clopper-Пирсон нижней границы):Оптимизации для глобального минимума
f <- function (n, p=0.5)
(1 + (n - p*n + 1)/
(p*n*qf(p= .025, df1= 2*p, df2= 2*(n - p + 1))))^-1
А вот как я попытался оптимизировать его:
n_clop <- optimize(f.1, c(300,400), maximum = FALSE, p=0.5)
n_clop
Я сделал это на интервале [300,400], потому что я подозреваю, что значение находится между ним, но в конечном итоге я хотел бы сделать оптимизацию между 0 и бесконечностью. Кажется, что эта команда производит локальный минимум, потому что независимо от того, какой интервал он дает нижнюю границу этого интервала как минимум, - это не то, что я подозреваю от clopper-pearson. Итак, мои два вопроса: как правильно найти глобальный минимум в R и как это сделать на любом интервале?
Кроме того - я хотел бы, чтобы функция равнялась 0,5 (полуширина доверительного интервала для пропорции) и вычисляла n для этого. Не уверен, что моя настройка верна. –
Кстати, политика SO заключается в том, что вам не нужно включать имя языка программирования (R) в заголовок вопроса - тэг [r] должен быть достаточным –
Нет общего способа сделать это для каждая функция. Что вы готовы принять, чтобы сделать это разрешимым? Глобальная оптимизация - непростая задача для решения любого языка. – MrFlick