корреляция с 3D матрицами из MatLab с использованием программного обеспечения R - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть две 3D (12x12x10) матрицы, полученные из анализа функциональных связей в программном обеспечении CONN и в формате .mat.Каждая трехмерная матрица состоит из 10 отдельных матриц из 12 областей интереса.Один рассматривает условие отдыха, а другой - условие задачи.Я хочу сравнить различия в FC, выполняющих корреляцию между двумя 3D матрицами в R, но я не понимаю, как заставить R понять, что у меня есть 3D матрица!Он смешивается в нечетной 2D-матрице.Используя следующий код:

# Load connectivity matrix
mat<-read.table("R/Matriz/neural", header = FALSE)
View(mat)
r<-corr.test(mat,mat)

И, пытаясь вычислить матрицу корреляции только с 1 значением, я получил совершенно другую матрицу:

Call:corr.test(x = mat, y = mat)
Correlation matrix 
       V1    V2    V3    V4    V5    V6    V7    V8    V9   V10   V11   V12
V1   1.00  0.84  0.43 -0.14  0.02 -0.30 -0.20 -0.08 -0.04 -0.20 -0.46 -0.51
V2   0.84  1.00  0.55 -0.03  0.02 -0.23 -0.12 -0.02 -0.04 -0.13 -0.49 -0.50
V3   0.43  0.55  1.00  0.15  0.20 -0.03  0.14  0.35  0.09 -0.08 -0.31 -0.23
V4  -0.14 -0.03  0.15  1.00  0.54  0.45  0.57  0.51  0.23 -0.09  0.20  0.19
V5   0.02  0.02  0.20  0.54  1.00 -0.18  0.04  0.16  0.80  0.12  0.37  0.39
V6  -0.30 -0.23 -0.03  0.45 -0.18  1.00  0.68  0.51 -0.44 -0.31 -0.20 -0.25
V7  -0.20 -0.12  0.14  0.57  0.04  0.68  1.00  0.69 -0.20 -0.11  0.01  0.02
V8  -0.08 -0.02  0.35  0.51  0.16  0.51  0.69  1.00 -0.04 -0.11 -0.13  0.02
V9  -0.04 -0.04  0.09  0.23  0.80 -0.44 -0.20 -0.04  1.00  0.40  0.55  0.60
V10 -0.20 -0.13 -0.08 -0.09  0.12 -0.31 -0.11 -0.11  0.40  1.00  0.45  0.51
V11 -0.46 -0.49 -0.31  0.20  0.37 -0.20  0.01 -0.13  0.55  0.45  1.00  0.87
V12 -0.51 -0.50 -0.23  0.19  0.39 -0.25  0.02  0.02  0.60  0.51  0.87  1.00

1 Ответ

0 голосов
/ 25 апреля 2018

Я предполагаю, что вы хотите корреляцию между двумя разными матрицами (в отличие от вашего кода), и рассматриваете все значения как независимые данные.То, как вы описываете свои данные, может указывать на то, что, возможно, корреляция между этими двумя значениями не является лучшим способом сравнения, но если вы хотите сравнить, одним из способов является развертывание ваших матриц, поскольку тот факт, что они являются трехмерными, не имеет отношения к вычислениюкорреляция между ними.Если вы сделаете их трехмерными, тогда R принимает переменные и структуру.

try

r<-corr.test(as.vector(mat),as.vector(mat2))
...