Корреляционная матрица к набору векторов

#matlab #histogram #correlation

#matlab #гистограмма #корреляция

Вопрос:

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

 correlation_matrix = corrcoef(set_of_histograms) 
  

представляет собой матрицу 32 на 32.

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

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

Ответ №1:

 correlation_matrix = corrcoef(set_of_histograms')
  

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

Ответ №2:

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

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

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

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

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