Подтвердить что ты не робот

Расчет корреляции Пирсона

Я пытаюсь вычислить коэффициент корреляции Пирсона двух переменных. Эти переменные должны определять, существует ли связь между количеством почтовых кодов на диапазон расстояний. Поэтому я хочу узнать, увеличивается ли количество почтовых кодов при изменении диапазонов расстояний.

У меня будет один список, который будет подсчитывать количество почтовых кодов в диапазоне расстояний, а другой список будет иметь фактические диапазоны.

Можно ли иметь список, содержащий диапазон расстояний? Или было бы лучше иметь список, подобный этому [50, 100, 500, 1000], где каждый элемент будет содержать диапазоны до этой суммы. Так, например, список составляет до 50 км, затем от 50 км до 100 км и т.д.

4b9b3361

Ответ 1

Используйте scipy:

scipy.stats.pearsonr(x, y)

Вычисляет коэффициент корреляции Пирсона и значение p для проверки некорреляции.

Коэффициент корреляции Пирсона измеряет линейную зависимость между двумя наборами данных. Строго говоря, корреляция Пирсона требует, чтобы каждый набор данных был нормально распределен. Как и другие коэффициенты корреляции, этот показатель варьируется от -1 до +1 с 0, что означает отсутствие корреляции. Корреляции -1 или +1 означают точное линейное соотношение. Положительные корреляции означают, что при возрастании x и y. Отрицательные корреляции означают, что при возрастании x y уменьшается.

Значение p грубо указывает на вероятность некоррелированной системы, производящей наборы данных, которые имеют корреляцию Пирсона, по крайней мере столь же экстремальную, как и одна, вычисленная из этих наборов данных. Значения p не являются полностью надежными, но, вероятно, разумны для наборов данных, размер которых превышает 500 или около того.

Параметры:

x: 1D массив

     

y: 1D массив такой же длины, как x

Возвращает:

(коэффициент корреляции Пирса,:   2-хвостовое значение p)

Ответ 2

Вы также можете использовать numpy:

numpy.corrcoef(x, y)

который даст вам корреляционную матрицу, которая выглядит так:

[[1          correlation(x, y)]
[correlation(y, x)          1]]