首页 > 解决方案 > 如何在 R 中更有效地计算积分?

问题描述

我在 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)    ) ) )

但是大于 3的计算a需要将近 1 分钟。所有这些代码都在循环中,这个积分导致我的循环运行很长时间。问题变得更糟,因为我想使用这个结果来解决需要几天才能运行的最大化问题。这是我要解决的问题的一部分:RRAfor

在此处输入图像描述

在此处输入图像描述

你觉得我哪里做错了?我该如何改进它?

标签: rfunctionloops

解决方案


推荐阅读