0

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=indexes) ) と機能します。

これを解決するにはどうすればよいですか?

4

1 に答える 1

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 マトリックスが null であるためのエラー。portfolio_method引数をデフォルトからsingleに変更する必要がありますcomponentComponent 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 
于 2013-01-27T14:20:28.873 に答える