Когда корреляция работает, а когда - нет
Почему говорят, что корреляция отражает линейную связь между переменными? И какую "взаимосвязь" корреляция не видит? Сначала рассмотрим примеры применимости данного показателя.
Как я упоминал ранее, корреляция близка к 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()Не пропустите ничего интересного и подписывайтесь на страницы канала в других социальных сетях: