2017-02-16 6 views
0

MINERVAパッケージは、最大情報係数(MIC)を実行する関数を提供します。パッケージの記述では、関数mine(x、y)は、同じサイズの2つの行列AとBでのみ動作すると規定されています。2つの行列間のMIC相関R

ここで、異なるサイズの2つのAとBの行列の相関から得られるMIC係数値を得たいと思います.Aはn×m、Bはn×zで、nは観測数です(行)。すなわち は、私の目的は、MIC相関係数値(及び、可能な場合、関連するP値を与え、各値に対して、戻りメートル X ZのC行列を得ることですある場合)。

私はピアソンの相関関係で私が望むものの例を提供します。

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

私はZ相関により所望メートルを得るために、鉱山関数を適用することができる任意の方法があるが、成功せずにMINERVAパッケージの作成者を郵送?

答えて

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 
}} 
関連する問題