Il rapporto tra matrici di correlazione e di covarianza
In precedenza nel corso, hai usato .cov() per ottenere la matrice di covarianza e .corr() per ottenere la matrice di correlazione. È facile confonderle e usarle in modo errato nelle simulazioni. Facciamo chiarezza!
Una matrice di correlazione è una matrice di covarianza standardizzata, in cui i coefficienti di correlazione nella matrice assumono valori da 0 a 1.
\(cov(x,y) = corr(x,y) \times std(x) \times std(y)\)
L'equazione sopra ci dice che \(cov(x,y)\), il valore di covarianza, può essere calcolato moltiplicando il coefficiente di correlazione \(corr(x,y)\) per la deviazione standard di \(x\), \(std(x)\), e per la deviazione standard di \(y\), \(std(y)\). Metterai alla prova questa relazione in questo esercizio!
Il dataset sul diabete è stato caricato come DataFrame, dia, e sia pandas come pd sia numpy come np sono stati importati per te.
Questo esercizio fa parte del corso
Simulazioni Monte Carlo in Python
Istruzioni dell'esercizio
- Calcola la matrice di covarianza di
dia[["bmi", "tc"]], salvandola comecov_dia2. - Calcola la matrice di correlazione di
dia[["bmi", "tc"]], salvandola comecorr_dia2.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Calculate the covariance matrix of bmi and tc
cov_dia2 = ____
# Calculate the correlation matrix of bmi and tc
corr_dia2 = ____
std_dia2 = dia[["bmi","tc"]].std()
print(f'Covariance of bmi and tc from covariance matrix :{cov_dia2.iloc[0,1]}')
print(f'Covariance of bmi and tc from correlation matrix :{corr_dia2.iloc[0,1] * std_dia2[0] * std_dia2[1]}')