如何在Python中获得变量和主成分之间的相关性
我使用PCA来减少变量。我想要得到每个变量与最终PC的相关性。我想要的是每个变量与每个PC的调整Rsquare。这将确定哪些变量与特定PC最密切相关,哪些变量与其他PC高度不相关 Sklean给出特征值,特征向量,解释方差比。有什么性质可以让我们得到变量与PC的相关性吗如何在Python中获得变量和主成分之间的相关性,python,pca,Python,Pca,我使用PCA来减少变量。我想要得到每个变量与最终PC的相关性。我想要的是每个变量与每个PC的调整Rsquare。这将确定哪些变量与特定PC最密切相关,哪些变量与其他PC高度不相关 Sklean给出特征值,特征向量,解释方差比。有什么性质可以让我们得到变量与PC的相关性吗 genes = ['gene' + str(i) for i in range (1,101)] wt = ['wt' + str(i) for i in range (1,6)] ko = ['ko' + str(i) fo
genes = ['gene' + str(i) for i in range (1,101)]
wt = ['wt' + str(i) for i in range (1,6)]
ko = ['ko' + str(i) for i in range (1,6)]
data = pd.DataFrame(columns = [*wt,*ko], index = genes)
for gene in data.index:
data.loc[gene,'wt1':'wt5'] = np.random.poisson(lam = rd.randrange(10,1000), size =5)
data.loc[gene,'ko1':'ko5'] = np.random.poisson(lam = rd.randrange(10,1000), size =5)
x = StandardScaler().fit_transform(data)
pca = PCA(0.95)
principalComponents = pca.fit_transform(x)
corr = pca.components_
features = pca.explained_variance_ratio_
matrix = pca.components_.T * np.sqrt(pca.explained_variance_)
首先,您可以直接计算:
pd.DataFrame(data=[[np.corrcoef(data[c],principalComponents[:,n])[1,0]
for n in range(pca.n_components_)] for c in data],
columns=[0,1],
index = data.columns)
使用Python statsmodel和SAS Varclus过程的PCA有很大的不同。我在Python和SAS Python中使用了以下代码:从statsmodels.multivariable.pca导入pca pc=pca(x,standarized=True,method='svd',ncomp=2)factors=pc.factors系数=pc.coeff特征值=pc.eigenvals加载=pc.loadings SAS:proc varclus数据=原始数据maxegen=1;变量wt1-wt5 ko1-ko5;跑在这样的注释中阅读代码是非常困难的。请将其重新编辑到您的问题中。