본문 바로가기
프로그래밍/AI

통계학(5) 대푯값 분산도 가설검정 회귀분석

by slowin 2024. 12. 2.

통계학 - 대푯값 분산도 가설검정 회귀분석

대푯값

1. 평균의 종류

  • 산술평균: 데이터의 합을 데이터 개수로 나눈 값.
    $$\text{산술평균} = \frac{\sum x_i}{n}$$
  • 기하평균: 데이터의 곱의 n제곱근.
    $$\text{기하평균} = \sqrt[n]{x_1 \cdot x_2 \cdots x_n}$$
  • 조화평균: 데이터 역수의 평균의 역수.
    $$\text{조화평균} = \frac{n}{\sum \frac{1}{x_i}}$$

2. 평균의 함정

  • 평균은 극단값의 영향을 받음 → 중앙값, 최빈값 병행 분석.

3. 중앙값

  • 데이터를 정렬한 후 중앙에 위치한 값.

4. 최빈값

  • 가장 자주 나타나는 값.

분산도

1. 분산(Variance)

  • 평균으로부터 데이터가 얼마나 떨어져 있는지를 측정.
    $$\sigma^2 = \frac{\sum (x_i - \bar{x})^2}{n}$$

2. 표준편차(Standard Deviation)

  • 분산의 제곱근.
    $$\sigma = \sqrt{\sigma^2}$$

3. 사분위 범위(IQR)

  • IQR = Q3 - Q1
    이상치:
    • $$\text{이상치 최소값} = Q1 - 1.5 \cdot IQR$$
    • $$\text{이상치 최대값} = Q3 + 1.5 \cdot IQR$$

4. 변동계수(CV)

  • $$\text{CV} = \frac{\text{표준편차}}{\text{평균}}$$
    → 상대적인 변동성 비교.

기술통계

1. 모집단 vs 표본

  • 모집단: 전체 데이터 집합.
  • 표본: 모집단에서 선택된 일부 데이터.

2. 정규분포

  • 평균을 중심으로 좌우 대칭인 분포.
  • 68%-95%-99.7% 규칙.

3. 중심극한정리

  • 표본 크기가 커질수록 표본 평균이 정규분포를 따름.

통계 실험과 유의성 검정

1. 가설검정

  • 귀무가설(H₀): 차이가 없음.
  • 대립가설(H₁): 차이가 있음.
  • P-값: $P < 0.05$ → 귀무가설 기각.

2. 단측검정과 양측검정

  • 단측검정: 한쪽 방향의 차이만 검정.
  • 양측검정: 양쪽 방향의 차이를 모두 검정.

3. t검정과 ANOVA

  • t검정: 두 집단 평균 비교.
  • ANOVA: 세 집단 이상 평균 비교.
    $$F = \frac{\text{집단 간 분산}}{\text{집단 내 분산}}$$

선형회귀분석

1. 단순 선형회귀

  • 회귀식: $$y = b_0 + b_1x$$

2. 다중 선형회귀

  • 회귀식: $$y = b_0 + b_1x_1 + b_2x_2 + \ldots + b_nx_n$$
  • 결정계수($R^2$): 모델의 설명력.

3. 회귀분석 가정

  1. 선형성
  2. 독립성
  3. 정규성
  4. 다중공선성 없음
  5. 등분산성

분포 통계량 계산 및 왜도 분석

import numpy as np
import scipy.stats as stats
from collections import Counter

# 데이터 예제 (대칭 분포, 양의 왜도 분포, 음의 왜도 분포)
data_symmetric = [1, 2, 3, 4, 5, 6, 7]
data_positive_skew = [1, 2, 2, 3, 3, 3, 4, 5, 10]
data_negative_skew = [1, 1, 2, 2, 3, 3, 3, 4, 10]

def calculate_statistics(data):
    mean = np.mean(data)  # 평균
    median = np.median(data)  # 중위수
    mode = Counter(data).most_common(1)[0][0]  # 최빈수 (가장 많이 나타나는 값)
    skewness = stats.skew(data)  # 왜도 계산

    print("데이터:", data)
    print(f"평균: {mean}")
    print(f"중위수: {median}")
    print(f"최빈수: {mode}")
    print(f"왜도: {skewness}")
    print("대칭 분포 여부:", "예" if skewness == 0 else "아니오")
    print("-" * 30)

# 대칭 분포
print("대칭 분포")
calculate_statistics(data_symmetric)

# 양의 왜도 분포
print("양의 왜도 분포")
calculate_statistics(data_positive_skew)

# 음의 왜도 분포
print("음의 왜도 분포")
calculate_statistics(data_negative_skew)

 

마무리

대푯값, 분산도, 가설검정, 그리고 회귀분석에 대해서 알아 보았다.

'프로그래밍 > AI' 카테고리의 다른 글

Computational Thinking  (0) 2024.12.06
통계학(6) 공분산 행렬  (0) 2024.12.02
통계학(4) 변수와 척도(Variables & Scales)  (1) 2024.12.02
통계학(3) 통계적 확률  (1) 2024.12.02
통계학(2) 확률론(Probability Theory)  (0) 2024.12.02