从相关矩阵中提取成对相关

时间:2013-03-17 11:22:57

标签: r correlation matrix

我有一个相关矩阵(比如3x3),我想提取成对相关并将它们放入一个向量中。也就是说,我想从相关矩阵转到:

corVec = c(rho_12, rho_13, rho_23)

我希望能够为任何维度的相关矩阵做到这一点。

我这样做的原因是因为我想使用具有随机相关矩阵的copula包构建多变量(椭圆)copula。

谢谢!

2 个答案:

答案 0 :(得分:3)

如果相关矩阵是rho,则可以使用以下方式提取成对相关:

rho[upper.tri(rho)]

答案 1 :(得分:0)

假设您有一个包含 3 列的 data.frame df1
rho=cor(df1) 将制作一个 3x3 矩阵。
制作成对相关“列表”(data.frame):

require(reshape2)
rho[!upper.tri(rho)]=NA
rho=na.omit(melt(rho,value.name = 'cor')) 
rho=rho[order(-rho$cor),]