Как более эффективно вычислить интеграл в R? - PullRequest
0 голосов
/ 02 мая 2018

У меня есть функция в R, которая запускается почти за 1 секунду. Поэтому я думаю, что это не что-то тяжелое. Это выглядит так:

DataList <- cons1mpdf(tradedays[i])
  tempQ <- DataList[[1]]
  Qpdf <- function(X) pmax(tempQ(X),0)
  norINTEG <- function(X)  Qpdf(X) / X^(-RRA)

Затем я хочу взять интеграл из этой функции и использовать результат в задаче смешивания, подобной этой:

a <-  integral( norINTEG ,  DataList[[2]] ,  DataList[[3]] )

  realPDF <- function(X)  norINTEG(X) / a

  zBerkowitz[i] <-  qnorm(  pmax( 0,  integral(realPDF ,  DataList[[2]] ,   head(nextmonth.close[date == tradedays[i]] , 1)    ) ) )

Но вычисление a занимает почти 1 минуту для RRA больше 3. Весь этот код находится в цикле for, и этот интеграл заставляет мой цикл выполняться много времени. Проблема становится еще хуже, потому что я хочу использовать этот результат в задаче максимизации, которая займет несколько дней. Это часть проблемы, которую я хочу решить:

enter image description here

enter image description here

Где вы думаете, я что-то не так делаю? Как я могу улучшить это?

...