Наука о данных — корреляция статистики


Корреляция

Корреляция измеряет взаимосвязь между двумя переменными.

Мы упоминали, что функция предназначена для предсказания значения путем преобразования входных данных (x) в выходные данные (f(x)). Мы также можем сказать, что функция использует связь между двумя переменными для предсказания.


Коэффициент корреляции

Коэффициент корреляции измеряет взаимосвязь между двумя переменными.

Коэффициент корреляции никогда не может быть меньше -1 или выше 1.

  • 1 = существует идеальная линейная зависимость между переменными (например, Average_Pulse против Calorie_Burnage)
  • 0 = нет линейной зависимости между переменными
  • -1 = существует идеальная отрицательная линейная зависимость между переменными (например, меньше часов работы приводит к большему сжиганию калорий во время тренировки)

Пример идеальной линейной зависимости (коэффициент корреляции = 1)

Мы будем использовать диаграмму рассеяния, чтобы визуализировать взаимосвязь между Average_Pulse и Calorie_Burnage (мы использовали небольшой набор данных спортивных часов с 10 наблюдениями).

На этот раз нам нужны точечные графики, поэтому мы меняем вид на «разброс»:

Пример

import matplotlib.pyplot as plt

health_data.plot(x ='Average_Pulse', y='Calorie_Burnage', kind='scatter')
plt.show()

Вывод:

Коэффициент корреляции = 1

Как мы видели ранее, существует идеальная линейная зависимость между Average_Pulse и Calorie_Burnage.



Пример идеальной отрицательной линейной зависимости (коэффициент корреляции = -1)

Коэффициент корреляции = -1

Здесь мы нанесли вымышленные данные. Ось X представляет собой количество часов, отработанных на нашей работе до сеанса обучения. Ось Y — это Calorie_Burnage.

Если мы работаем дольше, у нас, как правило, меньше сжигаемых калорий, потому что мы устаем перед тренировкой.

Коэффициент корреляции здесь равен -1.

Пример

import pandas as pd
import matplotlib.pyplot as plt

negative_corr = {'Hours_Work_Before_Training': [10,9,8,7,6,5,4,3,2,1],
'Calorie_Burnage': [220,240,260,280,300,320,340,360,380,400]}
negative_corr = pd.DataFrame(data=negative_corr)

negative_corr.plot(x ='Hours_Work_Before_Training', y='Calorie_Burnage', kind='scatter')
plt.show()

Пример отсутствия линейной зависимости (коэффициент корреляции = 0)

Коэффициент корреляции = 0

Здесь мы построили Max_Pulse в зависимости от Duration из набора full_health_data.

Как видите, между двумя переменными нет линейной зависимости. Это означает, что более длительная тренировка не приводит к увеличению Max_Pulse.

Коэффициент корреляции здесь равен 0.

Пример

import matplotlib.pyplot as plt

full_health_data.plot(x ='Duration', y='Max_Pulse', kind='scatter')
plt.show()