#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.