Я пытаюсь работать над проблемой оптимизации портфеля, в основном у нас есть некоторый продукт, портфель% и коэффициент возврата. В основном я должен оптимизировать общий коэффициент возврата, чтобы быть максимальным. Проблема становится сложнее, потому что есть минимальное ограничение специфичны для продуктаОптимизация с ограничениями в R
данных:
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 так, чтобы сделать продукт * (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
Как вы можете видеть, что я не могу ни понять, куда Spe cify ограничение, относящееся к строке
Я знаю, что constrOptim - это то, что я должен искать, но я не могу определить часть ограничения.
Ого! красиво сделано !! Я не могу поблагодарить вас достаточно! –