【发布时间】:2016-11-22 16:51:57
【问题描述】:
我正在尝试解决投资组合优化问题,基本上我们有一些产品,%portfolio 和回报率。基本上我必须将整体回报率优化为最大。这个问题变得棘手,因为有一个特定于产品的最小约束
数据:
product share_per return_per min_share_per
prod1 0.5 0.1 0.2
prod2 0.2 0.4 0.1
prod3 0.2 0.05 0.0
prod4 0.1 0.04 0.0
prod5 0.0 0.3 0.0
基本上我们正在对列 share_per 进行优化,以使 product *(share_per * return_per)* 最大 我对此的绝望尝试是
mat <- matrix(c(0.5, 0.2, 0.2, 0.1, 0.0))
colnames(mat) <- c("return_per")
minmax <- function(x, a) (sum(a*x))
opt <- apply(mat, 1, function(i) {
optimize(minmax, c(0, 1), a = i[["return_per"]], maximum=T)$maximum
})
mat2 <- cbind(mat, opt)
mat2
如您所见,我无法弄清楚在哪里指定特定于行的约束
我知道 constrOptim 是我应该寻找的东西,但我不知道约束部分。
【问题讨论】:
标签: r optimization