ES计算为列产生不可靠的结果(反向风险):1

时间:2014-06-28 12:08:13

标签: r mathematical-optimization differential-evolution

我在使用ES calculation produces unreliable result (inverse risk) for column: 1时收到此错误:DEoptim消息。也许我忽视了一些事情,所以我需要一些帮助来解决这个问题。我在网上搜索过,但似乎无法找到答案。

我有一个名为xts的{​​{1}}对象包含127行和4列,其中包含日志返回:

RETS

我已经使用其他一系列日志返回运行此代码并且它可以工作,但我有时会针对一个系列运行它并得到错误,例如这个。

1 个答案:

答案 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