MINERVA 패키지는 MIC (Maximal Information Coefficient)를 수행하는 기능을 제공합니다. 패키지에 대한 설명은 mine (x, y) 함수가 동일한 크기의 2 개의 행렬 A와 B에서만 작동한다고 규정합니다.
여기서는 크기가 다른 두 A 및 B 행렬의 상관 관계에서 얻은 MIC 계수 값을 얻고 싶습니다 .A는 m x m이고 B는 n x z이며 n은 관측치 (행) 수입니다. 즉, 내 목표는 각 값에 대해 MIC 상관 계수 값 (및 가능한 경우 연관된 P 값)을 반환하는 m x z 의 C 행렬을 얻는 것입니다 .
나는 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 패키지 작성자 한 명에게 성공하지 못했습니다. 원하는 m by z 상관 관계 를 얻기 위해 mine 함수를 적용 할 수있는 방법이 있습니까?
내 게시물에 답변하겠습니다. 아래 코드에서는 루프 함수를 사용하는데, 이는 가장 똑똑하고 빠른 방법은 아니지만 예상대로 작동합니다.
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
}}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다