시작하기무료로 시작하기

상관 행렬과 공분산 행렬의 관계

이전 단계에서 .cov()로 공분산 행렬을, .corr()로 상관 행렬을 구했어요. 두 개념을 서로 헷갈려 시뮬레이션에서 잘못 쓰기 쉽습니다. 지금 확실히 정리해 볼까요?

상관 행렬은 상관계수가 0에서 1 사이 값을 갖도록 표준화된 공분산 행렬입니다.

\(cov(x,y) = corr(x,y) \times std(x) \times std(y)\)

위 식은 공분산 값 $cov(x,y)$가 상관계수 $corr(x,y)$에 $x$의 표준편차 $std(x)$와 $y$의 표준편차 $std(y)$를 곱해 계산할 수 있음을 보여줍니다. 이번 연습 문제에서 이 관계를 직접 확인해 보세요!

당뇨병 데이터셋은 DataFrame dia로 로드되어 있으며, pandaspd로, numpynp로 임포트되어 있습니다.

이 연습은 강의의 일부입니다

Python으로 배우는 Monte Carlo 시뮬레이션

강의 보기

연습 안내

  • dia[["bmi", "tc"]]의 공분산 행렬을 계산해 cov_dia2로 저장하세요.
  • dia[["bmi", "tc"]]의 상관 행렬을 계산해 corr_dia2로 저장하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# 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]}')
코드 편집 및 실행