logo

평균의 신뢰구간

평균의 오차범위

  • 표본평균으로 모집단평균을 추정할 때, 95% 신뢰수준의 오차범위는 다음 식으로 근사
E≈1.96n​s​
  • s: 개별 관측값이 얼마나 흩어져 있는지를 나타내는 표본표준편차
  • n: 표본에 포함된 관측값의 수
  • s/n​: 표본평균의 표준오차 추정치
    • 같은 모집단에서 크기가 같은 표본을 반복해서 뽑을 때 표본평균이 흔들리는 정도
    • 개별 값의 표준편차 s와 평균의 표준오차 s/n​는 서로 다른 값
    • 독립적인 관측값 n개의 평균은 개별 값의 분산보다 분산이 1/n로 감소
    • 표준편차는 분산의 제곱근이므로 평균의 표준편차는 개별 값의 표준편차를 n​으로 나눈 값
  • 1.96: 표준정규분포의 가운데 약 95%가 −1.96과 1.96 사이에 포함된다는 데서 나온 값
  • 따라서 표본평균 xˉ를 중심으로 표준오차의 1.96배를 양쪽으로 더하고 빼서 신뢰구간 구성
xˉ±1.96n​s​
  • 같은 표준편차에서는 표본 크기가 클수록 오차범위 감소
  • 같은 표본 크기에서는 표준편차가 클수록 오차범위 증가
  • 적용 조건: 관측값을 독립적으로 무작위 추출하고, 표본평균의 표집분포를 정규분포로 근사할 수 있는 상황
  • 모집단표준편차 σ를 알면 s 대신 σ 사용
  • 정규모집단에서 σ를 모르고 s로 추정하는 경우에는 t분포의 임계값 사용
    • 표본이 크면 t분포의 95% 임계값이 1.96에 가까워지므로 위의 식으로 근사

실습 준비

패키지를 설치

pip install pandas seaborn matplotlib pingouin statsmodels openpyxl

실습 파일을 불러오기

import pandas as pd
df = pd.read_excel("ship.xlsx")

평균의 신뢰구간

🤖 AI 프롬프트
ship.xlsx를 열어서 pingouin을 이용해 speed 평균의 95%, 99% 신뢰구간을 구하고 평균±오차범위 형태로 나타내줘.
  • 평균, 중앙값, 비율 등 다양한 모수에 대해 신뢰구간을 구할 수 있음
  • 평균의 경우에는 이론적으로 신뢰구간을 비교적 간단히 구할 수 있음
  • pingouin의 ttest 결과에서 CI95는 평균의 95% 신뢰구간을 의미
import pingouin as pg

mean = df.speed.mean()
mean
실행 결과
np.float64(18.305999999999997)
pg.ttest(df.speed, 0, confidence=0.95)
실행 결과
                T  dof alternative         p_val            CI95   cohen_d  \
T_test  46.579676   99   two-sided  3.853150e-69  [17.53, 19.09]  4.657968   

        power       BF10  
T_test    1.0  2.609e+65  
  • 선박의 표본평균 속도는 약 18.306
  • CI95는 [17.53, 19.09]이므로 모집단의 평균 속도를 17.53에서 19.09 사이로 추정
  • 같은 방식으로 표집과 신뢰구간 계산을 반복하면 만들어진 구간의 약 95%가 실제 평균 속도를 포함함

평균±오차범위로 표기

  • 신뢰구간은 평균을 중심으로 양쪽에 오차범위만큼 떨어진 구간
  • 오차범위 = (상한 - 하한) / 2
lower, upper = pg.ttest(df.speed, 0, confidence=0.95)["CI95"].iloc[0]
margin = (upper - lower) / 2  # 구간 폭의 절반이 오차범위
print(f"{mean:.2f} ± {margin:.2f}")
실행 결과
18.31 ± 0.78
  • 95% 신뢰수준에서 평균 속도는 18.31 ± 0.78

99% 신뢰수준

  • confidence=0.99로 지정하면 99% 신뢰구간을 계산. 결과의 열 이름은 CI99
pg.ttest(df.speed, 0, confidence=0.99)
실행 결과
                T  dof alternative         p_val  \
T_test  46.579676   99   two-sided  3.853150e-69   

                                            CI99   cohen_d  power       BF10  
T_test  [17.273812090856765, 19.338187909143226]  4.657968    1.0  2.609e+65  
lower, upper = pg.ttest(df.speed, 0, confidence=0.99)["CI99"].iloc[0]
margin = (upper - lower) / 2
print(f"{mean:.2f} ± {margin:.2f}")
실행 결과
18.31 ± 1.03
  • 99% 신뢰수준에서 평균 속도는 18.31 ± 1.03. 구간은 약 17.27에서 19.34
  • 신뢰수준을 95%에서 99%로 높이면 오차범위가 0.78에서 1.03으로 넓어짐

표본 크기를 절반으로 줄이면

  • 선박 100척 중 50척만 무작위로 뽑아 95% 신뢰구간을 다시 계산
half = df.sample(frac=0.5, random_state=0)  # 100척 중 50척을 무작위로 선택
lower, upper = pg.ttest(half.speed, 0, confidence=0.95)["CI95"].iloc[0]
margin = (upper - lower) / 2
print(f"{half.speed.mean():.2f} ± {margin:.2f}")
실행 결과
17.97 ± 1.09
  • 같은 95% 신뢰수준에서 오차범위가 0.78(100척)에서 1.09(50척)로 넓어짐
  • 오차범위는 n​에 반비례하므로 표본 크기가 절반이면 약 2​≈1.41배. 0.78×1.41≈1.10
  • 표본평균도 18.31에서 17.97로 달라짐. 어떤 선박이 뽑히느냐에 따라 생기는 표집 오차

퀴즈

문제 1 / 3맞음: 0힌트: 0틀림: 0채점중: 0남음: 3

평균의 95% 신뢰구간 xˉ±1.96n​s​에서 s/n​이 나타내는 것은?

  • ○개별 관측값이 흩어진 정도인 표본표준편차
  • ○표본평균이 표본마다 흔들리는 정도인 표준오차
  • ○표본평균과 모평균의 차이인 표집 오차
  • ○신뢰수준 95%에 해당하는 표준정규분포의 임계값

퀴즈를 풀려면 대화형 기능을 불러와야 합니다.

Previous
신뢰구간