特定のリスクレベルに従ってポートフォリオを最適化しようとしています。を使用するのは簡単に思えますfPortfolio
が、得られる結果は意味がありません。私はこれを理解するのに何時間も費やしましたが、運がありませんでした。
基本ケース (つまり、制約ではない)
defaultSpec <- portfolioSpec()
lppAssets <- 100*LPP2005.RET[, c("SBI", "SPI", "LMI", "MPI")]
lppData <- portfolioData(data = lppAssets, spec = defaultSpec)
port <- efficientPortfolio(lppData, defaultSpec, constraints = "LongOnly")
port@portfolio
# $weights
# SBI SPI LMI MPI
# 0.396009510 0.002142136 0.547715368 0.054132986
# $covRiskBudgets
# SBI SPI LMI MPI
# 0.396009510 0.002142136 0.547715368 0.054132986
# $targetReturn
# mean mu
# 0.006422759 0.006422759
# $targetRisk
# Cov Sigma CVaR VaR
# 0.1038206 0.1038206 0.2186926 0.1684104
# $targetAlpha
# [1] 0.05
# $status
# [1] 0
# Slot "messages":
# list()
リスク レベルを 0.09 に設定しようとすると、同じ答えが得られます。
defaultSpec <- portfolioSpec()
setTargetRisk(defaultSpec) <- 0.09 # **this doesn't seem to work**
lppAssets <- 100*LPP2005.RET[, c("SBI", "SPI", "LMI", "MPI")]
lppData <- portfolioData(data = lppAssets, spec = defaultSpec)
port <- efficientPortfolio(lppData, defaultSpec, constraints = "LongOnly")
port@portfolio
# An object of class "fPFOLIOVAL"
# Slot "portfolio":
# $weights
# SBI SPI LMI MPI
# 0.396009510 0.002142136 0.547715368 0.054132986
# $covRiskBudgets
# SBI SPI LMI MPI
# 0.396009510 0.002142136 0.547715368 0.054132986
# $targetReturn
# mean mu
# 0.006422759 0.006422759
# $targetRisk
# Cov Sigma CVaR VaR
# 0.1038206 0.1038206 0.2186926 0.1684104
# $targetAlpha
# [1] 0.05
# $status
# [1] 0
# Slot "messages":
# list()
「仕様」には、新しいレベルのリスクがターゲットにされていると書かれていますが、結果は変わりません。リスクを 0.09 に設定するか、0.12 に設定するか、またはその他の値に設定するかは問題ではありません。
defaultSpec
# Model List:
# Type: MV
# Optimize: maxReturn
# Estimator: covEstimator
# Params: alpha = 0.05 a = 1
# Portfolio List:
# Portfolio Weights: NA
# Target Return: NA
# Target Risk: 0.09
# Risk-Free Rate: 0
# Number of Frontier Points: 50
# Status: NA
# Optim List:
# Solver: solveRquadprog
# Objective: portfolioObjective portfolioReturn portfolioRisk
# Options: meq = 2
# Trace: FALSE
私は何を間違っていますか?fPortfolio
Rを使用してリスクのレベルを設定するにはどうすればよいですか?