Python - реализация numpy.corrcoef - PullRequest
       28

Python - реализация numpy.corrcoef

0 голосов
/ 02 февраля 2019

У меня есть два вектора, и я хочу найти корреляцию между ними.
Метод # 1: я могу использовать Python numpy.corrcoef(a, b) на основе здесь .
Мне было интересно, как я могу это реализовать.
Метод # 2: я пытался реализовать его, используя функцию точки, как объяснено здесь .Однако значения не совпадают.

Пример:
a = [1,4,6]
b = [1,2,3]

Метод № 1:
np.corrcoef(a, b)[0][1]
Результат: 0.99339927

Метод № 2:
np.dot(a, b) / math.sqrt(np.dot(a, a) * np.dot(b, b))
Результат: 0.9912011825893757

1 Ответ

0 голосов
/ 02 февраля 2019

numpy.corrcoef возвращает коэффициент корреляции Пирсона в соответствии с руководством .

Таким образом, мы должны сначала нормализовать каждый вектор путем вычитания выборочного среднего значения:

a = np.array([1,4,6])
b = np.array([1,2,3])
a = a - np.mean(a)
b = b - np.mean(b)
np.dot(a, b) / math.sqrt(np.dot(a, a) * np.dot(b, b)) 

что дает 0.9933992677987827.

...