2012-10-11 19 views

risposta

56
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 restituisce un 2-tuple della statistica chi-quadrato, e il p-value associato. Data l'ipotesi nulla che x provenga da una distribuzione normale, il valore p rappresenta la probabilità che una statistica chi-quadrato che grande (o più grande) possa essere vista.

Se p-val è molto piccolo, significa che è improbabile che i dati provengano da una distribuzione normale. Ad esempio:

In [15]: y = stats.uniform.rvs(size = 100) 

In [16]: stats.normaltest(y) 
Out[16]: (31.487039026711866, 1.4543748291516241e-07) 
+0

Grazie per la rapida risposta. –

+1

Come si quantifica "molto piccolo" qui? – AmanArora

+1

È una scelta arbitraria: http://stats.stackexchange.com/a/55693/842. Assicurati solo di decidere quale sia il tuo livello di signficance * prima * applicando un test statistico. – unutbu

10

Per prima cosa ho scoperto che scipy.stats.normaltest è quasi lo stesso. La libreria mstats viene utilizzata per gli array mascherati. Array in cui è possibile contrassegnare i valori come non validi e non presi nel calcolo.

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" 

"Tradizionalmente, nelle statistiche, è necessario un valore di p inferiore a 0,05 per rifiutare l'ipotesi nulla." - http://mathforum.org/library/drmath/view/72065.html

+5

Perché '<0.055' anziché' <0.05'? – Olli

+1

Se p-val è molto piccolo, significa che è improbabile che i dati provengano da una distribuzione normale. 0.05 è la soglia standard, ma per essere più certi è possibile aumentare la certezza come 0.055 o qualcos'altro. È solo una soglia per dire si è una distribuzione normale. –

Problemi correlati