Związek między macierzą korelacji a macierzą kowariancji
Wcześniej w kursie korzystałeś z .cov() do wyznaczania macierzy kowariancji oraz z .corr() do wyznaczania macierzy korelacji. Łatwo je ze sobą pomylić i błędnie zastosować w symulacjach. Wyjaśnijmy to!
Macierz korelacji to ustandaryzowana macierz kowariancji, w której współczynniki korelacji przyjmują wartości od 0 do 1.
\(cov(x,y) = corr(x,y) \times std(x) \times std(y)\)
Powyższe równanie mówi, że \(cov(x,y)\), czyli wartość kowariancji, można obliczyć jako iloczyn współczynnika korelacji \(corr(x,y)\), odchylenia standardowego \(x\), czyli \(std(x)\), oraz odchylenia standardowego \(y\), czyli \(std(y)\). W tym ćwiczeniu sprawdzisz tę zależność w praktyce!
Zbiór danych dotyczący cukrzycy został wczytany jako DataFrame dia, a biblioteki pandas jako pd i numpy jako np są już zaimportowane.
To ćwiczenie jest częścią kursu
Symulacje Monte Carlo w Pythonie
Instrukcje do ćwiczenia
- Oblicz macierz kowariancji dla
dia[["bmi", "tc"]]i zapisz wynik jakocov_dia2. - Oblicz macierz korelacji dla
dia[["bmi", "tc"]]i zapisz wynik jakocorr_dia2.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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]}')