Statistica Elementare con Numpy

Dati in un array numpy.

Dati al quadrato

Il valor medio o media di un insieme di dati $x = [x_1,\cdots,x_n]$ è $$ <x> = \frac{\sum_{i=1}^n x_i}{n} $$ Media utilizzando solo la funzione sum

Media utilizzando la funzione mean di numpy

La varianza di un insieme di dati $x = [x_1,\cdots,x_n]$ è $$ \sigma^2 = \, <(x - <x>)^2> \, = \frac{\sum_{i=1}^n (x_i-<x>)^2}{n} $$ Varianza calcolata espicitamente

Varianza empirica

Varianza calcolata usando la funzione var di numpy (divide per N).

Deviazione standard, $\sigma = \sqrt{\sigma^2}$, calcolata dalla varianza e usando la funzione std di numpy

Selezione dei dati a meno di una deviazione standard sigma da media1

Istogramma delle frequenze

I patches sono i rettangoli (blu in questo caso) che vengono usati per disegnare l'istogramma.

Distribuzione gaussiana casuale con stessa media e deviazione standard di quella osservata. Istogramma delle frequenze.

Dall'array bins che contiene gli estremi dei bin costruiamo l'array dei punti medi dei bin (bins + halfBinWidth), eliminando l'ultimo elemento (np.delete( ,-1)).

Controlliamo che l'area totale dei nostri bin sia circa uno.

Frequenze osservate vs frequenze attese: test del Chi-quadro.

Numeri Casuali

Compatibility functions
=============================================================================
rand                 Uniformly distributed values.
randn                Normally distributed values.
ranf                 Uniformly distributed floating point numbers.
randint              Uniformly distributed integers in a given range.
=============================================================================

Si può fissare il "seme" del generatore di numeri casuali in modo da ottenere la stessa sequenza più volte. Utile qundo si vogliono capire le analisi statistiche fatte da qualcun altro. Si usa np.random.seed.