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' 카테고리의 다른 글
[ML] 퍼셉트론 (Perceptron) (1) | 2022.10.29 |
---|---|
[Python] 두 표본에 대한 모평균 검정 (0) | 2022.10.05 |
[Python] 통계량을 이용해 t 검정, z 검정(t-test, z-test) (0) | 2022.10.02 |
[ML] 분류모형의 평가지표(confusion matrix, accuracy, precision, sensitivity(recall), specificity, F1-score) (0) | 2022.09.02 |
[ML] MAB(Multi-Armed Bandit Algorithm, 멀티 암드 밴딧) (0) | 2022.09.02 |