Как получить корреляцию Пирсона с матрицей в Matlab - PullRequest
1 голос
/ 28 марта 2012

У меня есть несколько векторов, например, давайте назовем их a, b и c.Все они имеют одинаковый размер.Я хочу получить корреляцию между a и c, b и c.

Я пробовал это:

[rho1, pval1] = corr (a, c, 'rows', 'complete')
[rho2, pval2] = corr (b, c, 'rows,' complete ')


rho1 = 0.1054
pval1 = 0.2918
rho2 = 0,1174
pval2 = 0,2473


И я думал, что результаты были в порядке, но позже я попытался это сделать:
[rho, pval] = corr ([ab], c, 'rows', 'complete')

И дали мне разные результаты:


rho =
0,1168
0,1150

pval =
0,2649
0,2726


Справка Matlab говорит, что эти функции возвращают матрицу p1 за p2, содержащую коэффициент попарной корреляции междукаждая пара столбцов в матрицах n-by-p1 и n-by-p2 X и Y.

Что я делаю не так?Спасибо.

Примечание: векторы имеют размер 289х1, поэтому я не могу их здесь написать.

1 Ответ

1 голос
/ 26 апреля 2012

решено. Проблема в том, что у этих векторов есть NaN, поэтому опция 'complete' берет только те строки, в которых нет NaN. Если вектор (например, b) имеет NaN, это повлияет на результаты обеих корреляций (aи б).Вариант, который мне нужен, это «попарно».Спасибо

...