[통계] 자유도?!

밍키·2023년 9월 7일
0

1. 자유도란?

자유도(degree of freedom)는 통계학에서 매우 중요한 개념입니다. 이는 어떤 통계적 추정이나 모델링을 할 때, 데이터 내에서 자유롭게 변할 수 있는 값의 개수를 의미합니다. 다시 말해, 자유도는 변수들 사이의 제약 조건을 고려한 후 남는 '독립적인' 정보의 양입니다.

예를 들어, 5개의 숫자가 있고 그 평균이 10이라고 가정해 봅시다. 만약 4개의 숫자가 각각 9, 10, 11, 12라면, 마지막 숫자는 자동으로 8이 되어야 평균이 10이 됩니다. 이 경우, 처음 4개의 숫자를 자유롭게 선택할 수 있지만, 마지막 숫자는 선택의 여지가 없습니다. 따라서 이 데이터 세트의 자유도는 4가 됩니다.

t 분포에서 자유도는 보통 ( n - 1 )로 표현되며, ( n )은 샘플 크기입니다. 이 자유도 값이 크면 t 분포는 정규 분포에 가까워지고, 작으면 더 넓은 '꼬리'를 가지게 됩니다. 자유도가 높을수록 t 분포는 모집단의 정규 분포를 더 정확하게 추정할 수 있습니다.

자유도가 다른 t 분포를 비교할 때, 자유도가 높은 분포는 꼬리가 덜 두껍고, 중심 부근의 확률이 더 높아집니다. 이는 데이터가 많을수록 더 정확한 추정이 가능하다는 통계적 원칙을 반영한 것입니다.

2. 파이썬으로 자유도 개념 확인하기

파이썬 코오드는 다음과 같다.
자유도가 변화함에 따라 데이터의 분포가 달라지는 것을 확인할 수 있었다.

# 자유도 설정 (예: 10)
df = 10

# PDF (확률밀도함수) 계산 및 그래프 그리기
x = np.linspace(-5, 5, 1000)
pdf_vals = t.pdf(x, df)

plt.figure(figsize=(15, 5))
plt.subplot(1, 3, 1)
plt.title(f"t-distribution PDF with df={df}")
plt.xlabel("x")
plt.ylabel("Probability Density")
plt.plot(x, pdf_vals)
plt.grid(True)

# CDF (누적분포함수) 계산 및 그래프 그리기
cdf_vals = t.cdf(x, df)

plt.subplot(1, 3, 2)
plt.title(f"t-distribution CDF with df={df}")
plt.xlabel("x")
plt.ylabel("Cumulative Probability")
plt.plot(x, cdf_vals)
plt.grid(True)


# 랜덤 샘플 생성 (예: 1000개)
random_samples = t.rvs(df, size=1000)

plt.subplot(1, 3, 3)
plt.title(f"Random Samples from t-distribution with df={df}")
plt.hist(random_samples, bins=30, density=True)
plt.grid(True)
plt.show()

자유도 10

자유도 5

자유도 30

profile
대한민국 4차 산업의 역군을 꿈꾸며.

0개의 댓글