2015-04-13 2 views
0

Я хочу вычислить корреляцию между двумя массивами. Для этого я хотел бы использовать NumPy.Чувствительность корреляции смещения

Я использовал функцию numpy.correlate на небольшом примере:

import numpy as np 

a = [1, 2, 3] 
b = [2, 3, 4] 

np.correlate(a, b) 
>>> np.array([20]) 

Я не знаю, как интерпретировать этот результат. То, что я хотел бы иметь, - это число от -1 до 1, чтобы указать на корреляцию, причем 1 означает, что массивы положительно связаны и -1 означает, что массивы отрицательно связаны.

Как я могу получить этот номер?

ответ

2

Вы используете неправильную функцию. Вы ищете numpy.corrcoef, который фактически вычисляет коэффициент корреляции.

a = [1, 2, 3] 
b = [2, 3, 4] 

>>> np.corrcoef(a, b) 
array([[ 1., 1.], 
     [ 1., 1.]]) 

As mentioned на крючке, это возвращает матрицу значений из ковариационной матрицы.

Если вам нужен коэффициент корреляции Пирсона, вы можете использовать pearsonr от scipy.stats.stats. Hooked's answer here - это правильная реализация этого метода.

+0

Следует отметить, что это возвращает _matrix_ значений из матрицы ковариации. Я думаю, что OP ищет коэффициент корреляции pearson. – Hooked

+1

Как интерпретировать эту матрицу? Невозможно ли получить один номер? – JNevens

+0

@JNevens Ahh, вы ищете Pearson. Я последую за обманом, а у Хукеда есть хороший ответ. – miradulo

Смежные вопросы