Python에서 brown-forsythe 테스트를 수행하는 방법


일원 분산 분석은 3개 이상의 독립 그룹 평균 간에 유의미한 차이가 있는지 여부를 확인하는 데 사용됩니다.

일원 분산 분석의 가정 중 하나는 표본을 추출한 모집단의 분산이 동일하다는 것입니다.

이를 테스트하는 가장 일반적인 방법 중 하나는 다음 가정을 사용하는 통계 테스트인 Brown-Forsythe 테스트를 사용하는 것입니다.

  • H 0 : 모집단 간의 분산이 동일합니다.
  • H A : 인구 간의 차이가 동일하지 않습니다.

검정의 p-값이 특정 유의 수준(예: α = 0.05)보다 낮으면 귀무 가설을 기각하고 서로 다른 모집단 간에 분산이 동일하지 않다는 결론을 내립니다.

이 튜토리얼에서는 Python에서 Brown-Forsythe 테스트를 수행하는 방법에 대한 단계별 예를 제공합니다.

1단계: 데이터 입력

연구자들이 세 가지 다른 비료가 식물 성장의 다른 수준으로 이어지는지 여부를 알고 싶어한다고 가정해 보겠습니다.

그들은 무작위로 30개의 서로 다른 식물을 선택하고 이를 10개씩 세 그룹으로 나누고 각 그룹에 서로 다른 비료를 적용했습니다. 한 달 후에 그들은 각 식물의 높이를 측정합니다.

다음 표는 세 그룹 각각의 식물 높이를 보여줍니다.

 group1 = [7, 14, 14, 13, 12, 9, 6, 14, 12, 8]
group2 = [15, 17, 13, 15, 15, 13, 9, 12, 10, 8]
group3 = [6, 8, 8, 9, 5, 14, 13, 8, 10, 9]

2단계: 데이터 요약

Brown-Forsythe 테스트를 수행하기 전에 각 그룹의 식물 측정값 분산을 계산할 수 있습니다.

 #import numpy
import numpy as np

#calculate variance of plant measurements in each group
print (np. var (group1), np. var (group2), np. var (group3))

8.69 7.81 7.0

그룹 간 차이가 다르다는 것을 알 수 있지만 이러한 차이가 통계적으로 유의 한지 확인하기 위해 Brown-Forsythe 테스트를 수행할 수 있습니다.

3단계: Brown-Forsythe 테스트 수행

Python에서 Brown-Forsythe 테스트를 수행하려면 scipy.stats.levene() 함수를 사용하고 중심이 중앙값 임을 지정할 수 있습니다.

 import scipy.stats as stats

stats. levene (group1, group2, group3, center=' median ')

LeveneResult(statistic=0.17981072555205047, pvalue=0.8364205218185946)

결과에서 우리는 다음을 관찰할 수 있습니다.

  • 테스트 통계: 0.1798
  • p-값: 0.8364

검정의 p-값이 0.05보다 큰 것으로 나타나 검정의 귀무가설을 기각하지 못합니다.

그룹 간 분산의 차이는 통계적으로 유의하지 않습니다.

다음 단계

Brown-Forsythe 검정의 귀무 가설을 기각하지 못하면 데이터에 대해 일원 분산 분석을 수행할 수 있습니다.

그러나 귀무가설을 기각하면 이는 등분산 가정이 충족되지 않는다는 것을 의미합니다. 이 경우 두 가지 옵션이 있습니다.

1. 어쨌든 일원 분산 분석을 수행합니다.

일원 분산 분석은 실제로 가장 큰 분산이 가장 작은 분산의 4배를 넘지 않는 한 동일하지 않은 분산에 대해 견고하다는 것이 밝혀졌습니다.

위 예의 2단계에서 가장 작은 분산은 7.0이고 가장 큰 분산은 8.69라는 것을 확인했습니다. 따라서 가장 큰 분산과 가장 작은 분산의 비율은 8.69 / 7.0 = 1.24 입니다.

이 값은 4보다 작기 때문에 Brown-Forsythe 테스트에서 분산이 동일하지 않은 것으로 나타나더라도 간단히 일원 분산 분석을 진행할 수 있습니다.

2. 크루스칼-월리스 테스트 수행

가장 큰 분산과 가장 작은 분산의 비율이 4보다 큰 경우 대신 Kruskal-Wallis 테스트를 수행하도록 선택할 수 있습니다. 이는 일원 분산 분석과 비모수적으로 동등한 것으로 간주됩니다.

Python에서 Kruskal-Wallis 테스트의 단계별 예를 여기에서 찾을 수 있습니다.

의견을 추가하다

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