NumPy 신뢰 구간
평균에 대한 신뢰 구간은 데이터 분석 분야에서 데이터에 널리 활용되는 통계의 필수 부분입니다. Python은 데이터 분석 분야의 전문가가 사용하는 가장 인기 있는 프로그래밍 언어 중 하나이며 배열에 대한 신뢰구간을 구현할 수 있습니다.
이 튜토리얼에서는 Confidence Interval에 대해 설명하고 Python에서 이를 구현하는 데 사용할 수 있는 다양한 접근 방식을 보여줍니다.
신뢰 구간
평균에 대한 신뢰 구간은 모집단을 정확하게 반영할 수 있는 값을 알아낼 것으로 예상되는 값의 범위로 정의할 수 있습니다.
신뢰구간 계산 공식은 아래와 같습니다.
Confidence Interval = x̄ +/- t*(s/√n)
이 공식의 매개변수는 아래에 설명되어 있습니다.
x̄
- 표본 데이터의 평균입니다.t
- 신뢰 수준에 대한 해당 t-값입니다.s
- 샘플 데이터의 표준 편차.n
- 샘플 데이터의 크기입니다.
이제 Python에서 Confidence Intervals를 계산하는 데 사용할 수 있는 다양한 접근 방식으로 이동해 보겠습니다. 두 가지 주요 방법을 사용할 수 있습니다. 둘 다 Python의 SciPy
라이브러리에서 나오는 기능이 필요합니다.
Python의 SciPy
라이브러리는 Scientific Python
의 약자로 기술 및 과학 컴퓨팅에 도움이 되는 여러 기능을 제공하는 데 사용됩니다. 라이브러리의 SciPy.stats
하위 모듈은 Python에서 통계를 처리하는 다양한 기능을 제공합니다.
T-분포를 사용하여 Python에서 신뢰구간 계산하기
SciPy.stats
라이브러리는 t-분포 접근 방식을 사용하여 신뢰 구간을 계산하는 데 사용할 수 있는 t.interval()
함수를 제공합니다.
t-분포 접근 방식은 일반적으로 데이터에 30개 미만의 요소(n<30
)가 있는 더 작은 데이터 세트를 처리할 때 사용할 수 있습니다.
t.interval()
함수에 대한 구문 및 매개변수 설명은 아래에 설명되어 있습니다.
scipy.stats.t.interval(alpha, length, loc, scale)
alpha
- 선택한 범위에서 랜덤 변수를 얻을 확률을 정의합니다.length
- 주어진 데이터 세트의 길이를 나타냅니다.loc
- 위치 매개변수 값을 나타냅니다.scale
- 스케일 파라미터 값을 나타냅니다.
다음 코드는 1년 동안 20명의 축구 선수가 득점한 골을 가져와서 t-분포 접근 방식을 사용하여 주어진 데이터에 대한 90% 신뢰 구간을 계산합니다.
import numpy as np
import scipy.stats as st
# data of goals scored by 20 footballers in a calendar year
fb_data = [10, 11, 10, 14, 16, 24, 10, 6, 8, 10, 11, 27, 28, 21, 13, 10, 6, 7, 8, 10]
# create 90% confidence interval
print(
st.t.interval(
alpha=0.90, df=len(fb_data) - 1, loc=np.mean(fb_data), scale=st.sem(fb_data)
)
)
위의 코드는 다음 출력을 제공합니다.
(10.395704943723088, 15.60429505627691)
정규 분포를 사용하여 Python에서 신뢰 구간 계산
동일한 SciPy.stats
라이브러리는 정규 분포 접근 방식을 사용하여 신뢰 구간을 계산하는 데 사용할 수 있는 norm.interval()
함수도 제공합니다.
이 접근 방식은 일반적으로 데이터 세트가 비교적 큰 경우에 사용됩니다. 즉, 요소 수가 30개 이상(n>30
)입니다.
norm.interval()
함수에 대한 구문 및 매개변수 설명은 아래에 설명되어 있습니다.
scipy.stats.norm.interval(alpha, loc, scale)
alpha
- 선택한 범위에서 랜덤 변수를 얻을 확률을 정의합니다.loc
- 위치 매개변수 값을 나타냅니다.scale
- 스케일 파라미터 값을 나타냅니다.
다음 코드는 80개 요소로 구성된 데이터 세트의 예를 취하고 정규 분포 접근 방식을 사용하여 90% 신뢰 구간을 계산합니다.
import numpy as np
import scipy.stats as st
fb_data = np.random.randint(15, 20, 80)
# create 90% confidence interval
print(st.norm.interval(alpha=0.90, loc=np.mean(fb_data), scale=st.sem(fb_data)))
위의 코드는 다음 출력을 제공합니다.
(16.763325839308074, 17.286674160691923)
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn