통계학 - 대푯값 분산도 가설검정 회귀분석
대푯값
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. 회귀분석 가정
- 선형성
- 독립성
- 정규성
- 다중공선성 없음
- 등분산성
분포 통계량 계산 및 왜도 분석
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 |