HOWTO · NumPy

NumPy 신뢰 구간

이 튜토리얼에서는 Confidence Interval이 무엇이며 NumPy를 사용하여 Python에서 구현하는 방법에 대해 설명합니다.

이 페이지의 내용

평균에 대한 신뢰 구간은 데이터 분석 분야에서 데이터에 널리 활용되는 통계의 필수 부분입니다. Python은 데이터 분석 분야의 전문가가 사용하는 가장 인기 있는 프로그래밍 언어 중 하나이며 배열에 대한 신뢰구간을 구현할 수 있습니다.

이 튜토리얼에서는 Confidence Interval에 대해 설명하고 Python에서 이를 구현하는 데 사용할 수 있는 다양한 접근 방식을 보여줍니다.

신뢰 구간

평균에 대한 신뢰 구간은 모집단을 정확하게 반영할 수 있는 값을 알아낼 것으로 예상되는 값의 범위로 정의할 수 있습니다.

신뢰구간 계산 공식은 아래와 같습니다.

Confidence Interval =  x̄  +/-  t*(s/√n)

이 공식의 매개변수는 아래에 설명되어 있습니다.

  1. - 표본 데이터의 평균입니다.
  2. t - 신뢰 수준에 대한 해당 t-값입니다.
  3. s - 샘플 데이터의 표준 편차.
  4. 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)
  1. alpha - 선택한 범위에서 랜덤 변수를 얻을 확률을 정의합니다.
  2. length - 주어진 데이터 세트의 길이를 나타냅니다.
  3. loc - 위치 매개변수 값을 나타냅니다.
  4. 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)
  1. alpha - 선택한 범위에서 랜덤 변수를 얻을 확률을 정의합니다.
  2. loc - 위치 매개변수 값을 나타냅니다.
  3. 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)