Tengo una matriz de rendimientos de activos de forma (n, t) con n activos y t días, n > t. Realizo la descomposición SVD de la matriz en c factores, obteniendo una matriz de rendimientos de factores de forma (c, t).
Este proceso se repite con una ventana deslizante de, digamos, 63 días, desplazándose un día a la vez. Ahora la pregunta es, ¿son los factores de la ventana anterior los mismos que los de la actual?
Para probar esto, calculo la distancia coseno entre partes superpuestas (62 días) de los vectores de rendimiento de factores subsecuentes. Si los factores son los mismos, sus rendimientos serán iguales. Aquí está el gráfico de esas distancias para el primer factor.
En la mayoría de los casos, la distancia es cero o cercana a cero, lo cual es lo que queremos.
A veces la distancia es dos, lo cual significa que los vectores son opuestos. Hasta donde sé, esto proviene de un cambio de signo de SVD y es una molestia menor.
El problema está en las distancias cercanas a uno, con vectores casi ortogonales. Esto significa que el factor cambió entre ventanas. Ahora es un factor completamente diferente.
La pregunta es cómo asegurar que los factores se mantengan iguales o cercanos de una ventana a la siguiente. ¿Existe una forma popular, sólida y simple de lidiar con el problema?