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 ?
答案 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
}}