R中2个矩阵之间的MIC相关性

时间:2017-02-16 01:48:05

标签: r matrix correlation pearson-correlation

MINERVA包提供执行最大信息系数(MIC)的功能。包的描述规定函数mine(x,y)仅适用于相同大小的2个矩阵A和B.

这里,我想获得从不同大小的两个A和B矩阵的相关性获得的MIC系数值,A是n乘m,B是n乘z,n是观测数(行)。 换句话说,我的目标是获得一个 m x z 的C矩阵,它返回值,给出MIC相关系数值(如果可能的话,给出相关的P值,如果有的话)。

我提供了一个我想要的Pearson相关性的例子。

set.seed(1)
x <- matrix(rnorm(20), nrow=5, ncol=10)
y <- matrix(rnorm(15), nrow=5, ncol=20)
P <- cor(x, y=y)

我邮寄了MINERVA包的一位作者没有成功,有没有办法可以通过 z 关联来应用我的函数来获取所需的 m

1 个答案:

答案 0 :(得分:0)

让我回答一下自己的帖子。在下面的代码中,我使用循环函数,这可能不是最聪明/最快的方法,但它按预期工作。

library(minerva)
set.seed(1)
x <- matrix(rnorm(20), nrow=5, ncol=10)
y <- matrix(rnorm(15), nrow=5, ncol=20)

Result = matrix(ncol = ncol(y),nrow = ncol(x))
for(i in 1:ncol(x))
{Thisvar = x[,i]
  print(i)
for(k in 1:ncol(y)) 
  {Thisvar2 = y[,k]
  res = mine(Thisvar,Thisvar2, master=TRUE, use="all.obs")
  Result[i,k] = res$MIC
}}