Корреляционная матрица к набору векторов - PullRequest
1 голос
/ 06 мая 2011

Я пытаюсь вычислить матрицу корреляции набора векторов гистограммы.Но в результате получается усеченная версия того, что я (думаю) хочу.У меня есть 200 гистограмм по 32 ячейки каждая.Результат из

correlation_matrix = corrcoef(set_of_histograms) 

- это матрица 32 на 32.

Я хочу использовать это для вычисления соответствия моих исходных гистограмм.(это позже, используя eigs и другие материалы).

Но какой метод корреляции подходит для этого?Я пробовал "corrcoef", но есть также "corr" и "cov".Не могу понять их различия, читая справку по Matlab ...

Ответы [ 2 ]

2 голосов
/ 06 мая 2011
correlation_matrix = corrcoef(set_of_histograms')

(обратите внимание на ')

1 голос
/ 09 мая 2011

1) corrcoef рассматривает каждый столбец как наблюдение и вычисляет корреляции между каждой парой. Я предполагаю, что ваша матрица гистограмм 200x32; следовательно, в вашем случае каждая строка является наблюдением. Если вы передвигаете матрицу гистограмм перед запуском corrcoef, вы получите результат 200x200, который вы ищете:

[rho, p] = corrcoef (set_of_histograms ');

('транспонирует матрицу)

2) cov возвращает ковариационную матрицу, а не корреляцию; в то время как ковариационная матрица используется для вычисления корреляции, это не та мера, которую вы ищете.

3) Что касается corr и corrcoef, у них есть несколько различий в реализации между ними. Пока вас интересует только корреляция Пирсона, они идентичны для ваших целей. У corr также есть возможность рассчитать корреляции Спирмена или Кендалла, которых у corrcoef нет.

...