Я пытаюсь использовать пакет Rsocp
в R
для решения задачи линейной оптимизации с квадратичными ограничениями. Как и в R - fPortfolio - Error в eqsumW[2, -1] : нижний индекс выходит за пределы
В частности, я пытаюсь максимизировать ожидаемую доходность с учетом целевого параметра риска и лимитов портфеля/позиции.
install.packages("Rsocp", repos="http://R-Forge.R-project.org")
install.packages("fPortfolio")
require(fPortfolio)
require(Rsocp)
я бегу
lppData=100*LPP2005.RET[,1:6]
maxRetSpec=portfolioSpec()
setTargetRisk(maxRetSpec)=0.07
groupConstraints <- c("minsumW[1:6]=-.75",
"maxsumW[1:6]=1.75")
boxConstraints <- c("minW[1:6]=-1",
"maxW[1:6]=1")
bgConstraints <- c(groupConstraints, boxConstraints)
setSolver(maxRetSpec)="solveRsocp"
efficientPortfolio(data=lppData, spec=maxRetSpec, constraints=bgConstraints)
и получаю следующую ошибку...
Error in eqsumW[2, -1] : subscript out of bounds
Насколько я понимаю, Rsocp — это решатель конусов второго порядка, разработанный специально для этой цели. Пройдя через несколько различных форумов по обмену стеками, кажется, что есть несколько человек, которые столкнулись с этой проблемой с неудовлетворительными решениями. Мне было интересно, добился ли кто-нибудь успеха с помощью решателя Rsocp, который мог бы помочь мне справиться с этой ошибкой? Или, в качестве альтернативы, может ли кто-нибудь указать мне на решатель «R», который может справиться с проблемой оптимизации этого типа?