我正在运行this demo,对以下代码有疑问:
'library(PortfolioAnalytics)
data(edhec)
R <- edhec[, 1:8]
funds <- colnames(R)
init.portf <- portfolio.spec(assets=funds)
init.portf <- add.constraint(portfolio=init.portf, type="full_investment")
init.portf <- add.constraint(portfolio=init.portf, type="long_only")
init.portf <- add.objective(portfolio=init.portf, type="return", name="mean")
init.portf <- add.objective(portfolio=init.portf, type="risk", name="StdDev")
init.portf
maxSR.lo.ROI <- optimize.portfolio(R=R, portfolio=init.portf,
optimize_method="ROI",
maxSR=TRUE, trace=TRUE)
maxSR.lo.ROI'
在运行演示时,我发现它仅在像R <- edhec[, 1:8]
这样的数据被切割时才起作用。如果我想使用R <- edhec[, 1:13]
,则最佳权重为NA,并且收到以下警告:
在optimize(f = sharpe_obj_fun,R = R,约束=约束,...:
NA / Inf替换为最大正值
此问题的原因是什么?