根据多个约束模拟投资组合权重

时间:2016-05-16 13:39:33

标签: r constraints simulation

使用R,我想模拟一些包含不同资产组合的可行投资组合。我想概括约束,并能够在必要时添加更多资产类。

例如,假设有4个资产类别,每个资产类别都受到以下限制:

  • 0< = x1< 0.5
  • 0< = x2< 0.3
  • 0< = x3< 0.5
  • 0< = x4< 1
  • x1 + x2 + x3 + x4 = 1

如何模拟满足所有条件的10 000个随机投资组合(或本例中的矩阵),而不先模拟所有组合,然后丢弃那些不满足条件的组合?我也不想缩放那些不满足最后条件的投资组合。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

我不是100%肯定你想要的。如果您希望有效的资产分配具有上述限制,则可以使用:

n=10000
x1=runif(n, min = 0, max = 0.5)
x2=runif(n, min = 0, max = 0.3)
x3=runif(n, min = 0, max = 0.5)
index=(x1+x2+x3)>1
while(sum(index)>0){
  x1[index]=runif(sum(index), min = 0, max = 0.5)
  x2[index]=runif(sum(index), min = 0, max = 0.3)
  x3[index]=runif(sum(index), min = 0, max = 0.5)

  index=(x1+x2+x3)>1
}
x4=rep(1,n)-x1-x2-x3

然而,4个变量的分布不再一致。如果您想要某个分发,则应指定您的问题。