如何提取与特定实现的“移动”矢量有关的特征向量的权重

问题描述 投票:0回答:1

我有一个时间序列的历史数据(利率),在这里我设法提取了eigenValues和eigenVectors。

我正在尝试在利率与另一个金融数据系列之间生成/推断某种关系。给定我有eigenVectors,我该如何提取该移动的特定日期(或某个点)的权重?

例如,下面的代码从名为data_的数据集中提取前三个pca向量。

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 ])

这是eigenVector 2

array([-0.16562563, -0.26507723, -0.34871106, -0.47812195, -0.44021972,
       -0.25093085, -0.16544612,  0.00289244,  0.17209837,  0.28198136,
        0.3985353 ])

这是eigenVector 1

array([0.01448251, 0.03349128, 0.0559946 , 0.1639687 , 0.24343858,
       0.32155586, 0.36727468, 0.38627769, 0.41226496, 0.41694435,
       0.42199623])
python-3.x eigenvector
1个回答
0
投票

使用下面的代码,其中y_ =您要命中的数组eigVec [:,0] =是您使用linalg.eig()从中提取的第一个PCA向量。...

© www.soinside.com 2019 - 2024. All rights reserved.