使用CostrOptim限制自定义功能的最小化

时间:2019-03-03 12:02:05

标签: r optimization constraints minimization

我编写了一个函数A = function(W)(....),该函数计算12个资产的投资组合的风险价值作为W = [W1,.....,W12]的函数,它是权重的向量。 (它不是普通的VAR,它内部有很多循环,它会计算滚动度量,然后将其减小为单个值,这是我想最小化的东西)

我试图做的是使用诸如以下的约束来最小化此功能:

    W和ERV的
  • 矢量乘积= 0.002,其中ERV = [r1,....,r12],因此 我想确定投资组合的预期收益
  • 对于i = 1,...,12,wi的和等于1
  • Wi> = 0 for i = 1,....,12

我所做的是:

constrOptim(theta = WW, A, grad = jacobian(A, W, method = "Richardson", side = NULL), ui=U, ci = C, method = c("Nelder_Mead", "BFGS", "CG", "L-BFGS", "SANN", "Brent"), hessian = FALSE)

其中:

U = matrix(c(ERV,-ERV, rep(-1,12), rep(1,12), diag(x=1,12,12)),ncol=12, byrow =TRUE)

C = matrix(c(0.0019,-0.0021, -1.01, 0.99, rep(0,12)))

问题是它花费了很长时间,而且我不知道是否有更快的方法以及我做对的方法。 最重要的是,我得到了: “警告消息:在if(method ==“ SANN”)中[:条件的长度大于1,并且仅使用第一个元素

0 个答案:

没有答案