Le funzioni statistiche fondamentali in Numpy\n",
"
Come disegnare l'istogramma delle frequenze\n",
"
Come e perchè generare numeri casuali secondo una distribuzione data\n",
"
\n",
"
\n",
"\n",
"\n",
"\n",
" \n",
"## 9.1 Nozioni fondamentali\n",
"La statistica ha un ruolo fondamentale in Fisica e in ogni campo scientifico a base sperimentale. Numpy fornisce tutti i metodi necessari per la manipolazione statistica dei dati. Affrontiamo questo argomento dopo aver introdotto Matplotlib perchè\n",
"la rappresentazione grafica dei dati è uno strumento estremamente utile.\n",
"\n",
"
\n",
" \n",
"
"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Dati in un array numpy."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"dati = np.array([1.95,1.96,1.9,1.9,1.84,1.81,2.06,1.99,1.93,1.97,2.02,1.92,1.95,1.88,1.87,2.03,1.85,2.08,1.96,1.81,\n",
" 2.07,1.91,1.79,1.99,1.97,1.95,1.96,1.93,1.83,2.09,2.02,2.09,1.84,1.86,1.96,2.03,1.93,1.9,1.94,1.87,\n",
" 1.97,1.91,1.87,1.81,2.06,2.02,1.96,1.81,1.93,2.03,1.92,1.96,1.8,1.95,1.9,2.02,2.03,1.9,2.03,2.02,\n",
" 1.96,1.9,1.98,1.87,1.9,1.89,1.84,2.06,1.93,2.06,1.93,1.93,1.9,1.9,1.9,1.93,1.86,1.83,1.96,1.81,2.03,\n",
" 1.98,1.84,1.86,1.96,1.81,1.98,1.84,1.86,1.96,1.92,1.96,1.85,2.04,2,1.92,1.9,2.15,1.94,1.92])"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"100"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"num_elementi = dati.size\n",
"num_elementi"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Dati al quadrato"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"dati_sq = dati*dati"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Il valor medio o media di un insieme di dati $x = [x_1,\\cdots,x_n]$ è\n",
"$$ = \\frac{\\sum_{i=1}^n x_i}{n} $$\n",
"Media utilizzando solo la funzione sum"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"media1 = dati.sum()/num_elementi\n",
"media1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Media utilizzando la funzione mean di numpy"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.9357"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"media2 = dati.mean()\n",
"media2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"La varianza di un insieme di dati $x = [x_1,\\cdots,x_n]$ è\n",
"$$ \\sigma^2 = \\,\\, <(x - )^2> \\,\\, = \\frac{\\sum_{i=1}^n (x_i-)^2}{n} = \\,\\, -^2$$\n",
"Varianza calcolata espicitamente"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"varianza1 = (dati_sq - 2.*media1*dati + media1*media1).sum()/num_elementi # Notice array + const*array + const\n",
"varianza1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Varianza calcolata usando la funzione var di numpy."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"varianza2 = dati.var()\n",
"varianza2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Deviazione standard, $\\sigma = \\sqrt{\\sigma^2}$, calcolata dalla varianza e usando la funzione std di numpy"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"deviazione_std1 = np.sqrt(varianza2)\n",
"deviazione_std1"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.07747586721037715"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"deviazione_std2 = dati.std()\n",
"deviazione_std2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Talvolta è utile estrarre i dati a meno di un numero dato di deviazioni standard dal valor medio, oppure quelli che distano più\n",
"di un numero dato di deviazioni standard dal valor medio. Nell'esempio selezioniamo i dati all'interno di una deviazione standard:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"dati1 = np.array([n for n in dati if np.absolute(n - media1) < deviazione_std1])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"dati1.size"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 9.2 Istogramma delle frequenze\n",
"\n",
"L'istogramma delle frequenze è sovente il modo migliore per un primo esame dei dati"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"min = dati.min()\n",
"min"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"max = dati.max()\n",
"max"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"La conoscenza del minimo e del massimo valore dei dati è utile per determinare il `range` dei bin. Il numero di bin deve essere adattato di volta in volta per aiutare l'analisi."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"nbins = 10\n",
"xrange = (1.75,2.20)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nell'esempio seguente vengono inserite tre linee verticali per segnalare il valor medio e i valori della variabile a più e meno una deviazione standard dal valor medio. "
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"nevent, bins, patches = ax.hist(dati, nbins, range=xrange)\n",
"ax.plot(np.ones(2)*media2,[0,nevent.max()+1],label=\"media\")\n",
"ax.plot(np.ones(2)*media2-deviazione_std2,[0,nevent.max()+1],label=\"media - $\\sigma$\")\n",
"ax.plot(np.ones(2)*media2+deviazione_std2,[0,nevent.max()+1],label=\"media + $\\sigma$\")\n",
"ax.legend();"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"nevent # Numero di eventi in ciacun bin"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"bins # Estremi dei bin"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I patches sono i rettangoli (blu in questo caso) che vengono usati per disegnare l'istogramma."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Il metodo `hist` ha un parametro booleano `density` con default `False`. Se `density=True` ogni bin mostra il numero di eventi nel bin diviso per il numero totale di eventi e diviso per la larghezza del bin in modo che l'area sotto l'istogramma sia 1. Utile per confontare la densità dei dati con una densità di\n",
"probabilità analitica, per esempio gaussiana."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots()\n",
"nevent, bins, patches = ax.hist(dati, nbins, range=xrange, density=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"
Imparare Facendo
\n",
" Fate il diagramma delle frequenze dell'array my_arr. In particolare\n",
"\n",
"
Determinate un range ragionevole. \n",
"
Variate il numero di bin, notando come un sia un numero troppo piccolo che uno troppo grande mascherano l'andamento dei dati.\n",
"
Verificate se il valor medio e la standard deviation sono parametri utili nella comprensione di questo set di dati\n",
"
\n",
" Lo studio grafico dei dati non va mai trascurato. \n",
" In un notebook a parte anscombe.ipynb potete trovare un classico esempio di quanto sia pericoloso affidarsi completamente ai parametri statisti fondamentali: quattro set di dati che hanno la stessa media, la stessa deviazione standard e vengono interpolati dalla stessa retta pur essendo completamente diversi.\n",
"
\n",
" \n",
"Producete campioni casuali estratti da una distribuzione normale, con valor medio $\\mu = 3.$ e deviazione standard $\\sigma = 0.7$, di 50, 100, 500, 5000 elementi.\n",
" Di ciascun campione\n",
"\n",
"
Fate l'istogramma delle frequenze.\n",
"
Sovrapponete all'istogramma delle frequenze la funzione densità di probabilità gaussiana di valor medio $\\mu$ e deviazione standard $\\sigma$, facendo attenzione che la curva e l'istogramma siano confrontabili. Cosa è necessario fare?\n",
"