我有一个包含11列的数据框,其中9列是数字。我试图找出8列与剩余列的相关性,即8个变量与1个变量的相关性,它应生成一个相关值,而不是在矩阵中生成9个不同的值。
有可能吗?或者我是否需要在计算个体相关性后计算平均相关性?例如,我试图找到X,Y,Z与A的相关性。使用上述方法我得到一个矩阵,它给出了X的关联的单独得分, Y,Z与A,其中我需要一个分数,考虑到所有三个X,Y& ž。
下面给出了模拟df用于说明目的
x y z a
1 1.72480753 0.007053053 0.32435032 10
2 0.97227885 -0.844118498 -0.75534119 20
3 -0.53844294 -0.036178789 0.89396765 30
4 1.34695331 0.870119744 0.99400826 40
5 0.02336335 0.514481676 0.95894286 50
6 -0.15239307 0.386061290 0.73541287 60
7 -0.29878116 1.615012645 -0.04416341 70
8 -1.10907706 -1.581093487 -0.93293702 80
9 2.73021114 -0.130141775 1.85304372 90
10 0.22417487 1.170900385 -0.68312974 100
我可以将每行和变量的相关性与a相关联,但我想要的是x,y,z与
的相关性corr.test(df[,1:3],df[,4])
对于这个问题,我将不胜感激。
此致
答案 0 :(得分:2)
Pearson Correlation定义为将值的一个序列(或向量)与另一个序列(或向量)相关联的数字(查找)。据我所知,对于一组向量到另一个向量没有大致相同的定义,但你可以做一些事情,比如取平均向量(3个向量)并将a与之关联起来。
对我而言,至少具有比3个相关值的平均值更直接的几何意义。
答案 1 :(得分:1)
如果您想计算每个变量与a
的相关性,您可以执行以下操作:
head(cor(df)[,"a"], -1)
# x y z
# -0.14301569 0.19188340 -0.06561505
你说你想通过平均来组合这些值,所以我想你可以采取那个意思:
mean(head(cor(df)[,"a"], -1))
# [1] -0.005582445