У меня есть временной ряд исторических данных (процентные ставки), где мне удалось извлечь собственные значения и собственные векторы.
Я пытаюсь сгенерировать / сделать вывод о некоторой взаимосвязи между процентными ставками идругой финансовый ряд данных. Учитывая, что у меня есть собственные векторы, как я могу извлечь веса определенного дня (или точки) этого перемещения?
Например, мой код ниже извлекает первые 3 вектора pca из набора данных, называемого data_.
eigVal, eigVec = np.linalg.eig((data_.diff(-1)*100).cov())
if np.sign(eigVec[:,0][5]) == -1: #swtich such that eigVec are positiv for PCA1
eigVec = -1 * eigVec
plt.plot(eigVec[:,0])
plt.plot(eigVec[:,1])
plt.plot(eigVec[:,2])
plt.legend(['PCA1', 'PCA2', 'PCA3'])
Как я могу сделать вывод для приведенного ниже примера массива, какие веса назначить PCA1, PCA2 и PCA3 для репликации перемещения массива?
этот массив - то, что я пытаюсь получить.
array([ 0. , 0. , -0.3 , 1.9 , 1.7 , 1.3 , 1.4 , 1.3 , 1.3 ,
1.36, 1.3 ])
это собственный вектор 2
array([-0.16562563, -0.26507723, -0.34871106, -0.47812195, -0.44021972,
-0.25093085, -0.16544612, 0.00289244, 0.17209837, 0.28198136,
0.3985353 ])
это собственный вектор 1
array([0.01448251, 0.03349128, 0.0559946 , 0.1639687 , 0.24343858,
0.32155586, 0.36727468, 0.38627769, 0.41226496, 0.41694435,
0.42199623])