import numpy as np
import scipy.stats
def mean_confidence_interval(data, confidence=0.95):
a = 1.0 * np.array(data)
n = len(a)
m, se = np.mean(a), scipy.stats.sem(a)
h = se * scipy.stats.t.ppf((1 + confidence) / 2., n-1)
return m, m-h, m+h
이런 방식으로 가능합니다.
파이썬 3.8부터 표준 라이브러리는 통계 모듈의 일부로 NormalDist 객체를 제공합니다.
from statistics import NormalDist
def confidence_interval(data, confidence=0.95):
dist = NormalDist.from_samples(data)
z = NormalDist().inv_cdf((1 + confidence) / 2.)
h = dist.stdev * z / ((len(data) - 1) ** .5)
return dist.mean - h, dist.mean + h
설명하면
데이터 샘플(NormalDist.from_samples(데이터)에서 NormalDist 개체를 만듭니다. 이 개체는 NormalDist.mean 및 NormalDist.stdev를 통해 샘플의 평균 및 표준 편차에 액세스할 수 있습니다.
누적 분포 함수(inv_cdf)의 역수를 사용하여 주어진 신뢰도에 대한 표준 정규 분포(NormalDist()로 표시)를 기반으로 Z-점수를 계산합니다.
표본의 표준 편차 및 평균을 기반으로 신뢰 구간을 생성합니다.
© 2023 OneMinuteCode. All rights reserved.