La distribuzione di Poisson è una distribuzione di probabilità discreta che descrive il numero di eventi in un intervallo di tempo o in un’area fissi.
La distribuzione di Poisson è utile per misurare quanti eventi possono accadere durante un dato orizzonte temporale, come ad esempio il numero dei clienti che entreranno in un negozio durante la prossima ora, oppure il numero di pageviews su di un sito web nel prossimo minuto, e via dicendo…
Elemento importante: ogni intervallo di tempo si assume indipendente da tutti gli altri.
Occorre conoscere il numero medio di eventi o il tasso di occorrenze degli stessi nell’intervallo di tempo.
Rappresentiamo questo valore con la lettera greca lambda:
Per calcolare la possibilità che ci siano r occorrenze in uno specifico intervallo:
\( P (X=r) = \frac{e^{-\lambda} \lambda^{r}}{r!} \\ \\ \)Ad esempio, se:
\( X \sim Po(2) \\ \\ r=3\)
avremo:
cioè il 18%
Se
allora
Se
e n è grande e p piccolo, allora possiamo approssimare la binomiale alla Poisson:
La distribuzione di Poisson e quella binomiale sono due distribuzioni di probabilità discrete utilizzate per modellare eventi rari. La principale differenza tra le due distribuzioni riguarda il numero di prove e successi.
La distribuzione binomiale è biparametrica, cioè è caratterizzata da due parametri n e p, dove n rappresenta il numero di prove e p la probabilità di successo in ogni prova.
Al contrario, la distribuzione di Poisson è uniparametrica, cioè è caratterizzata da un singolo parametro λ che rappresenta il numero medio di eventi per intervallo.
Inoltre, la distribuzione binomiale viene utilizzata quando il numero di prove è finito e il numero di successi non può superare n, mentre la distribuzione di Poisson viene utilizzata quando il numero di prove è essenzialmente infinito.
Un distributore automatico di bevande presenta dei malfunzionamenti in media 3,4 volte alla settimana. Qual è la probabilità che la macchina non si guasti la prossima settimana?
\( P (X=0) = \frac{e^{- \lambda} \cdot \lambda ^{r}}{r!} \\ \\ = \frac{e^{-3,4} \cdot 3,4 ^{0}}{0!} = \\ \frac{e^{-3,4} \cdot 1}{1} = 0,033 \\ \)Notiamo dunque che la probabilità è davvero molto bassa…appena il 3,3%
p.s. X=0 perchè ho posto la probabilità che non si guasti.
Se avessi voluto fare il calcolo con la TI-83 mi sarebbe bastato usare il comando:
poissoncdf(3.4,0)
in R avrei invece usato il comando:
dpois(0,3.4)
Voglio ora calcolare qual è la probabilità che il distributore si guasti per 3 volte nel corso della prossima settimana.
\( P (X=3) = \frac{e^{-3,4} \cdot 3,4 ^{3}}{3!} = \frac{e^{-3,4} \cdot 39,304}{6} = 0,216 \\ \)La probabilità è del 21,6%.
Volendo fare il calcolo con la TI-83:
poissonpdf(3.4,3)
Veniamo a un terzo quesito: qual è il valore atteso e quale la varianza circa il malfunzionamento del distributore?
\( E(X) = \lambda = 3,4 \\ Var(X) = \lambda = 3,4 \\ \)Come si nota, lambda, all’interno della distribuzione di Poisson, non rappresenta solamente il numero medio, ma anche la varianza.
Questo è noto come la proprietà di uguaglianza media-varianza della distribuzione di Poisson.
Quindi, se lambda è grande, la distribuzione di Poisson sarà più concentrata attorno al suo valore medio e la sua varianza sarà anche grande, mentre se lambda è piccolo, la distribuzione sarà meno concentrata attorno al suo valore medio e la sua varianza sarà anche piccola.
Ci sono alcuni aspetti che rendono potenzialmente interessante l’utilizzo della distribuzione di Poisson nell’analisi del traffico del sito web. Si tratta infatti di un modello statistico semplice e ben compreso che può essere facilmente applicato ai dati del traffico del sito web, ad esempio per stimare il tasso medio di richieste o visite per unità di tempo e prevedere la probabilità di osservare un certo numero di richieste o visite in futuro.
Occorre però avere ben chiaro in mente che ci sono anche molte limitazioni nell’utilizzo della distribuzione di Poisson per un’analisi seo sul traffico web.
In primo luogo, la distribuzione di Poisson assume che gli eventi si verifichino in modo indipendente e a un tasso costante, il che potrebbe non essere sempre vero per il traffico del sito web. Ad esempio, il traffico del sito web potrebbe mostrare una frequenza di picco o una simmetria interna, che non possono essere catturate dalla distribuzione di Poisson.
In secondo luogo, la distribuzione di Poisson è un processo senza memoria, il che significa che non tiene conto di alcuna storia degli eventi passati. Questo può essere una limitazione quando si analizzano i dati di traffico del sito web che mostrano tendenze o stagionalità.
In terzo luogo, la distribuzione di Poisson assume che gli eventi siano discreti e contabili, il che potrebbe non essere sempre appropriato per modellare variabili continue come il tempo di risposta o il tempo di caricamento della pagina. Infine, la distribuzione di Poisson è un modello semplice che potrebbe non catturare tutte le complessità del traffico del sito web del mondo reale.
Esistono diversi modelli alternativi per l’analisi del traffico del sito web che possono essere utilizzati quando la distribuzione di Poisson non è appropriata.
Un’alternativa è la distribuzione Binomiale Negativa, che consente di gestire l’eccesso di dispersione e di catturare la frequenza di picco o la simmetria interna nei dati di traffico del sito web.
Un’altra alternativa è la distribuzione Lognormale, che può essere utilizzata per modellare variabili continue come il tempo di risposta o il tempo di caricamento della pagina.
La distribuzione Esponenziale può anche essere utilizzata per modellare gli intervalli di tempo tra le richieste o le visite a un sito web.
Supponiamo di avere un sito web che riceve in media 10 clic all’ora e vogliamo stimare la probabilità di ottenere un certo numero di clic in un’ora utilizzando la distribuzione di Poisson. Possiamo utilizzare R per eseguire i seguenti passaggi:
library(ggplot2) # Numero medio di click per ora lam <- 10
2. Calcoliamo ora la funzione di massa di probabilità (PMF) della distribuzione di Poisson per ciascun possibile numero di clic utilizzando la funzione dpois().
Ad esempio, per calcolare la probabilità di ottenere esattamente 15 clic:
clicks <- 15 prob <- dpois(clicks, lam) cat(paste("La probabilità di avere", clicks, "click all'ora è", prob, "\n"))
L’output è:
La probabilità di avere 15 click all'ora è 0.0347180696306841
3. Calcoliamo la PMF della distribuzione di Poisson per un range di possibili numeri di clic utilizzando la funzione dpois() e visualizziamo il tutto in un grafico.
Ad esempio, per calcolare la probabilità di ottenere da 0 a 30 clic:
x <- 0:30 pmf <- dpois(x, lam)
4. Disegnamo ora in un grafico la probabilità di ogni possibile numero di click:
ggplot(data.frame(x=x, pmf=pmf), aes(x, pmf)) + geom_bar(stat="identity") + xlab("Numero di click") + ylab("Probabilità") + ggtitle(paste("PMF della distribuzione di Poisson con lambda =", lam))
5. Calcoliamo la CDF della distribuzione di Poisson e la tracciamo:
# Calcola la CDF della distribuzione di Poisson cdf <- ppois(x, lam) # Plotta la CDF ggplot(data.frame(x=x, cdf=cdf), aes(x, cdf)) + geom_step() + xlab("Numero di click") + ylab("Probabilità cumulativa") + ggtitle(paste("CDF della distribuzione di Poisson con lambda =", lam))
6. Calcoliamo il numero di click corrispondente al 90% di probabilità:
q <- qpois(0.9, lam) cat(paste("Per avere una probabilità del 90%, il numero di click deve essere fino a", q, "\n"))
L’output è:
Per avere una probabilità del 90%, il numero di click deve essere fino a 14
Per comodità, fornisco anche il codice dello script equivalente in Python:
import numpy as np import matplotlib.pyplot as plt from scipy.stats import poisson # Definisci il numero medio di click per ora lam = 10 # Calcola la probabilità di avere un certo numero di click, ad esempio 15 clicks = 15 prob = poisson.pmf(clicks, lam) print(f"La probabilità di avere {clicks} click all'ora è {prob}") # Calcola le probabilità per i possibili numeri di click da 0 a 30 x = np.arange(0, 31) pmf = poisson.pmf(x, lam) # Plotta la probabilità di ogni possibile numero di click plt.bar(x, pmf) plt.xlabel('Numero di click') plt.ylabel('Probabilità') plt.title(f'PMF della distribuzione di Poisson con lambda = {lam}') plt.show() # Calcola la CDF della distribuzione di Poisson cdf = poisson.cdf(x, lam) # Plotta la CDF plt.step(x, cdf) plt.xlabel('Numero di click') plt.ylabel('Probabilità cumulativa') plt.title(f'CDF della distribuzione di Poisson con lambda = {lam}') plt.show() # Calcola il numero di click corrispondente al 90% di probabilità q = poisson.ppf(0.9, lam) print(f"Per avere una probabilità del 90%, il numero di click deve essere {q}")
I test statistici sono strumenti fondamentali per l’analisi dei dati e la presa di decisioni informate. Scegliere…
Gli Alberi Decisionali sono un tipo di algoritmo di apprendimento automatico che utilizza una struttura…
Immaginiamo di voler trovare il percorso più veloce per raggiungere una destinazione in auto. Si…
Nel 1847, il matematico francese Augustin-Louis Cauchy stava lavorando su calcoli astronomici, quando ideò un…
La simulazione Monte Carlo è un metodo utilizzato per quantificare il rischio associato a un…
Abbiamo visto che la distribuzione binomiale si basa sull’ipotesi di una popolazione infinita N, condizione che si…