constrOptim出错,初始值不在可行区域的内部

时间:2017-02-19 14:54:51

标签: r

我正在使用constrOptim来解决投资组合问题(即最大化二次函数)。我正在报告我正在使用的代码,其中矩阵'数据'包含5个资产的回报的时间序列,每个资产有107个观测值。我已经使用相同的代码来优化4个资产的组合,并且它运行良好,但是一旦我在数据矩阵中添加第5个资产,我就得到了错误:

Error in constrOptim(guess, EQuad, NULL, ui = C, ci = D) : 
  initial value is not in the interior of the feasible region

代码:

A<- rbind(c(1,1,1,1,1), c(-1,-1,-1,-1,-1))
B<- c(0.9999,-0.9999)
C<- rbind(A, c(1,0,0,0,0), c(0,1,0,0,0), c(0,0,1,0,0), c(0,0,0,1,0), c(0,0,0,0,1))
D<- c(0.9999,-0.9999,0,0,0,0,0)

guess<- c(0.20,0.20,0.20,0.20,0.19)

Q<- rbind(c(0,0,0,0,0,0),c(0,0,0,0,0,0))
P<- rbind(c(0,0,0,0,0,0),c(0,0,0,0,0,0))

j<- 61


repeat{

  X<- data.matrix(Data)
  X<- X[1:j,]



  optm<- constrOptim(guess, EQuad,NULL, ui = C, ci = D)

  P<- rbind(P, array(unlist(optm), dim = 6))

  j <- j+1

  if(j==108){

    break

  }
}

我的理解是错误是由猜测引起的。矢量级别但也改变了初始值我仍然得到错误。

我该如何解决?

0 个答案:

没有答案