Me tropecé con el término Factorización de matrices no negativas en presentaciones como Aplicación del aprendizaje automático a las finanzas y esto Big Data en la gestión de activos .
La idea básica es descomponer una matriz positiva (!) $A$ en $$ A = BC. $$
Entonces se puede interpretar $B$ como cargas factoriales y $C$ como factores. Asumo que $A$ no es una matriz de correlaciones (que no es necesariamente positiva) ni una matriz de rendimientos por la misma razón. Los autores de la primera presentación utilizan como entrada el logaritmo de los precios de las acciones desplazado hacia la derecha. Yo mismo lo he intentado y no he encontrado ninguna descomposición útil.
He utilizado los precios de las acciones y también he desplazado los rendimientos (sólo añadiendo $1$ ) para que toda la matriz sea positiva. Luego apliqué la función R nnmf
del paquete NMFN que utiliza el algoritmo de actualización multiplicativa. Obtengo algunos "factores" pero la interpretación no es ni mucho menos clara. En la presentación dicen que uno puede (probablemente) reconocer un factor de mercado bajista y otro alcista.
¿Intentaste alguna vez esa descomposición? ¿Qué datos utilizas? ¿Qué algoritmo y qué factores analizas? Gracias.
PD: Conozco el PCA pero quería probar una alternativa.
EDIT: Para NMF estoy echando un vistazo a este como primera salida.
EDIT: Aparentemente hay otra corriente de investigación de la restricción de cardinalidad y exposiciones no negativas en PCA. Christian Sigg proporciona un paquete R y un código Matlab para hacer esto aquí .