💡 카이제곱 분포

1) 카이제곱 분포 : 범주형 데이터의 독립성 검정이나 적합도 검정에 사용되는 분포
- 자유도에 따라 모양이 다름
- 상관관계나 인과관계를 판별하고자 하는 원인의 독립변수가 '완벽하게 서로 다른 질적 자료'일 때 활용
예: 성별이나 나이에 따른 선거 후보 지지율
✅ 카이제곱 분포에서도 "데이터의 개수가 많아질수록 정규분포를 따른다!"
카이제곱 분포 : 어떻게 사용되나?
1) 독립성 검정이나 적합도 검정이 필요할 때
- 독립성 검정 : 두 범주형 변수 간의 관계 확인
- 예: 성별과 직업 선택 간의 독립성을 검토 | 성별이 후보 지지율에 영향을 끼치는지 검토
- 적합도 검정 : 관측한 값들이 특정 분포에 해당하는지 검정
- 예: 주사위의 각 면이 동일한 확률로 나오는지 검토 | 노란색 완두와 녹색완두가 3:1의 비율이 나오는지 검토 등
# 카이제곱분포 생성
chi2_dist = np.random.chisquare(df=2, size=1000)
# 히스토그램으로 시각화
plt.hist(chi2_dist, bins=30, density=True, alpha=0.6, color='m')
# 카이제곱분포 곡선 추가
x = np.linspace(0, 10, 100)
p = stats.chi2.pdf(x, df=2)
plt.plot(x, p, 'k', linewidth=2)
plt.title('카이제곱 분포 히스토그램')
plt.show()

💡 이항분포

1) 이항분포
- "두 가지의 결과를 가지는 실험"을 여러 번 반복했을 때 성공 횟수의 분포
- 동전의 앞면/뒷면, 성공/실패 등
- 성공 확률을 p라 할 때, 성공의 횟수를 확률적으로 타나냄! ** 실험횟수(n)와 성공확률(p)로 정의
✅ 이항분도 에서도 "데이터의 개수가 많아질수록 정규분포를 따른다."
이항분포 : 어떻게 사용될까?
- 동전 던지기 : 동전 앞면과 뒷면
- 품질 관리 : 제조업체가 제품의 불량률을 모니터링 할 때, 무작위 선택 100개의 제품 중 불량품의 수 ➡️ 이항분포를 따름
# 이항분포 생성 (예: 동전 던지기 10번 중 앞면이 나오는 횟수)
binom_dist = np.random.binomial(n=10, p=0.5, size=1000) #🔍 p는 무조건 0.5 일까?
# 히스토그램으로 시각화
plt.hist(binom_dist, bins=10, density=True, alpha=0.6, color='y')
plt.title('이항 분포 히스토그램')
plt.show()

💡 푸아송 분포

1) 푸아송 분포 : "단위 시간 또는 단위 면적 당 발생하는 사건의 수"를 모델링 할 때 사용
- 평균 발생률 λ 인 사건이 "단위 시간 또는 단위 면적 내에서 몇 번 발생"하는지
- 희귀하게 발생하는 사건의 수
푸아송 분포 : 실제로 어떻게 사용돼?
- 콜센터 : 특정 시간 동안 콜센터에서 도착하는 전화 통화의 수
- 교통사고 : 특정 도로 구간에서 일정 기간 동안 발생하는 교통사고의 수
- 문자 메세지 : 특정 시간 동안 수신되는 문자 메세지의 수
- 웹사이트 트래픽 : 특정 시간 동안 웹사이트에 도착하는 방문자의 수
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import poisson
# 푸아송 분포 파라미터 설정
lambda_value = 4 # 평균 발생률
x = np.arange(0, 15) # 사건 발생 횟수 범위
# 푸아송 분포 확률 질량 함수 계산
poisson_pmf = poisson.pmf(x, lambda_value)
# 그래프 그리기
plt.figure(figsize=(10, 6))
plt.bar(x, poisson_pmf, alpha=0.6, color='b', label=f'Poisson PMF (lambda={lambda_value})')
plt.xlabel('Number of Events')
plt.ylabel('Probability')
plt.title('Poisson Distribution')
plt.legend()
plt.grid(True)
plt.show()

📌 분포 마무리 정리

▶ 분포를 어떻게 고르면 될까?
✅ 데이터 수가 충분하다 ➡️ (무조건) 정규분포에 근사
✅ 데이터 수가 적다 ➡️ 스튜던트 t 분포
✅ 일부 데이터가 전체적으로 큰 영향을 미친다 ➡️ 롱 테일 분포 (파레토 분포)
✅ 범주형 데이터의 독립성 검정이나 적합도 검정 ➡️ 카이 제곱 분포
✅ 결과가 두 개(성공 or 실패)만 나오는 경우 ➡️ 이항 분포
✅ 특정 시간, 공간에서 발생하는 사건 ➡️ 푸아송 분포
✍️ 연습문제
1. 모집단(population)과 표본(sample)의 차이에 대한 설명으로 옳은 것을 고르세요.
- 모집단은 연구 대상 전체를 의미하고, 표본은 모집단의 일부를 의미한다.
- 모집단은 표본의 일부이며, 표본은 모집단 전체를 의미한다.
- 모집단과 표본은 같은 의미를 가진다.
- 모집단은 표본보다 항상 작다.
➡️ 정답 및 해설
더보기
정답 1번
- 모집단은 표본의 일부이며, 표본은 모집단 전체를 의미한다.
- 모집단과 표본은 같은 의미를 가진다.
- 모집단은 표본보다 항상 작다.
1) 모집단은 연구 대상 전체를 의미하고, 표본은 모집단의 일부를 의미한다.
모집단은 연구 대상 전체를 의미하고, 표본은 그 모집단에서 선택된 일부를 의미합니다.
2. 어떤 표본의 평균이 50이고, 표본 표준편차가 10인 경우, 95% 신뢰구간을 구하세요. (표본 크기는 충분히 크다고 가정)
- 95% 신뢰구간은 표본 평균 ± (1.96 * 표본 표준오차)로 계산됩니다.
- 표본 표준오차는 표준편차를 표본 크기의 제곱근으로 나눈 값입니다.
더보기
# 문제2번
# 표본 평균과 표본 표준편차 계산
sample_mean = 50
sample_std = 10
# 95% 신뢰구간 계산
conf_interval = stats.t.interval(0.95, df=len(sample)-1, loc=sample_mean, scale=sample_std/np.sqrt(len(sample)))
print(f'표본 평균: {sample_mean}')
print(f'95% 신뢰구간: {conf_interval}')
>>> 결과: 표본 평균: 50
95% 신뢰구간: (np.float64(48.015783048491315), np.float64(51.984216951508685))
5. 긴 꼬리 분포(Long Tail Distribution)의 특징으로 옳지 않은 것을 고르세요.
- 데이터의 대부분이 낮은 빈도 값을 갖는다.
- 꼬리 부분에 많은 데이터가 분포되어 있다.
- 꼬리가 길어질수록 정규분포에 가까워진다.
- 일부 항목이 매우 높은 빈도 값을 가진다.
더보기
정답 및 해설
- 정답은 3번
- 데이터의 대부분이 낮은 빈도 값을 갖는다.
- 꼬리 부분에 많은 데이터가 분포되어 있다.
- 일부 항목이 매우 높은 빈도 값을 가진다.
- 긴 꼬리 분포는 데이터의 대부분이 낮은 빈도 값을 가지며, 꼬리 부분에 많은 데이터가 분포되어 있습니다.
- 긴 꼬리 분포는 꼬리가 길어진다고 해서 정규분포에 가까워지지 않습니다.
6. 스튜던트 t 분포를 사용하는 이유는 무엇인가요?
- 표본 크기가 작을 때 사용한다.
- 모집단이 정규분포가 아닐 때 사용한다.
- 모집단 표준편차를 알 때 사용한다.
- 모집단 평균을 알 때 사용한다.
더보기
정답 및 해설
- 정답은 1번
- 모집단이 정규분포가 아닐 때 사용한다.
- 모집단 표준편차를 알 때 사용한다.
- 모집단 평균을 알 때 사용한다.
- 1) 표본 크기가 작을 때 사용한다.
- 스튜던트 t 분포는 표본 크기가 작고, 모집단 표준편차를 모를 때 사용됩니다.
끝.
'통계 (Statistics)' 카테고리의 다른 글
| [통계/세션] 세션 2회차 - 신뢰구간 | 정규분포 | 가설검정 | t분포 | t검정 (0) | 2025.09.25 |
|---|---|
| [통계/인강] 챕터2(3) - 정규분포 & 긴꼬리 분포 & 스튜던트 t 분포 (0) | 2025.09.22 |
| [통계/인강] 챕터2(2) - 표본오차와 신뢰구간 | import scipy.stats as stats | stats.t.interval (0) | 2025.09.22 |

