Как найти максимум многомерной функции в R

У меня есть совместная вероятность того, что мне нужно максимизировать, что определяется примерно 25 различными переменными. Я надеялся, что найдется метод для нахождения комбинации значений переменных, который максимизирует эту функцию, не прибегая к 25 циклам 'for', которые перебирают все возможные значения.

Вот пример гораздо меньшей части этой вероятности, максимизированной с использованием циклического подхода "for", где "temp" вычисляет значение вероятности, а test - это вектор, который записывает значения используемых переменных:

h1=23
h2=31

test=c(NA,NA,NA,NA,0)
for (N in seq(60,150,10)) {
  for (p1 in seq(0.01,1,.01)) {
    for (p2 in seq(0.01,1,.01)) {
      for (S1 in seq(0.5,1,.005)) {
        temp=factorial(N)/(factorial(h1)*factorial(h2)*factorial(N-h1-h2))*(p1)^h1*((1-p1)*S1*p2)^h2*(1-(p1+(1-p1)*S1*p2))^(N-h1-h2)
        if (temp>test[5]) test=c(p1,p2,S1,N,temp)
      }
    }
  }
}
test

Заранее спасибо Сергей

0 ответов

Другие вопросы по тегам