Я пытаюсь использовать окупаемость инвестиций пакета R для простой задачи оптимизации портфеля.
Я могу получить результаты с помощью решателя quadprog «вручную», но мне бы очень хотелось понять, как работает пакет ROI.
К сожалению, я сталкиваюсь с ошибкой, хотя я придерживаюсь предоставленного примера Стефана Тойссла в http://statmath.wu.ac.at/courses/optimization/Presentations/ROI-2011.pdf (слайд 26,27)
Вот код:
library(fPortfolio)
library(ROI)
data(LPP2005.RET)
lppData <- 100 * LPP2005.RET[, 1:6]
r <- mean(lppData)
foo <- Q_objective(Q = cov(lppData), L = rep(0, ncol(lppData)))
full_invest <- L_constraint(rep(1, ncol(lppData)), "==", 1)
target_return <- L_constraint(apply(lppData, 2, mean), "==",r)
op <- OP(objective = foo, constraints = rbind(full_invest, target_return))
sol <- ROI_solve(op, solver = "quadprog")
Я получаю сообщение об ошибке:
Ошибка в (dir == "<=") |(dir = q = "<"): операции возможны только для числовых, логических или сложных типов </p>
Спасибо за помощь!