Necesito usar normaltest en scipy para probar si el conjunto de datos es normal. Pero no puedo encontrar ningún buen ejemplo de cómo usar scipy.stats.normaltest
.Scipy Normaltest ¿cómo se usa?
Mi conjunto de datos tiene más de 100 valores.
Necesito usar normaltest en scipy para probar si el conjunto de datos es normal. Pero no puedo encontrar ningún buen ejemplo de cómo usar scipy.stats.normaltest
.Scipy Normaltest ¿cómo se usa?
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 2-tupla de la estadística de chi-cuadrado, y el valor p asociado. Dada la hipótesis nula de que x
proviene de una distribución normal, el valor p representa la probabilidad de que se vea una estadística chi-cuadrado que sea grande (o más grande).
Si el p-val 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 usa para matrices enmascaradas. Arrays donde puede marcar los valores como inválidos y no incluirlos 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 las estadísticas, es necesario un valor de p menor de 0,05 a rechazar la hipótesis nula." - http://mathforum.org/library/drmath/view/72065.html
¿Por qué '<0.055' en lugar de' <0.05'? – Olli
Si el p-val es muy pequeño, significa que es poco probable que los datos provengan de una distribución normal. 0.05 es el umbral estándar, pero para estar más seguro, puede aumentar la certeza como 0.055 o algo más. Es solo un umbral para decir que sí, es una distribución normal. –
Gracias por la respuesta rápida. –
¿Cómo cuantificamos "muy pequeño" aquí? – AmanArora
Es una elección arbitraria: http://stats.stackexchange.com/a/55693/842. Solo asegúrese de decidir cuál es su nivel de significación * antes * de aplicar una prueba estadística. – unutbu