Ошибка PerformanceAnalytics t(w) %*% M3: требуются числовые/сложные матричные/векторные аргументы

В версии R 2.15.2 при использовании функции ES в PerformanceAnalytics:

ES(R=indexes, weights=w)

Я получаю следующую ошибку:

Error in t(w) %*% M3 : requires numeric/complex matrix/vector arguments

где ш

      [,1]
[1,]  0.5
[2,]  0.5

оба is.matrix(w) и is.numeric(w) возвращают TRUE

Вызов функции без передачи весов (т.е. ES(R=indexes) ) работает.

Как решить эту проблему?


person Shyam Sunder    schedule 27.01.2013    source источник
comment
В документе сказано, что weights — это вектор, поэтому попробуйте weights = c(w). Если это все еще не работает, укажите str(indexes) и str(w). Или сделайте вашу ошибку воспроизводимой, предоставив нам данные.   -  person flodel    schedule 27.01.2013


Ответы (1)


Используя эти данные 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 
person agstudy    schedule 27.01.2013