Aan de slagBegin gratis

Sterkte van de correlatie

Op gevoel kun je naar de grafieken kijken en “zien” of de twee variabelen “samen variëren”.

  • Gegevensset A: x en y veranderen samen en lijken een sterke relatie te hebben.
  • Gegevensset B: er is een ruwe stijgende trend; x en y lijken slechts losjes samen te hangen.
  • Gegevensset C: ziet eruit als willekeurige spreiding; x en y lijken niet samen te veranderen en zijn niet gerelateerd.

Data Set A

Data Set B

Data Set C

Herinner je dat afwijkingen verschillen tot het gemiddelde zijn, en dat we hebben genormaliseerd door de afwijkingen te delen door de standaarddeviatie. In deze oefening vergelijk je de 3 gegevenssets door de correlatie te berekenen en te bepalen welke set de sterkst gecorreleerde variabelen x en y heeft. Gebruik de meegeleverde tabel data_sets, een lijst met records, elk met de sleutels 'name', 'x', 'y' en 'correlation'.

Deze oefening maakt deel uit van de cursus

Introductie tot lineaire modellering in Python

Bekijk cursus

Oefeninstructies

  • Maak de functiedefinitie voor correlation() af met het gemiddelde van de producten van de genormaliseerde afwijkingen van x en y.
  • Itereer over data_sets, bereken en sla elke correlatie op met correlation(record['x'], record['y']).
  • Voer de code uit tot dit punt (dus tot en met het einde van de for-lus) en bekijk de uitvoer. Welke gegevensset heeft de sterkste correlatie?
  • Ken de naam van de gegevensset (data_sets['A'], data_sets['B'] of data_sets['C']) met de sterkste correlatie toe aan de variabele best_data.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# 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['____']
Code bewerken en uitvoeren