我在使用ES calculation produces unreliable result (inverse risk) for column: 1
时收到此错误:DEoptim
消息。也许我忽视了一些事情,所以我需要一些帮助来解决这个问题。我在网上搜索过,但似乎无法找到答案。
我有一个名为xts
的{{1}}对象包含127行和4列,其中包含日志返回:
RETS
我已经使用其他一系列日志返回运行此代码并且它可以工作,但我有时会针对一个系列运行它并得到错误,例如这个。
答案 0 :(得分:4)
这是因为第1列中的一个回报是> 100%,这会导致CVaR
返回NA
(因为您没有尾部风险......或者您的尾巴“风险”是正回报)。删除该观察结果并运行优化。
R> rets <- RETS[RETS[,1]<1]
R> ctrl <- list(itermax=5, F=0.2, CR=0.8)
R> set.seed(21)
R> res <- DEoptim(optRR.gt3, lower=rep(0,ncol(rets)), upper=rep(1,ncol(rets)), control=ctrl, ret=rets)
Iteration: 1 bestvalit: -3.931392 bestmemit: 0.499045 0.233446 0.099941 0.056293
Iteration: 2 bestvalit: -3.931392 bestmemit: 0.499045 0.233446 0.099941 0.056293
Iteration: 3 bestvalit: -3.931392 bestmemit: 0.499045 0.233446 0.099941 0.056293
Iteration: 4 bestvalit: -3.931392 bestmemit: 0.499045 0.233446 0.099941 0.056293
Iteration: 5 bestvalit: -4.079845 bestmemit: 0.481677 0.208534 0.141505 0.061751