IniziaInizia gratis

Forza della correlazione

In modo intuitivo, possiamo guardare i grafici forniti e "vedere" se le due variabili sembrano "variare insieme".

  • Insieme di dati A: x e y cambiano insieme e sembrano avere una relazione forte.
  • Insieme di dati B: c’è una tendenza crescente approssimativa; x e y sembrano solo debolmente correlate.
  • Insieme di dati C: sembra una dispersione casuale; x e y non sembrano cambiare insieme e sono non correlate.

Insieme di dati A

Insieme di dati B

Insieme di dati C

Ricorda che le deviazioni differiscono dalla media e che abbiamo normalizzato dividendo le deviazioni per la deviazione standard. In questo esercizio confronterai i 3 insiemi di dati calcolando la correlazione e determinando quale insieme di dati ha le variabili x e y più fortemente correlate. Usa la tabella dati data_sets, un dizionario di record, ognuno con le chiavi 'name', 'x', 'y' e 'correlation'.

Questo esercizio fa parte del corso

Introduzione alla modellazione lineare in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Completa la definizione della funzione correlation() usando la media dei prodotti delle deviazioni normalizzate di x e y.
  • Itera su data_sets, calcolando e salvando ogni correlazione con correlation(record['x'], record['y']).
  • Esegui il codice fino a questo punto (cioè alla fine del ciclo for) e controlla l’output stampato. Quale insieme di dati ha la correlazione più forte?
  • Assegna il nome dell’insieme di dati (data_sets['A'], data_sets['B'] o data_sets['C']) con la correlazione più forte alla variabile best_data.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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['____']
Modifica ed esegui il codice