1 votos

Paquete R PortfolioAnalytics - Error con la función "create.EfficientFrontier"

Edición

La función create.EfficientFrontier de la PortfolioAnalytics está emitiendo un mensaje de error que dice:

Error in `colnames<-`(`*tmp*`, value = c("mean", "StdDev", "out", "w.Asset1",  : 
  attempt to set 'colnames' on an object with less than two dimensions

Solución de problemas realizada hasta ahora sin éxito

  1. Se han buscado casos idénticos - se han encontrado algunos casos con el mismo mensaje de error pero con salida de funciones diferentes
  2. Se comprueba si la matriz de covarianza no es positiva definida
  3. Había actualizado recientemente el paquete de zoo, así que reinstalé la versión anterior
  4. Además de mi propio código, intenté ejecutar los códigos de ejemplo que encontré en dos blogs diferentes, sin embargo, obtuve exactamente el mismo error una vez que intenté ejecutar la función "create.EfficientFrontier".

Puedes consultar en el siguiente enlace el código y el conjunto de datos específicos para intentar reproducir mi error:

Demostración de frontera eficiente de Ross Bennett (desarrollador de PortfolioAnalytics)

Tres conjuntos de datos diferentes y el mismo error, así que supongo que podría tener algún problema de configuración básica en mi RStudio.

¿Alguna idea sobre cuál podría ser el culpable?

Gracias de antemano.

0 votos

No puede ayudar sin ver un ejemplo (reproducible)

0 votos

@rbm Acabo de aclarar el cuerpo de la pregunta para que quede claro sobre el código

1voto

SPi Puntos 150

Me encontré con el mismo problema. No sé cuál es la causa, pero me he dado cuenta de que se produce este error si se utiliza la infraestructura de ROI más reciente (publicada en junio de 2016), mientras que la función funciona correctamente si se utiliza la infraestructura de ROI antigua (2013) (y los complementos antiguos) que aún están disponibles en CRAN (ver archivos).

1voto

synapse Puntos 157

Compruebe si los datos están duplicados. Parece que la función tiene un problema si hay duplicados en tus datos. La mejor manera de encontrar duplicados es ordenar primero por orden alfabético.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X