Kom igångKom igång gratis

Korrelationsstyrka

Intuitivt kan vi titta på diagrammen och "se" om de två variablerna verkar "variera tillsammans".

  • Datamängd A: x och y förändras tillsammans och verkar ha ett starkt samband.
  • Datamängd B: det finns en ungefärlig uppåtgående trend; x och y verkar bara löst relaterade.
  • Datamängd C: ser ut som slumpmässig spridning; x och y verkar inte förändras tillsammans och är orelaterade.

Data Set A

Data Set B

Data Set C

Kom ihåg att avvikelser beräknas relativt medelvärdet, och att vi normaliserade genom att dividera avvikelserna med standardavvikelsen. I den här övningen ska du jämföra de tre datamängderna genom att beräkna korrelationen och avgöra vilken datamängd som har de mest starkt korrelerade variablerna x och y. Använd den tillhandahållna datatabellen data_sets – ett lexikon med poster där varje post har nycklarna 'name', 'x', 'y' och 'correlation'.

Den här övningen är en del av kursen

Introduktion till linjär modellering i Python

Visa kurs

Övningsinstruktioner

  • Slutför funktionsdefinitionen för correlation() med hjälp av medelvärdet av produkterna av de normaliserade avvikelserna för x och y.
  • Iterera över data_sets, beräkna och lagra varje korrelation med hjälp av correlation(record['x'], record['y']).
  • Kör koden fram till detta punkt (dvs. slutet av for-loopen) och inspektera utskriften. Vilken datamängd har den starkaste korrelationen?
  • Tilldela variabeln best_data namnet på den datamängd (data_sets['A'], data_sets['B'] eller data_sets['C']) som har den starkaste korrelationen.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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['____']
Redigera och kör kod