데이터 세트가 일반 distributet 인 경우 테스트를 위해 scipy에서 normaltest를 사용해야합니다. 하지만 난 어떤 좋은 예제를 찾는 것 같습니다 scipy.stats.normaltest
을 사용하는 방법.Scipy Normaltest 어떻게 사용됩니까?
내 데이터 세트에는 100 개가 넘는 값이 있습니다.
데이터 세트가 일반 distributet 인 경우 테스트를 위해 scipy에서 normaltest를 사용해야합니다. 하지만 난 어떤 좋은 예제를 찾는 것 같습니다 scipy.stats.normaltest
을 사용하는 방법.Scipy Normaltest 어떻게 사용됩니까?
내 데이터 세트에는 100 개가 넘는 값이 있습니다.
In [12]: import scipy.stats as stats
In [13]: x = stats.norm.rvs(size = 100)
In [14]: stats.normaltest(x)
Out[14]: (1.627533590094232, 0.44318552909231262)
normaltest
는 카이 제곱 통계의 2 튜플과 관련된 p- 값을 반환합니다. x
이 정규 분포에서 나온 귀무 가설을 감안할 때, p 값은 큰 (또는 큰) 카이 제곱 통계가 나타날 확률을 나타냅니다.
p-val이 매우 작 으면 데이터가 정규 분포에서 왔을 가능성이 낮음을 의미합니다. 예 :
In [15]: y = stats.uniform.rvs(size = 100)
In [16]: stats.normaltest(y)
Out[16]: (31.487039026711866, 1.4543748291516241e-07)
처음에는 scipy.stats.normaltest가 거의 동일하다는 것을 알았습니다. mstats 라이브러리는 마스크 된 배열에 사용됩니다. 값을 유효하지 않은 것으로 표시하고 계산에 포함시키지 않는 배열.
import numpy as np
import numpy.ma as ma
from scipy.stats import mstats
x = np.array([1, 2, 3, -1, 5, 7, 3]) #The array needs to be larger than 20, just an example
mx = ma.masked_array(x, mask=[0, 0, 0, 1, 0, 0, 0])
z,pval = mstats.normaltest(mx)
if(pval < 0.055):
print "Not normal distribution"
"전통적으로, 통계, 당신은 귀무 가설을 거부 0.05 에의 p 값이 필요합니다." - http://mathforum.org/library/drmath/view/72065.html
왜 '<0.05'대신 '<0.055'입니까? – Olli
p-val이 매우 작 으면 데이터가 정규 분포에서 왔을 가능성이 낮음을 의미합니다. 0.05가 표준 임계 값이지만 0.055 또는 다른 것과 같은 확실성을 올릴 수 있다고 확신하는 것이 더 중요합니다. 예스라고 말하는 것에 대한 문턱은 정상적인 분포입니다. –
빠른 답변 주셔서 감사합니다. –
여기서 "매우 작은"양을 어떻게 계량합니까? – AmanArora
임의 선택입니다 : http://stats.stackexchange.com/a/55693/842. 통계 테스트를 적용하기 전에 귀하의 significance 수준 *을 결정하십시오. – unutbu