У меня есть функция в 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
, и этот интеграл заставляет мой цикл выполняться много времени. Проблема становится еще хуже, потому что я хочу использовать этот результат в задаче максимизации, которая займет несколько дней.
Это часть проблемы, которую я хочу решить:
Где вы думаете, я что-то не так делаю? Как я могу улучшить это?