Scipy Normaltest ¿Cómo se usa?

Necesito usar normaltest en scipy para probar si el conjunto de datos es distributet normal. Pero parece que no puedo encontrar ningún buen ejemplo de cómo usar scipy.stats.normaltest .

Mi conjunto de datos tiene más de 100 valores.

 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 devuelve una tupla de 2 del estadístico chi-cuadrado y el valor p asociado. Dada la hipótesis nula de que x provenía de una distribución normal, el valor p representa la probabilidad de que se vea una estadística de ji cuadrado de grande (o mayor).

Si el valor de p es muy pequeño, significa que es poco probable que los datos provengan de una distribución normal. Por ejemplo:

 In [15]: y = stats.uniform.rvs(size = 100) In [16]: stats.normaltest(y) Out[16]: (31.487039026711866, 1.4543748291516241e-07) 

Primero descubrí que scipy.stats.normaltest es casi lo mismo. La biblioteca mstats se utiliza para matrices enmascaradas. Matrices en las que puede marcar valores como no válidos y no incluidos en el cálculo.

 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" 

"Tradicionalmente, en estadística, se necesita un valor de p inferior a 0.05 para rechazar la hipótesis nula". - http://mathforum.org/library/drmath/view/72065.html