Data Science - Statistics Correlation


Korelace

Korelace měří vztah mezi dvěma proměnnými.

Zmínili jsme, že účelem funkce je předpovídat hodnotu převodem vstupu (x) na výstup (f(x)). Můžeme také říci, že funkce používá k predikci vztah mezi dvěma proměnnými.


Korelační koeficient

Korelační koeficient měří vztah mezi dvěma proměnnými.

Korelační koeficient nemůže být nikdy menší než -1 nebo vyšší než 1.

  • 1 = mezi proměnnými je dokonalý lineární vztah (jako Average_Pulse proti Calorie_Burnage)
  • 0 = mezi proměnnými není lineární vztah
  • -1 = mezi proměnnými je dokonalý negativní lineární vztah (např. Méně odpracovaných hodin, vede k vyššímu spalování kalorií během tréninku)

Příklad dokonalého lineárního vztahu (korelační koeficient = 1)

Pro vizualizaci vztahu mezi Average_Pulse a Calorie_Burnage použijeme bodový graf (použili jsme malý soubor dat sportovních hodinek s 10 pozorováními).

Tentokrát chceme bodové grafy, takže změníme druh na "rozptyl":

Příklad

import matplotlib.pyplot as plt

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

Výstup:

Korelační koeficient = 1

Jak jsme viděli dříve, existuje dokonalý lineární vztah mezi Average_Pulse a Calorie_Burnage.



Příklad dokonalého negativního lineárního vztahu (korelační koeficient = -1)

Korelační koeficient = -1

Zde jsme zakreslili fiktivní data. Osa x představuje počet hodin odpracovaných v naší práci před školením. Osa y je Calorie_Burnage.

Pokud pracujeme déle, máme tendenci mít nižší spalování kalorií, protože jsme před tréninkem vyčerpaní.

Korelační koeficient je zde -1.

Příklad

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

Příklad nelineárního vztahu (korelační koeficient = 0)

Korelační koeficient = 0

Zde jsme vynesli Max_Pulse proti Duration ze sady full_health_data.

Jak vidíte, mezi těmito dvěma proměnnými neexistuje žádný lineární vztah. To znamená, že delší trénink nevede k vyššímu Max_Pulse.

Korelační koeficient je zde 0.

Příklad

import matplotlib.pyplot as plt

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