Когда корреляция работает, а когда - нет
Почему говорят, что корреляция отражает линейную связь между переменными? И какую "взаимосвязь" корреляция не видит? Сначала рассмотрим примеры применимости данного показателя.
Как я упоминал ранее, корреляция близка к 1, если измеряемые величины принимают одновременно большие или маленькие значения, если наоборот, корреляция будет близка к -1. В случае, когда связи не прослеживается, то она будет близка к 0. Ниже примеры, хорошей корреляции:
import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns sns.set() x = np.arange(-5,6) y = 0.25*x plt.plot(x,y) pd.DataFrame({'x':x,'y':y}).corr()
В примере максимальная положительная корреляция, а вот - отрицательная:
y = -0.75*x plt.plot(x,y) pd.DataFrame({'x':x,'y':y}).corr()
x = np.random.normal(size=100) y = np.random.normal(size=100) plt.scatter(x,y) pd.DataFrame({'x':x,'y':y}).corr()
Однако корреляция улавливает не любую взаимосвязь между переменными. То есть зависимость может быть (например, квадратичная), но при этом коэффициент корреляции не будет отражать этого. Ниже пример:
x = np.arange(-5,6) y = x**2 plt.plot(x,y) pd.DataFrame({'x':x,'y':y}).corr()
Не пропустите ничего интересного и подписывайтесь на страницы канала в других социальных сетях: