Nauka o danych - korelacja statystyk


Korelacja

Korelacja mierzy związek między dwiema zmiennymi.

Wspomnieliśmy, że funkcja ma na celu przewidzenie wartości poprzez przekształcenie wejścia (x) na wyjście (f(x)). Można również powiedzieć, że funkcja wykorzystuje do przewidywania relację między dwiema zmiennymi.


Współczynnik korelacji

Współczynnik korelacji mierzy związek między dwiema zmiennymi.

Współczynnik korelacji nigdy nie może być mniejszy niż -1 ani wyższy niż 1.

  • 1 = istnieje idealna liniowa zależność między zmiennymi (np. Average_Pulse kontra Calorie_Burnage)
  • 0 = nie ma liniowej zależności między zmiennymi
  • -1 = istnieje idealnie ujemna zależność liniowa między zmiennymi (np. Mniej przepracowanych godzin prowadzi do większego spalania kalorii podczas sesji treningowej)

Przykład idealnej relacji liniowej (współczynnik korelacji = 1)

Użyjemy wykresu rozrzutu, aby zwizualizować związek między Average_Pulse i Calorie_Burnage (wykorzystaliśmy mały zestaw danych zegarka sportowego z 10 obserwacjami).

Tym razem chcemy mieć wykresy rozproszone, więc zmieniamy rodzaj na „scatter”:

Przykład

import matplotlib.pyplot as plt

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

Wyjście:

Współczynnik korelacji = 1

Jak widzieliśmy wcześniej, istnieje idealna liniowa zależność między wartością Average_Pulse a Calorie_Burnage.



Przykład idealnej ujemnej relacji liniowej (współczynnik korelacji = -1)

Współczynnik korelacji = -1

Wykreśliliśmy tutaj fikcyjne dane. Oś x reprezentuje ilość godzin przepracowanych w naszej pracy przed sesją treningową. Oś y to Calorie_Burnage.

Jeśli pracujemy dłużej, mamy tendencję do mniejszego spalania kalorii, ponieważ jesteśmy wyczerpani przed sesją treningową.

Współczynnik korelacji wynosi tutaj -1.

Przykład

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()

Przykład braku zależności liniowej (współczynnik korelacji = 0)

Współczynnik korelacji = 0

Tutaj wykreśliliśmy Max_Pulse w funkcji czasu trwania z zestawu full_health_data.

Jak widać, nie ma liniowej zależności między tymi dwiema zmiennymi. Oznacza to, że dłuższa sesja treningowa nie prowadzi do wyższego Max_Pulse.

Współczynnik korelacji wynosi tutaj 0.

Przykład

import matplotlib.pyplot as plt

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