머신러닝

머신러닝: 공분산(Covariance) 완벽 이해

move84 2025. 4. 16. 07:15
반응형

머신러닝과 통계학에서 공분산은 두 변수 간의 관계를 나타내는 중요한 지표다. 이 글에서는 공분산의 정의, 계산 방법, 그리고 실제 데이터 분석에서 어떻게 활용되는지를 자세히 설명한다. 공분산을 통해 데이터의 숨겨진 패턴을 발견하고, 더 나아가 예측 모델의 성능을 향상시키는 방법을 알아본다.


🤔 공분산(Covariance)이란?
공분산은 두 개의 확률변수가 함께 변하는 정도를 나타내는 통계적 척도다. 즉, 한 변수가 변할 때 다른 변수가 어떤 경향성을 보이는지를 측정한다. 공분산 값이 양수면 두 변수는 양의 상관관계를 가지며, 음수면 음의 상관관계를 가진다. 공분산이 0이면 두 변수 간에 선형적인 관계가 없음을 의미한다. 그러나 공분산은 변수들의 스케일에 따라 값이 달라지기 때문에 상관관계의 강도를 직접적으로 비교하기는 어렵다.


🧮 공분산 계산 방법
공분산은 다음과 같은 수식으로 계산한다.

  • 모집단 공분산: cov(X, Y) = Σ [(Xi - μX)(Yi - μY)] / N
  • 표본 공분산: cov(X, Y) = Σ [(Xi - X̄)(Yi - Ȳ)] / (n-1)

여기서,

  • X, Y는 각각 확률변수를 나타낸다.
  • Xi, Yi는 각 변수의 개별 데이터 포인트를 나타낸다.
  • μX, μY는 각 변수의 모집단 평균을 나타낸다.
  • X̄, Ȳ는 각 변수의 표본 평균을 나타낸다.
  • N은 모집단 크기를 나타낸다.
  • n은 표본 크기를 나타낸다.

표본 공분산을 계산할 때 분모를 (n-1)로 나누는 이유는 불편추정량을 구하기 위해서다.


📊 공분산의 활용 예시
공분산은 다양한 분야에서 활용된다. 예를 들어, 주식 시장에서 두 주식의 수익률 간의 공분산을 계산하여 투자 포트폴리오를 구성할 수 있다. 또한, 머신러닝에서는 특성(feature) 간의 관계를 파악하여 모델의 성능을 향상시키는 데 사용될 수 있다.

예를 들어, 광고 지출과 매출 간의 관계를 분석한다고 가정해보자. 광고 지출이 증가함에 따라 매출도 증가하는 경향이 있다면, 광고 지출과 매출 간의 공분산은 양수가 될 것이다. 반대로, 어떤 특정한 변수가 증가함에 따라 다른 변수가 감소하는 경향이 있다면 공분산은 음수가 될 것이다.

import numpy as np

# 예시 데이터
advertising_spend = np.array([100, 200, 300, 400, 500])  # 광고 지출
sales = np.array([500, 650, 800, 950, 1100])  # 매출

# 공분산 계산
covariance = np.cov(advertising_spend, sales)[0, 1]

print("공분산:", covariance)

위 코드는 광고 지출과 매출 간의 공분산을 계산하는 간단한 예제다. numpy 라이브러리의 cov 함수를 사용하여 공분산을 계산할 수 있다. 결과값은 두 변수 간의 관계를 나타내며, 양수인지 음수인지, 그리고 그 크기를 통해 관계의 강도를 파악할 수 있다.


📈 공분산의 한계와 보완
공분산은 변수 간의 관계를 파악하는 데 유용하지만, 몇 가지 한계점을 가지고 있다. 가장 큰 문제는 변수들의 스케일에 따라 값이 달라진다는 점이다. 따라서 공분산 값 자체로는 관계의 강도를 직접적으로 비교하기 어렵다.

이러한 문제를 해결하기 위해 상관계수(correlation coefficient)를 사용한다. 상관계수는 공분산을 각 변수의 표준편차로 나누어 정규화한 값으로, -1과 1 사이의 값을 가진다. 상관계수를 사용하면 변수들의 스케일에 영향을 받지 않고 관계의 강도를 비교할 수 있다.

상관계수는 다음과 같이 계산된다.

  • 상관계수(r) = cov(X, Y) / (σX * σY)

여기서,

  • σX, σY는 각 변수의 표준편차를 나타낸다.

🎯 핵심 용어 정리

  • 공분산 (Covariance): 두 변수가 함께 변하는 정도를 나타내는 통계적 척도
  • 상관계수 (Correlation Coefficient): 공분산을 정규화하여 변수 간의 관계 강도를 비교하기 쉽게 만든 값
  • 표준편차 (Standard Deviation): 데이터가 평균으로부터 흩어진 정도
  • 모집단 (Population): 연구 대상이 되는 전체 집단
  • 표본 (Sample): 모집단에서 추출한 일부 데이터
  • 불편추정량 (Unbiased Estimator): 추정량의 기대값이 실제 모수와 일치하는 추정량
반응형