Python에서 f 테스트를 수행하는 방법


F 테스트는 두 모집단 분산이 동일한지 여부를 테스트하는 데 사용됩니다. 검정의 귀무가설과 대립가설은 다음과 같습니다.

H 0 : σ 1 2 = σ 2 2 (모집단 분산은 동일함)

H 1 : σ 1 2 ≠ σ 2 2 (모집단 분산이 동일 하지 않음 )

이 튜토리얼에서는 Python에서 F 테스트를 수행하는 방법을 설명합니다.

예: Python의 F-테스트

다음 두 가지 예가 있다고 가정합니다.

 x = [18, 19, 22, 25, 27, 28, 41, 45, 51, 55]
y = [14, 15, 15, 17, 18, 22, 25, 25, 27, 34]

다음 함수를 사용하여 F-검정을 수행하여 이러한 표본을 가져온 두 모집단의 분산이 동일한지 여부를 확인할 수 있습니다.

 import numpy as np

#define F-test function
def f_test(x, y):
    x = np.array(x)
    y = np.array(y)
    f = np.var(x, ddof=1)/np.var(y, ddof=1) #calculate F test statistic
    dfn = x.size-1 #define degrees of freedom numerator
    dfd = y.size-1 #define degrees of freedom denominator
    p = 1-scipy.stats.f.cdf(f, dfn, dfd) #find p-value of F test statistic
    return f,p

#perform F-test
f_test(x, y)

(4.38712, 0.019127)

F-검정 통계량은 4.38712 이고 해당 p-값은 0.019127 입니다. 이 p-값은 0.05보다 작으므로 귀무가설을 기각합니다. 이는 두 모집단 분산이 동일 하지 않다고 말할 수 있는 충분한 증거가 있음을 의미합니다.

코멘트

  • F 검정 통계량은 s 1 2 /s 2 2 로 계산됩니다. 기본적으로 numpy.var은 모집단 분산을 계산합니다. 표본 분산을 계산하려면 ddof=1 을 지정해야 합니다.
  • p 값은 분자의 자유도 = n 1 -1이고 분모의 자유도 = n 2 -1인 분포 F의 1 – cdf에 해당합니다.
  • 이 함수는 첫 번째 표본의 분산이 두 번째 표본의 분산보다 큰 경우에만 작동합니다. 따라서 두 예제를 모두 설정하여 함수와 함께 작동하도록 하세요.

F 테스트를 사용해야 하는 경우

F-검정은 일반적으로 다음 질문 중 하나에 답하는 데 사용됩니다.

1. 두 개의 표본이 등분산 모집단에서 추출되었습니까?

2. 새로운 처리 또는 프로세스가 현재 처리 또는 프로세스의 가변성을 감소시키는가?

관련 항목: R에서 F 테스트를 수행하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다