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