Fondamenti di probabilità in Python
Alexander A. Ramírez M.
CEO @ Synergy Vision
$$ $$
La media campionaria si avvicina al valor atteso all’aumentare della dimensione del campione.

$$ \text{Media campionaria} = \bar{X_2} = \frac{x_1+x_2}{2} $$
$$ \text{Media campionaria} = \bar{X_3} = \frac{x_1+x_2+x_3}{3} $$
$$ \text{Media campionaria} = \bar{X_n} = \frac{x_1+x_2+\cdots +x_n}{n} $$
$$ \text{Media campionaria} = \bar{X_n} = \frac{x_1+x_2+\cdots +x_n}{n} \to \mathbb{E(X)} $$
# Importa binom e describe
from scipy.stats import binom
from scipy.stats import describe
# Campione di 250 lanci di moneta equa
samples = binom.rvs(n=1, p=0.5, size=250, random_state=42)
# Stampa i primi 100 valori del campione
print(samples[0:100])
[0 1 1 1 0 0 0 1 1 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0
0 1 0 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 0 1
1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 0]
# Calcola la media campionaria
print(describe(samples[0:10]).mean)
0.6


$$ $$
from scipy.stats import binom
from scipy.stats import describe
import matplotlib.pyplot as plt
# Definisci le variabili
coin_flips, p, sample_size , averages = 1, 0.5, 1000, []
# Genera il campione
samples = binom.rvs(n=coin_flips, p=p, size=sample_size, random_state=42)
$$ $$
# Calcola la media campionaria
for i in range(2,sample_size+1):
averages.append(describe(samples[0:i]).mean)
# Stampa i primi valori di averages
print(averages[0:10])
[0.5, 0.6666666666666666, 0.75, 0.6, 0.5, 0.42857142857142855, 0.5,
0.5555555555555556,0.6, 0.5454545454545454]
$$ $$
# Aggiungi linea della media di popolazione e grafico della media campionaria
plt.axhline(binom.mean(n=coin_flips, p=p), color='red')
plt.plot(averages, '-')
# Aggiungi legenda
plt.legend(("Population mean","Sample mean"), loc='upper right')
plt.show()

Fondamenti di probabilità in Python