在R版本2.15.2上,在PerformanceAnalytics中使用ES功能时:
ES(R=indexes, weights=w)
我收到以下错误:
Error in t(w) %*% M3 : requires numeric/complex matrix/vector arguments
其中w是
[,1]
[1,] 0.5
[2,] 0.5
is.matrix(w)和is.numeric(w)都返回TRUE
调用函数而不传递权重(即ES(R =索引))有效。
如何解决此问题?
答案 0 :(得分:3)
使用这个edhec数据(用包给出)和权重向量我可以重现错误(请在下次给出一个可重现的例子,否则我们不能确定对以下答案有意义)
weights <- c(0.2, 0.2, 0.1, 0.1, 0.5) ## must be to number of columns in R"
ES(R = edhec[,1:5], weights= weights)
Error in t(w) %*% M3 : requires numeric/complex matrix/vector arguments
错误,因为M3矩阵为空。您需要将参数portfolio_method
从默认single
更改为component
。帮助讨论 Component ES 部分中的权重,所以这是有道理的。否则,我认为你需要完全m3,m4,mu ...(痛苦)
试试这个
ES(R = edhec[,1:5], weights= weights,
portfolio_method= 'component')
$MES
[,1]
[1,] 0.0331994
$contribution
Convertible Arbitrage CTA Global Distressed Securities Emerging Markets Equity Market Neutral
0.015504952 -0.006116166 0.004702236 0.007760899 0.011347477
$pct_contrib_MES
Convertible Arbitrage CTA Global Distressed Securities Emerging Markets Equity Market Neutral
0.4670251 -0.1842252 0.1416362 0.2337662 0.3417977