Síla korelace
Intuitivně dokážeme z grafů „vyčíst", jestli spolu dvě proměnné „mění" – tedy zda jsou nějak provázané.
- Datová sada A: x a y se mění společně a zdají se být silně provázané.
- Datová sada B: lze pozorovat přibližný rostoucí trend; x a y jsou ale provázané jen volně.
- Datová sada C: vypadá jako náhodný rozptyl; x a y se nemění společně a nejsou provázané.



Odchylky se počítají od průměru a normalizují se dělením směrodatnou odchylkou. V tomto cvičení porovnáš 3 datové sady výpočtem korelace a určíš, která z nich má mezi proměnnými x a y nejsilnější korelaci. Použij připravenou tabulku data_sets – slovník záznamů, kde každý záznam má klíče 'name', 'x', 'y' a 'correlation'.
Toto cvičení je součástí kurzu
Úvod do lineárního modelování v Pythonu
Pokyny k cvičení
- Dokonči definici funkce
correlation()pomocí průměru součinů normalizovaných odchylekxay. - Projdi
data_setsve smyčce, vypočítej a ulož každou korelaci pomocícorrelation(record['x'], record['y']). - Spusť kód až do tohoto místa (tj. do konce smyčky
for) a prohlédni si výpis. Která datová sada má nejsilnější korelaci? - Přiřaď název datové sady (
data_sets['A'],data_sets['B']nebodata_sets['C']) s nejsilnější korelací do proměnnébest_data.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Complete the function that will compute correlation.
def correlation(x,y):
x_dev = x - np.____(x)
y_dev = y - np.____(y)
x_norm = x_dev / np.____(x)
y_norm = y_dev / np.____(y)
return np.____(x_norm * y_norm)
# Compute and store the correlation for each data set in the list.
for name, data in data_sets.items():
data['correlation'] = ____(data['x'], data['y'])
print('data set {} has correlation {:.2f}'.format(name, data['correlation']))
# Assign the data set with the best correlation.
best_data = data_sets['____']