模拟受多重约束的投资组合权重
Simulating portfolio weights subject to multiple constraints
我想使用 R 模拟一些包含不同资产组合的可行投资组合。我想概括这些约束,并能够在必要时添加更多资产 类。
例如,假设有 4 个资产 类,每个资产都受以下约束:
- 0 <= x1 < 0.5
- 0 <= x2 < 0.3
- 0 <= x3 < 0.5
- 0 <= x4 < 1
- x1 + x2 + x3 + x4 = 1
如何模拟 10 000 个满足所有这些条件的随机投资组合(或本例中的矩阵),而不是先模拟所有组合,然后丢弃不满足条件的组合?我也不想扩展不满足最后一个条件的投资组合。任何帮助将不胜感激!
我不是 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个变量的分布不再均匀。如果你想要某个分布,你应该指定你的问题。
我想使用 R 模拟一些包含不同资产组合的可行投资组合。我想概括这些约束,并能够在必要时添加更多资产 类。
例如,假设有 4 个资产 类,每个资产都受以下约束:
- 0 <= x1 < 0.5
- 0 <= x2 < 0.3
- 0 <= x3 < 0.5
- 0 <= x4 < 1
- x1 + x2 + x3 + x4 = 1
如何模拟 10 000 个满足所有这些条件的随机投资组合(或本例中的矩阵),而不是先模拟所有组合,然后丢弃不满足条件的组合?我也不想扩展不满足最后一个条件的投资组合。任何帮助将不胜感激!
我不是 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个变量的分布不再均匀。如果你想要某个分布,你应该指定你的问题。