zenn.skin 무료버전 배포중!
자세히보기

DataScience

[Python] t분포의 신뢰구간(Confidence Interval, CI)

koosco! 2022. 10. 5. 22:01

t분포를 사용한 신뢰구간을 구해보겠습니다.

신뢰수준이 주어졌을 때, t분포의 단방향 신뢰구간은 위와 같이 구할 수 있습니다.

오른쪽에 대한 신뢰구간도 동일하게 구할 수 있습니다.

from scipy.stats import t
from typing import Tuple
from math import sqrt
from numpy import inf

def one_side_interval(x_bar: float, s: float, n: int, alpha: float,
                      lower: bool=True) -> Tuple[float, float]:
  if lower:
    critical_value = x_bar - t.ppf(1 - alpha, n - 1) * s / sqrt(n)
    return tuple([round(critical_value, 3), inf])
  else:
    critical_value = x_bar + t.ppf(1 + alpha, n - 1) * s / sqrt(n)
    return tuple([-inf, round(critical_value, 3)])

t.ppf를 사용하면 신뢰수준값과 자유도를 이용해 t분포의 누적함수의 역함수값을 구할 수 있습니다.

즉, 누적함수의 역함수값을 이용해 critical point(임계값)를 구할 수 있습니다.

 

동일한 방식으로 양측 신뢰구간도 구할 수 있습니다.

from scipy.stats import t
from math import sqrt
from typing import Tuple

def two_sided_interval(x_bar: float, s: float, n: int,
                       alpha: float)  -> Tuple[float, float]:
  lo_point = x_bar - t.ppf(1 - alpha / 2, n - 1) * s / sqrt(n)
  hi_point = x_bar + t.ppf(1 - alpha / 2, n - 1) * s / sqrt(n)

  return tuple(map(lambda x: round(x, 3), [lo_point, hi_point]))

'DataScience'의 다른글

  • 현재글 [Python] t분포의 신뢰구간(Confidence Interval, CI)

관련글