Python에서 jarque-bera 테스트를 수행하는 방법
Jarque-Bera 검정은 표본 데이터가 정규 분포에 해당하는 왜도와 첨도를 나타내는지 여부를 확인하는 적합도 검정입니다.
Jarque-Bera 검정 통계량은 항상 양수이며 0에서 멀어질수록 표본 데이터가 정규 분포를 따르지 않는다는 증거가 더 많습니다.
이 튜토리얼에서는 Python에서 Jarque-Bera 테스트를 수행하는 방법을 설명합니다.
Python에서 Jarque-Bera 테스트를 수행하는 방법
Python에서 Jarque-Bera 테스트를 수행하려면 다음 구문을 사용하는 Scipy 라이브러리의 jarque_bera 함수를 사용할 수 있습니다.
jarque_bera(x)
금:
- x: 관측치 표
이 함수는 검정 통계량과 해당 p-값을 반환합니다.
실시예 1
정규 분포를 따르는 5,000개의 값 목록에 대해 Jarque-Bera 테스트를 수행한다고 가정해 보겠습니다.
import numpy as np import scipy.stats as stats #generate array of 5000 values that follows a standard normal distribution np.random.seed(0) data = np.random.normal(0, 1, 5000) #perform Jarque-Bera test stats.jarque_bera(data) (statistic=1.2287, pvalue=0.54098)
검정 통계량은 1.2287 이고 해당 p-값은 0.54098 입니다. 이 p-값은 0.05 이상이므로 귀무가설을 기각할 수 없습니다. 이러한 데이터가 정규 분포와 크게 다른 왜도 및 첨도를 보인다고 말할 수 있는 충분한 증거가 없습니다.
우리가 생성한 데이터는 정규 분포를 따르는 5,000개의 무작위 변수로 구성되어 있으므로 이 결과는 놀라운 일이 아닙니다.
실시예 2
이제 균일 분포를 따르는 5,000개의 값 목록에 대해 Jarque-Bera 테스트를 수행한다고 가정합니다.
import numpy as np import scipy.stats as stats #generate array of 5000 values that follows a uniform distribution np.random.seed(0) data = np.random.uniform(0, 1, 5000) #perform Jarque-Bera test stats.jarque_bera(data) (statistic=300.1043, pvalue=0.0)
검정 통계량은 300.1043 이고 해당 p-값은 0.0 입니다. 이 p-값은 0.05보다 작으므로 귀무가설을 기각합니다. 따라서 우리는 이러한 데이터가 정규 분포와 상당히 다른 왜도와 첨도를 보인다고 주장할 수 있는 충분한 증거를 가지고 있습니다.
우리가 생성한 데이터는 정규 분포와 매우 다른 왜도와 첨도를 갖는 균일 분포를 따르는 5,000개의 무작위 변수로 구성되어 있으므로 이 결과는 놀라운 일이 아닙니다.
Jarque-Bera 테스트를 사용하는 경우
Jarque-Bera 검정은 일반적으로 다른 정규성 검정(예: Shapiro-Wilk 검정)을 신뢰할 수 없는 대규모 데이터 세트(n > 2,000)에 사용됩니다.
이는 데이터 세트가 정규 분포를 따른다고 가정하는 분석을 수행하기 전에 사용하기에 적합한 테스트입니다. Jarque-Bera 테스트를 통해 이 가정이 충족되는지 여부를 알 수 있습니다.