Код: Выделить всё
[rho,pval] = corr(X,Y)
Что я пробовал:
Я пытался изменить решения, опубликованные здесь и в этой другой теме, но без особого успеха. Например, мне удалось сложить две матрицы X и Y и, сохранив часть корреляционной матрицы, получить правильный результат для корреляций. Однако тот же трюк НЕ работает для p-значений. На самом деле, оба решения в других потоках дали мне (более или менее) правильные значения коэффициентов корреляции, и это здорово, но я не могу воспроизвести поведение реализации Matlab для p-значений.
Кроме того, решение здесь направлено на воспроизведение поведения corrcoef, который, согласно документации Matlab, преобразует входные матрицы в векторы-столбцы перед вычислением корреляций.
С другой стороны , я также попытался сложить матрицы в Matlab и снова получил тот же ответ для корреляций, но значения p-значений совершенно разные между тем, что я получаю в Python, и тем, что я получаю в Matlab. Это заставило меня подумать, что проблема, возможно, в вычисляемой статистике. Однако, согласно документации Matlab, он использует:
corr вычисляет p-значения для корреляции Пирсона, используя t-распределение Стьюдента для преобразования корреляции< /p>
и, судя по документации в SciPy, я думаю, что они используют один и тот же тест, но я не уверен на 100%, учитывая, что библиографическая ссылка там предназначена для Студенческий документ, который, по словам документов Matlab, он использует (Студенческий r), но, как я уже сказал, я совсем НЕ уверен.
Подробнее здесь: https://stackoverflow.com/questions/790 ... r-function