결정 계수

AI
qwen3-30b-a3b
작성자
익명
작성일
2025.07.11
조회수
16
버전
v1

결정 계수 (R-squared)

개요

결정 계수(R-squared)는 통계학에서 회귀 모델의 설명력(예측 능력)을 측정하는 주요 지표로, 종속 변수의 변동성 중 독립 변수에 의해 설명되는 비율을 나타냅니다. 0~1 사이의 값을 가지며, 값이 클수록 모델이 데이터를 더 잘 설명한다고 해석됩니다. 결정 계수는 회귀 분석에서 모델 적합도 평가에 널리 사용되며, 다양한 분야(경제학, 사회과학, 공학 등)에서 활용됩니다.

정의 및 개념

1. 기본 정의

결정 계수는 회귀 모델이 데이터의 변동성을 얼마나 잘 설명하는지를 수치화한 지표입니다. 수식으로는 다음과 같이 표현됩니다:

$$ R^2 = 1 - \frac{SS_{\text{res}}}{SS_{\text{tot}}} $$

  • $ SS_{\text{res}} $: 잔차 제곱합 (Residual Sum of Squares, RSS)
    → 예측값과 실제값의 차이를 제곱한 합
  • $ SS_{\text{tot}} $: 총 제곱합 (Total Sum of Squares, TSS)
    → 실제값과 평균값의 차이를 제곱한 합

2. 의미 해석

  • R² = 1: 모델이 모든 데이터 포인트를 완벽하게 설명함.
  • R² = 0: 모델이 독립 변수와 종속 변수 간 관계를 전혀 설명하지 않음.
  • 일반적으로 R²가 높을수록 모델의 예측력이 우수하다고 판단되지만, 과적합(overfitting)이나 비선형 관계 등에서 한계가 있습니다.

계산 방법

1. 단순 선형 회귀에서의 계산

단순 선형 회귀 모델 $ y = a + bx $에서 결정 계수는 다음과 같이 계산됩니다:

$$ R^2 = \left( \frac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum (x_i - \bar{x})^2 \sum (y_i - \bar{y})^2}} \right)^2 $$

  • $ x_i, y_i $: 데이터 포인트
  • $ \bar{x}, \bar{y} $: 평균값

2. 다중 회귀에서의 계산

다중 회귀 모델 $ y = a + b_1x_1 + b_2x_2 + ... + b_nx_n $에서는 선형 대수를 활용한 행렬 계산이 필요합니다. 일반적으로 통계 소프트웨어(예: Python의 [sklearn](/doc/%EA%B8%B0%EC%88%A0/%EB%8D%B0%EC%9D%B4%ED%84%B0%EA%B3%BC%ED%95%99/%EB%B6%84%EC%84%9D/sklearn), R)에서 자동으로 계산됩니다.

해석 및 한계

1. 장점

  • 모델의 설명력에 대한 직관적인 이해 가능.
  • 비교 분석 시 유용 (예: 두 모델 간 성능 비교).

2. 단점

  • 과적합을 감지하지 못함 (데이터가 많을수록 R²가 증가할 수 있음).
  • 비선형 관계를 설명하지 못함 (예: 다항 회귀 모델에서 R²가 높아도 실제 패턴이 비선형일 수 있음).
  • 샘플 크기에 민감 (작은 샘플에서는 과대평가 가능성).

응용 분야

1. 경제학

  • GDP 성장률 예측 모델에서 독립 변수(예: 투자, 소비)의 설명력 평가.
  • 시장 수요 예측.

2. 의료 연구

  • 질병 발생 확률을 예측하는 모델에서 요인별 기여도 분석.

3. 공학

  • 설계 변수와 성능 간 관계 분석 (예: 자동차 연비 예측).

관련 개념

개념 설명
조정 결정 계수 (Adjusted R²) 독립 변수 수를 고려한 수정된 결정 계수. 과적합을 방지하기 위해 사용됨.
RMSE (Root Mean Squared Error) 예측 오차의 평균 제곱근. R²와 함께 모델 성능 평가에 활용.
MAPE (Mean Absolute Percentage Error) 상대적인 오차 비율을 나타내며, R²와 보완적 사용 가능.

참고 자료

예시 코드

from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score

# 데이터 생성 (예: 단순 선형 관계)
X = [[1], [2], [3], [4], [5]]
y = [2, 4, 6, 8, 10]

model = LinearRegression()
model.fit(X, y)
y_pred = model.predict(X)

r2 = r2_score(y, y_pred)
print(f"결정 계수 (R²): {r2:.2f}")  # 출력: R² = 1.00

결론

결정 계수는 회귀 모델의 설명력을 평가하는 데 유용한 지표이지만, 단독으로 사용할 경우 오해를 줄 수 있습니다. 실제 분석에서는 R²와 함께 RMSE, MAPE 등 다른 지표를 종합적으로 고려해야 합니다. 또한, 모델의 과적합 여부나 비선형 관계를 확인하기 위해 추가적인 검증이 필요합니다.

AI 생성 콘텐츠 안내

이 문서는 AI 모델(qwen3-30b-a3b)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?