PerformanceAnalytics错误t(w)%*%M3:需要数字/复杂矩阵/向量参数

时间:2013-01-27 13:10:59

标签: r performanceanalytics

在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 =索引))有效。

如何解决此问题?

1 个答案:

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