기술통계 — 편차 · 분산 · 표준편차 · 공분산 · 상관계수
다음 두 페이지(
상관행렬,회귀)에서 끊임없이 등장하는 기초 수학을 한 곳에 정리. 정의 → 직관 → 손계산 예제 순서.
0. 한눈에 보는 흐름
편차 → 편차² → 분산 → √ → 표준편차
↓
두 변수로 확장 → 공분산 → 표준편차로 나눔 → 상관계수| 양 | 한 변수 | 두 변수 |
|---|---|---|
| 평균 중심 차이 | 편차 xᵢ − x̄ | (xᵢ − x̄)(yᵢ − ȳ) |
| 평균 (제곱·곱) | 분산 σ² | 공분산 Cov(X,Y) |
| 단위 통일 | 표준편차 σ | 상관계수 ρ |
1. 편차 (Deviation) — 가장 기본
각 데이터가 평균에서 얼마나 떨어져 있는가.
예 X = [2, 4, 5, 6, 8] → 평균 x̄ = 25/5 = 5
| xᵢ | 2 | 4 | 5 | 6 | 8 |
|---|---|---|---|---|---|
| dᵢ = xᵢ − 5 | −3 | −1 | 0 | 1 | 3 |
💡 편차의 합은 항상 0 — 평균을 기준으로 빼니까 양/음이 정확히 상쇄됩니다. 그래서 편차를 그대로 쓰면 "흩어짐" 측정이 안 돼요.
2. 분산 (Variance) — "흩어진 정도"
편차의 부호를 없애고 평균하면 됩니다. 부호 제거는 제곱으로:
2.1 모분산 (population variance) — 분모 n
예 위 데이터로:
| dᵢ | −3 | −1 | 0 | 1 | 3 |
|---|---|---|---|---|---|
| dᵢ² | 9 | 1 | 0 | 1 | 9 |
편차제곱합 = 9 + 1 + 0 + 1 + 9 = 20
모분산 σ² = 20 / 5 = 4
2.2 표본분산 (sample variance) — 분모 n − 1 (베셀 보정)
같은 데이터로 표본분산 = 20 / (5 − 1) = 20 / 4 = 5
왜 n 대신 n − 1 인가?
표본은 모집단의 일부라 평균조차 추정값(x̄)이에요. 평균을 데이터로부터 추정하면서 자유도가 1 깎이는 효과가 있어, n 으로 나누면 모분산을 살짝 과소평가합니다. n − 1 로 나누면 평균적으로 정확히 모분산이 됩니다 (편향 보정).
📌 시험에서 어느 쪽을 쓸지 항상 확인:
- 판다스
df.std()/df.var()→ n − 1 (표본, 베셀 적용)- NumPy
np.std()/np.var()→ n 이 기본 (모집단)- "표본"이라고 명시되면 무조건 n − 1
3. 표준편차 (Standard Deviation) — 단위 되돌리기
분산은 단위가 제곱이 됩니다 (cm 데이터의 분산은 cm²). 그래서 제곱근을 취해 원래 단위로:
예 위 데이터:
- 모표준편차 σ = √4 = 2
- 표본표준편차 s = √5 ≈ 2.236
💡 분산과 표준편차는 같은 정보 — 표준편차는 단위가 데이터와 같아 더 직관적, 분산은 수학적으로 다루기 좋음 (제곱이라 미분·합치기 깔끔).
4. 공분산 (Covariance) — 두 변수가 같이 움직이는 정도
분산은 한 변수의 흩어짐. 두 변수의 동시 움직임을 보려면:
(표본 공분산은 분모 n − 1)
4.1 부호의 의미
각 점에서 (x 편차) × (y 편차) 를 곱한 평균이에요. 곱의 부호는:
| 위치 | x 편차 | y 편차 | 곱 |
|---|---|---|---|
| 평균보다 둘 다 큼 | + | + | + |
| 둘 다 작음 | − | − | + |
| x 큼, y 작음 | + | − | − |
| x 작음, y 큼 | − | + | − |
→ 둘이 같은 방향으로 움직이면 + (양의 공분산), 반대로 움직이면 − (음의 공분산), 무관하면 0.
4.2 손계산 — 5개 점
X = [1, 2, 3, 4, 5], Y = [2, 4, 5, 4, 5] → x̄ = 3, ȳ = 4
| xᵢ | yᵢ | xᵢ − x̄ | yᵢ − ȳ | 곱 |
|---|---|---|---|---|
| 1 | 2 | −2 | −2 | 4 |
| 2 | 4 | −1 | 0 | 0 |
| 3 | 5 | 0 | 1 | 0 |
| 4 | 4 | 1 | 0 | 0 |
| 5 | 5 | 2 | 1 | 2 |
| 합 | 6 |
모공분산 = 6 / 5 = 1.2, 표본공분산 = 6 / 4 = 1.5
4.3 한계 — 단위 의존
공분산 값은 단위에 의존합니다. 같은 데이터를 cm → m 로 바꾸면 공분산이 1/100 로 줄어요. "강한 관계인지" 판단하려면 단위를 없애야 합니다.
5. 상관계수 (Correlation Coefficient) — 단위 없는 [−1, 1]
공분산을 두 표준편차의 곱으로 나눠 정규화:
또는 표준화 (Z-score) 의 곱의 평균 형태:
5.1 핵심 성질
| 성질 | 의미 |
|---|---|
ρ ∈ [−1, 1] | 항상 이 범위에 들어옴 |
ρ = +1 | 완벽한 양의 직선 관계 |
ρ = −1 | 완벽한 음의 직선 관계 |
ρ = 0 | 선형 관계 없음 (비선형 관계는 있을 수 있음!) |
| 단위 불변 | cm → m 같은 단위 환산에 영향 받지 않음 |
| 대칭 | ρ(X, Y) = ρ(Y, X) |
5.2 손계산 — 위 4.2 데이터로 끝까지
이미 구한 값:
- 모공분산 Cov(X, Y) = 1.2
- σ_X = √(편차²합 / n) = √((4+1+0+1+4)/5) = √2 ≈ 1.414
- σ_Y = √((4+0+1+0+1)/5) = √(6/5) ≈ 1.095
상관계수:
→ 꽤 강한 양의 선형 관계.
⚠️ 흔한 함정: 상관계수 ≠ 인과관계. ρ = 0.95 라도 한 변수가 다른 변수의 원인이라 단정 못 함. 실험/도메인 지식이 필요.
6. 분산·공분산 행렬과 상관행렬
여러 변수가 있으면 변수 쌍마다 분산/공분산이 있어요. 이걸 행렬로 정리:
공분산 행렬 Σ (n×n)
- 대각선: 각 변수의 분산
- 비대각: 변수 쌍 공분산
- 대칭 행렬
상관행렬 R — 공분산 행렬의 표준화 버전
- 대각선: 모두 1 (자기 자신과의 상관계수)
- 비대각: 각 쌍의 피어슨 상관계수
- 대칭, 양의 준정부호
📊 다음 페이지(상관행렬) 에서 이 행렬을 판다스
df.corr()로 계산하고 히트맵으로 시각화합니다.
📝 Checkpoint — 손계산 직접 해보기
기술통계 손계산
X = [2, 4, 5, 6, 8] 의 평균을 구하시오. (정수)
🔗 다음 학습
- ⭐ 상관행렬 — 파이썬 실무 — 위 수학을
df.corr()한 줄로 자동 계산하는 법 + 히트맵 - 다시 보고 싶으면: 기초 분석 (describe)