Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中获得变量和主成分之间的相关性_Python_Pca - Fatal编程技术网

如何在Python中获得变量和主成分之间的相关性

如何在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

我使用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) 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;跑在这样的注释中阅读代码是非常困难的。请将其重新编辑到您的问题中。