Quando aspetti un autobus e ti chiedi quanto dovrai aspettare ancora, quando un server riceve una raffica di richieste oppure quando un SOC comincia a ricevere segnalazioni di phishing, c’è una domanda comune a tutte queste situazioni: quanti eventi possiamo aspettarci in un determinato intervallo di tempo?
La difficoltà sta nel fatto che gli eventi non arrivano seguendo un orologio preciso. Possiamo conoscere una media, per esempio 4 notifiche all’ora oppure 6 segnalazioni ogni ora, ma non sappiamo quando arriverà il prossimo evento né quanti eventi osserveremo esattamente nei prossimi dieci o trenta minuti.
È qui che la distribuzione di Poisson diventa particolarmente utile.
La sua importanza non sta soltanto nella formula
[math]\displaystyle P(X=k)=\frac{e^{-\lambda}\lambda^k}{k!},[/math]
ma nella possibilità di trasformare un tasso medio in probabilità concrete: nessun evento, esattamente due eventi, almeno un evento oppure più di cinque eventi. Facendo un ulteriore passo, il processo di Poisson permette anche di passare dal numero di eventi al tempo di attesa del prossimo evento.
In questa raccolta di sei esercizi la difficoltà cresce gradualmente. Si parte dal calcolo diretto della probabilità che arrivino alcune notifiche, si passa attraverso intervalli temporali diversi e probabilità complementari, fino ad arrivare alla distribuzione esponenziale e a una proprietà condizionata del processo di Poisson che conduce, in modo piuttosto interessante, a una distribuzione binomiale.
L’obiettivo non è soltanto arrivare al numero finale, ma capire quale modello stiamo utilizzando, perché è adatto alla situazione e che cosa ci racconta davvero il risultato ottenuto.
Un richiamo alla distribuzione di Poisson
Se
[math]X\sim\operatorname{Poisson}(\lambda),[/math]
la probabilità di osservare esattamente [math]k[/math] eventi è
[math]\displaystyle P(X=k)=\frac{e^{-\lambda}\lambda^k}{k!}, \qquad k=0,1,2,\ldots[/math]
Il parametro [math]\lambda[/math] rappresenta il numero medio di eventi nell’intervallo considerato.
Una caratteristica importante della distribuzione di Poisson è che
[math]E[X]=\lambda[/math]
e
[math]\operatorname{Var}(X)=\lambda.[/math]
Media e varianza coincidono, anche se questo non significa affatto che il numero osservato sia sempre vicino alla media.
Per esempio, se [math]\lambda=4[/math], possiamo dire che il numero medio di eventi è 4, mentre la variabilità del numero di eventi ha anch’essa valore 4.
Nel caso di un processo di Poisson con tasso medio costante, se [math]\lambda[/math] rappresenta il numero medio di eventi per unità di tempo, nell’intervallo di durata [math]t[/math] il parametro diventa
[math]\lambda_t=\lambda t.[/math]
Questa relazione sarà fondamentale negli esercizi successivi, perché permette di passare, per esempio, da un tasso espresso in eventi all’ora a una finestra di dieci o trenta minuti.
Tra le altre proprietà importanti troviamo il fatto che la somma di due processi Poisson indipendenti è ancora Poisson, con parametro pari alla somma dei due tassi, mentre il tempo di attesa fino al prossimo evento segue una distribuzione esponenziale.
Quando possiamo applicare la distribuzione di Poisson?
Prima di utilizzare una distribuzione di Poisson conviene fermarsi un momento e verificare che il fenomeno che stiamo analizzando abbia davvero le caratteristiche del modello.
La formula
[math]\displaystyle P(X=k)=\frac{e^{-\lambda}\lambda^k}{k!}[/math]
non si applica semplicemente perché stiamo contando qualcosa. Il punto fondamentale è capire che cosa stiamo contando, in quale intervallo e con quali ipotesi sul processo che genera gli eventi.
In una situazione tipica, possiamo utilizzare Poisson quando abbiamo le seguenti condizioni.
Stiamo contando il numero di eventi in un intervallo
La variabile casuale deve rappresentare un conteggio, per esempio il numero di telefonate ricevute in un’ora, il numero di errori registrati da un sistema durante una giornata oppure il numero di richieste arrivate a un server in dieci minuti.
Non stiamo quindi descrivendo direttamente il valore di una variabile continua, come la temperatura o il tempo di risposta di un’applicazione.
Per esempio:
[math]X=\text{numero di richieste ricevute da un server in 5 minuti}[/math]
è una variabile adatta a un modello di conteggio.
Al contrario,
[math]X=\text{tempo necessario per elaborare una richiesta}[/math]
non è direttamente una variabile Poisson. In alcuni contesti il tempo di attesa può essere modellato con una distribuzione esponenziale, che è collegata al processo di Poisson, ma si tratta di un modello diverso.
L’intervallo deve essere definito
Bisogna sapere dove o quando stiamo contando gli eventi.
Possiamo avere, per esempio:
- chiamate ricevute in un’ora;
- errori registrati in una giornata;
- richieste API arrivate in un minuto;
- difetti presenti in un metro di materiale;
- incidenti osservati lungo un determinato tratto di strada.
Il parametro [math]\lambda[/math] deve essere riferito allo stesso intervallo utilizzato per il conteggio.
Se un sistema riceve in media 120 richieste all’ora e vogliamo analizzare una finestra di 5 minuti, non possiamo usare direttamente [math]\lambda=120[/math].
Cinque minuti sono
[math]\displaystyle \frac{5}{60}=\frac1{12}[/math]
di un’ora, quindi il parametro corretto è
[math]\displaystyle \lambda=120\cdot\frac1{12}=10.[/math]
Il modello sarà quindi
[math]X\sim\operatorname{Poisson}(10).[/math]
Questo passaggio sembra elementare, ma negli esercizi e nelle analisi reali è una delle fonti più frequenti di errore.
Deve esistere un tasso medio interpretabile
Il parametro [math]\lambda[/math] rappresenta il numero medio di eventi nell’intervallo considerato.
Per esempio, se un servizio riceve mediamente 30 richieste ogni ora, possiamo partire da
[math]\lambda=30.[/math]
Se osserviamo soltanto 10 minuti, il valore deve essere riscalato:
[math]\displaystyle \lambda=30\cdot\frac{10}{60}=5.[/math]
Il punto importante è che non dobbiamo confondere il tasso con il numero di eventi effettivamente osservati.
Se oggi registriamo 7 richieste in dieci minuti, questo non significa che [math]\lambda=7[/math]. Quel valore è una realizzazione del processo; [math]\lambda[/math] rappresenta invece il valore medio assunto dal modello per l’intervallo considerato.
Il tasso deve essere ragionevolmente stabile nell’intervallo
L’ipotesi di Poisson classica presuppone un tasso medio costante.
Supponiamo che un server riceva mediamente 60 richieste all’ora durante una fascia oraria abbastanza omogenea. Possiamo quindi considerare, come prima approssimazione,
[math]\lambda=60[/math]
per un’ora.
Ma immaginiamo che lo stesso server riceva:
- 10 richieste all’ora durante la notte;
- 50 al mattino;
- 200 durante il picco delle 13;
- 500 durante un evento particolare.
In questo caso utilizzare un unico valore medio per l’intera giornata può essere una semplificazione molto forte.
Il problema non è che Poisson “non funziona mai” quando il tasso cambia, ma che la Poisson omogenea con un unico [math]\lambda[/math] non descrive bene un processo il cui tasso varia sistematicamente nel tempo.
In un’analisi reale potremmo quindi suddividere il periodo in finestre più omogenee, utilizzare tassi diversi oppure ricorrere a un modello di processo Poisson non omogeneo.
Gli eventi devono essere ragionevolmente indipendenti
Un’altra ipotesi importante riguarda la dipendenza tra gli eventi.
Se arriva una richiesta al server, la probabilità che ne arrivi un’altra subito dopo dovrebbe essere, almeno come prima approssimazione, indipendente dal fatto che sia arrivata la precedente.
Questo non significa che nella realtà l’indipendenza sia perfetta, ma che il modello deve essere una rappresentazione ragionevole del fenomeno.
Consideriamo due esempi.
Esempio adatto
Un sistema registra piccoli errori indipendenti distribuiti nel tempo, con un tasso medio abbastanza stabile.
In questo caso una Poisson può essere un modello plausibile.
Esempio problematico
Un sito web subisce un attacco che genera migliaia di richieste contemporaneamente.
La prima richiesta dell’attaccante aumenta fortemente la probabilità che ne arrivino molte altre, perché tutte appartengono allo stesso evento di traffico anomalo.
In questo caso l’indipendenza degli arrivi è chiaramente discutibile e una Poisson semplice potrebbe descrivere male i dati.
Gli eventi devono essere contabili e verificarsi come eventi distinti
Il modello di Poisson nasce per contare eventi che possiamo distinguere nel tempo o nello spazio.
Per esempio:
[math]X=\text{numero di incidenti in un tratto di strada durante un mese}[/math]
oppure
[math]X=\text{numero di ticket aperti durante un’ora}.[/math]
Non è invece naturale utilizzare Poisson per una variabile come
[math]X=\text{fatturato giornaliero}.[/math]
Il fatturato è una grandezza quantitativa continua o discreta di altra natura, non un semplice conteggio di eventi.
Naturalmente possiamo utilizzare Poisson per modellare il numero di ordini ricevuti, e poi costruire un modello separato per il valore economico degli ordini.
Negli intervalli molto piccoli non dovrebbero verificarsi normalmente molti eventi simultanei
Nel processo di Poisson classico si assume che, per un intervallo molto piccolo, la probabilità di osservare più eventi contemporaneamente sia trascurabile.
L’idea intuitiva è che, osservando un intervallo infinitesimo, ci si aspetti:
- nessun evento;
- oppure un evento;
mentre la probabilità di due o più eventi nello stesso intervallo diventa trascurabile.
Questa ipotesi è ragionevole, per esempio, quando contiamo arrivi distribuiti nel tempo.
Può invece diventare problematica quando gli eventi arrivano naturalmente a gruppi.
Immaginiamo un sistema di notifica che, ogni volta che si verifica un guasto, genera automaticamente 20 messaggi quasi contemporanei.
Se contiamo i singoli messaggi, questi non sono più eventi indipendenti che arrivano uno alla volta: sono conseguenze dello stesso guasto.
In questo caso sarebbe più sensato chiedersi se dobbiamo modellare il numero di guasti, anziché il numero di messaggi generati.
Tre esempi per capire rapidamente quando usare Poisson
Esempio: richieste a un’API
Un’API riceve mediamente 300 richieste ogni minuto e, in una determinata fascia oraria, il traffico è abbastanza stabile.
Vogliamo conoscere la probabilità di ricevere esattamente 280 richieste nel prossimo minuto.
Abbiamo un conteggio, un intervallo definito e un tasso medio interpretabile:
[math]X=\text{numero di richieste nel prossimo minuto}[/math]
con
[math]\lambda=300.[/math]
Come prima approssimazione possiamo quindi considerare
[math]X\sim\operatorname{Poisson}(300).[/math]
In un’analisi reale, naturalmente, controlleremmo anche se l’indipendenza e la stabilità del tasso sono compatibili con i dati osservati.
Esempio: difetti di produzione
Un controllo di qualità rileva mediamente 2 difetti ogni 100 metri di materiale.
Vogliamo modellare il numero di difetti osservati in 300 metri.
Se assumiamo che il processo produttivo sia sufficientemente omogeneo e che la presenza di un difetto non influenzi la probabilità di osservare il successivo, possiamo riscalare il parametro:
[math]\displaystyle \lambda=2\cdot\frac{300}{100}=6.[/math]
Quindi il numero di difetti nei 300 metri può essere modellato come
[math]X\sim\operatorname{Poisson}(6).[/math]
Qui il tempo non compare, perché il processo è osservato nello spazio anziché nel tempo. La logica del modello rimane comunque la stessa: stiamo contando eventi in un intervallo.
Esempio: incidenti stradali
Supponiamo che, su un determinato tratto di strada, si osservino mediamente 3 incidenti all’anno.
Se il tratto e il periodo considerati sono sufficientemente omogenei e assumiamo che gli incidenti siano eventi indipendenti, possiamo modellare il numero di incidenti annuali con
[math]X\sim\operatorname{Poisson}(3).[/math]
Potremmo quindi chiederci quale sia la probabilità di non osservare incidenti in un determinato anno:
[math]P(X=0)=e^{-3}.[/math]
Oppure potremmo calcolare la probabilità di osservare almeno un incidente:
[math]P(X\ge 1)=1-e^{-3}.[/math]
Il modello non ci sta dicendo che gli incidenti siano “casuali” in senso assoluto e nemmeno che tutte le condizioni della strada siano irrilevanti. Sta dicendo che, date le ipotesi adottate, il numero di eventi può essere rappresentato con un processo di Poisson.
Quando Poisson non è una buona scelta?
È altrettanto importante riconoscere i casi in cui il modello non è appropriato.
Se abbiamo un numero fisso di prove e ogni prova può produrre un successo o un insuccesso, la distribuzione binomiale è spesso più naturale.
Per esempio, se analizziamo 100 email e vogliamo sapere quante contengono un determinato tipo di errore, abbiamo un numero fisso di osservazioni:
[math]n=100.[/math]
Questo è un contesto molto diverso dal conteggio del numero di richieste che arrivano spontaneamente a un server durante un’ora.
Allo stesso modo, se il tasso cambia fortemente nel tempo, gli eventi sono fortemente dipendenti oppure arrivano sistematicamente a gruppi, una Poisson omogenea può essere una rappresentazione troppo semplice.
In Data Science, quindi, la domanda corretta non è soltanto:
“Posso applicare la formula di Poisson?”
La domanda più utile è:
“Le ipotesi che rendono plausibile la Poisson sono compatibili con i dati che sto analizzando?”
È questa verifica che separa un semplice esercizio di calcolo da un vero modello statistico.
Esercizio — Notifiche push di un’app di delivery
Scenario
Un’app di consegne stima che, nelle ore serali, arrivino in media 4 notifiche push importanti all’ora su un certo dispositivo. Supponiamo che le notifiche seguano un processo di Poisson con tasso costante.
Domanda
Qual è la probabilità che nella prossima ora arrivino esattamente 2 notifiche importanti?
Calcola anche la probabilità che non arrivi nessuna notifica importante.
Risoluzione
Definiamo
[math]X=\text{numero di notifiche importanti nella prossima ora}.[/math]
Dal testo sappiamo che il tasso medio è
[math]\lambda=4[/math]
notifiche all’ora.
Poiché stiamo contando il numero di eventi in un intervallo temporale e assumiamo un tasso costante e arrivi indipendenti, utilizziamo il modello
[math]X\sim\operatorname{Poisson}(4).[/math]
La formula diventa quindi
[math]\displaystyle P(X=k)=e^{-4}\frac{4^k}{k!}.[/math]
Per [math]k=2[/math]:
[math]\displaystyle \begin{aligned}
P(X=2) &= e^{-4}\frac{4^2}{2!} \\
&= e^{-4}\frac{16}{2} \\
&= 8e^{-4}.
\end{aligned}[/math]
Poiché
[math]e^{-4}\approx 0{,}0183156,[/math]
otteniamo
[math]P(X=2)\approx 8\cdot 0{,}0183156\approx 0{,}1465.[/math]
Quindi
[math]\boxed{P(X=2)\approx 14{,}65\%}.[/math]
Passiamo alla probabilità di zero notifiche:
[math]\displaystyle P(X=0)=e^{-4}\frac{4^0}{0!}=e^{-4}\approx 0{,}0183.[/math]
Pertanto
[math]\boxed{P(X=0)\approx 1{,}83\%}.[/math]
Che cosa ci dice il risultato?
Il valore medio è 4 notifiche all’ora, ma la probabilità di osservarne esattamente 4 non è automaticamente vicina al 100%. La media descrive il comportamento atteso nel lungo periodo, mentre la distribuzione descrive quanto possono variare le singole osservazioni.
Con [math]\lambda=4[/math], i valori intorno alla media sono tra quelli più probabili, ma la distribuzione mantiene una coda verso valori più elevati. È proprio questa variabilità che rende utile la distribuzione di Poisson rispetto a una semplice previsione basata sulla media.
Per riflettere
Perché in questo scenario è più naturale utilizzare una distribuzione di Poisson invece di una binomiale?
Se volessimo analizzare due ore invece di una, quale sarebbe il nuovo valore di [math]\lambda[/math]?
Esercizio — Errori critici in un microservizio
Scenario
Un team DevOps monitora un microservizio. Dai dati storici risulta che si verificano in media 0,8 errori critici al giorno. Supponiamo che gli errori siano indipendenti e che il processo possa essere rappresentato con una distribuzione di Poisson.
Domanda
Calcola:
- la probabilità che in un giorno non si verifichino errori critici;
- la probabilità che si verifichi almeno un errore critico.
Risoluzione
Definiamo
[math]X=\text{numero di errori critici in un giorno}[/math]
con
[math]\lambda=0{,}8.[/math]
La probabilità di zero errori è
[math]\displaystyle \begin{aligned}
P(X=0) &= e^{-0{,}8}\frac{0{,}8^0}{0!} \\
&= e^{-0{,}8}.
\end{aligned}[/math]
Poiché
[math]e^{-0{,}8}\approx 0{,}4493,[/math]
abbiamo
[math]\boxed{P(X=0)\approx 44{,}93\%}.[/math]
Per calcolare la probabilità di almeno un errore possiamo utilizzare l’evento complementare:
[math]P(X\ge 1)=1-P(X=0).[/math]
Quindi
[math]P(X\ge 1)=1-0{,}4493=0{,}5507.[/math]
Pertanto
[math]\boxed{P(X\ge 1)\approx 55{,}07\%}.[/math]
La media da sola non basta
Questo esempio mostra bene una distinzione importante nell’analisi dei dati.
Dire che il sistema presenta in media 0,8 errori critici al giorno non significa che la probabilità di avere almeno un errore sia dell’80%.
La distribuzione di Poisson ci permette di trasformare quella media in una vera misura probabilistica del rischio. In questo caso, la probabilità di osservare almeno un errore durante una giornata è superiore al 55%.
Il complemento è particolarmente utile perché evita di sommare
[math]P(X=1)+P(X=2)+P(X=3)+\cdots[/math]
e permette di ottenere direttamente la probabilità richiesta attraverso
[math]P(X\ge 1)=1-P(X=0).[/math]
Se il tasso salisse a [math]\lambda=2[/math], per esempio, avremmo
[math]P(X\ge 1)=1-e^{-2}\approx 86{,}47\%.[/math]
L’aumento del tasso medio produce quindi un aumento molto consistente della probabilità di osservare almeno un errore.
Per riflettere
Quale proprietà abbiamo utilizzato per calcolare [math]P(X\ge 1)[/math]?
Se il tasso diventasse [math]\lambda=2[/math] errori al giorno, la probabilità di almeno un errore aumenterebbe o diminuirebbe?
Esercizio — Richieste di assistenza in una finestra di dieci minuti
Scenario
Una piattaforma di supporto riceve in media 12 richieste di chat all’ora. Il tasso è stabile e assumiamo che le richieste siano indipendenti.
Un operatore vuole stimare il carico di lavoro in una finestra di 10 minuti.
Domanda
Qual è la probabilità che in 10 minuti arrivino da 1 a 3 richieste comprese?
Risoluzione
Il tasso iniziale è espresso su base oraria:
[math]\lambda_{\text{ora}}=12.[/math]
La finestra considerata, però, è di 10 minuti.
Poiché
[math]\displaystyle 10\text{ minuti}=\frac{10}{60}\text{ ore}=\frac16\text{ ore},[/math]
il parametro relativo alla finestra di dieci minuti è
[math]\displaystyle \lambda_{10\text{ min}} = 12\cdot\frac16 = 2.[/math]
Quindi
[math]X\sim\operatorname{Poisson}(2).[/math]
Vogliamo calcolare
[math]P(1\le X\le 3).[/math]
Dobbiamo quindi sommare tre probabilità:
[math]P(1\le X\le 3)=P(X=1)+P(X=2)+P(X=3).[/math]
Per [math]X=1[/math]:
[math]\displaystyle P(X=1)=e^{-2}\frac{2^1}{1!}=2e^{-2}.[/math]
Per [math]X=2[/math]:
[math]\displaystyle P(X=2)=e^{-2}\frac{2^2}{2!}=2e^{-2}.[/math]
Per [math]X=3[/math]:
[math]\displaystyle \begin{aligned}
P(X=3) &= e^{-2}\frac{2^3}{3!} \\
&= e^{-2}\frac{8}{6} \\
&= \frac43 e^{-2}.
\end{aligned}[/math]
Sommiamo i tre termini:
[math]\displaystyle \begin{aligned}
P(1\le X\le 3) &= e^{-2}\left(2+2+\frac43\right) \\
&= e^{-2}\frac{16}{3}.
\end{aligned}[/math]
Poiché
[math]e^{-2}\approx 0{,}135335,[/math]
otteniamo
[math]P(1\le X\le 3)\approx 0{,}135335\cdot 5{,}3333\approx 0{,}7218.[/math]
Quindi
[math]\boxed{P(1\le X\le 3)\approx 72{,}18\%}.[/math]
L’unità di tempo è parte del modello
Qui l’errore più comune sarebbe utilizzare direttamente [math]\lambda=12[/math], dimenticando che le richieste vengono osservate soltanto per dieci minuti.
Il parametro della Poisson non è un numero da copiare dal testo dell’esercizio: deve riferirsi esattamente all’intervallo che stiamo analizzando.
Se il tasso è 12 richieste all’ora, in dieci minuti il numero medio atteso non è 12, ma
[math]\displaystyle 12\cdot\frac16=2.[/math]
Per un data scientist questo passaggio è tutt’altro che secondario, perché una trasformazione errata dell’unità temporale produce un modello formalmente corretto ma applicato al problema sbagliato.
Per riflettere
Perché abbiamo moltiplicato [math]\lambda[/math] per [math]1/6[/math]?
Che cosa rappresenta [math]e^{-2}[/math] in questo esercizio?
Esercizio — Segnalazioni di phishing in un SOC
Scenario
Un Security Operations Center riceve in media 6 segnalazioni di phishing all’ora. Durante un turno notturno il tasso viene considerato costante e il SOC vuole analizzare una finestra di 30 minuti.
Domanda
Calcola:
- la probabilità di ricevere esattamente 4 segnalazioni in 30 minuti;
- la probabilità di ricevere più di 5 segnalazioni nella stessa finestra.
Risoluzione
Trenta minuti corrispondono a mezz’ora, quindi il parametro relativo alla finestra è
[math]\displaystyle \lambda=6\cdot\frac12=3.[/math]
Di conseguenza,
[math]X\sim\operatorname{Poisson}(3).[/math]
Per esattamente 4 segnalazioni:
[math]\displaystyle \begin{aligned}
P(X=4) &= e^{-3}\frac{3^4}{4!} \\
&= e^{-3}\frac{81}{24} \\
&= 3{,}375 e^{-3}.
\end{aligned}[/math]
Poiché
[math]e^{-3}\approx 0{,}049787,[/math]
abbiamo
[math]P(X=4)\approx 3{,}375\cdot 0{,}049787\approx 0{,}1680.[/math]
Quindi
[math]\boxed{P(X=4)\approx 16{,}80\%}.[/math]
Passiamo alla probabilità di ricevere più di 5 segnalazioni:
[math]P(X>5).[/math]
Calcolare direttamente questa probabilità significherebbe sommare
[math]P(X=6)+P(X=7)+P(X=8)+\cdots[/math]
senza un termine finale.
È molto più conveniente utilizzare il complemento:
[math]P(X>5)=1-P(X\le 5).[/math]
Calcoliamo quindi
[math]\displaystyle \begin{aligned}
P(X\le 5) &= e^{-3}\Bigg(\frac{3^0}{0!}+\frac{3^1}{1!}+\frac{3^2}{2!} \\
&\quad +\frac{3^3}{3!}+\frac{3^4}{4!}+\frac{3^5}{5!}\Bigg).
\end{aligned}[/math]
I singoli termini sono
[math]1,\quad 3,\quad 4{,}5,\quad 4{,}5,\quad 3{,}375,\quad 2{,}025.[/math]
La loro somma è
[math]18{,}4.[/math]
Pertanto
[math]P(X\le 5)=18{,}4 e^{-3}\approx 0{,}9161.[/math]
Di conseguenza,
[math]P(X>5)=1-0{,}9161=0{,}0839.[/math]
Quindi
[math]\boxed{P(X>5)\approx 8{,}39\%}.[/math]
Possiamo controllare il calcolo anche osservando la distribuzione dei primi valori:
| [math]k[/math] | [math]P(X=k)[/math] |
|---|---|
| 0 | 0,0498 |
| 1 | 0,1494 |
| 2 | 0,2240 |
| 3 | 0,2240 |
| 4 | 0,1680 |
| 5 | 0,1008 |
| [math]X\le 5[/math] | 0,9161 |
Quando la coda diventa importante
Per chi lavora con i dati, la media non racconta tutta la storia.
Il SOC riceve mediamente 3 segnalazioni ogni 30 minuti, ma esiste anche una probabilità dell’8,39% di superare le 5 segnalazioni nella stessa finestra.
Se si dovesse dimensionare il lavoro degli operatori, progettare una soglia di allarme o valutare la capacità necessaria in un turno, questo secondo numero potrebbe essere più interessante della semplice media.
Le probabilità di coda permettono infatti di ragionare non soltanto sul comportamento medio, ma anche su situazioni meno frequenti che possono avere conseguenze operative rilevanti.
Per riflettere
Perché conviene calcolare [math]P(X>5)[/math] attraverso
[math]1-P(X\le 5)?[/math]
Se la finestra fosse di 15 minuti, quale sarebbe il nuovo valore di [math]\lambda[/math]?
Esercizio — Il tempo di attesa per la prima richiesta
Scenario
In una zona centrale, un’app di ride-hailing riceve in media 10 richieste all’ora. Supponiamo che le richieste seguano un processo di Poisson con tasso costante.
Questa volta non vogliamo sapere quante richieste arriveranno in un intervallo, ma quanto dovremo aspettare prima della prima richiesta.
Domanda
Calcola:
- la probabilità che la prima richiesta arrivi entro 6 minuti;
- la probabilità che passino più di 12 minuti prima della prima richiesta.
Risoluzione
In un processo di Poisson, il tempo di attesa [math]T[/math] fino al primo evento segue una distribuzione esponenziale con tasso [math]\lambda[/math].
In questo caso
[math]\lambda=10[/math]
richieste all’ora.
Convertiamo i tempi in ore:
[math]6\text{ minuti}=0{,}1\text{ ore}[/math]
e
[math]12\text{ minuti}=0{,}2\text{ ore}.[/math]
La funzione di ripartizione della distribuzione esponenziale è
[math]P(T\le t)=1-e^{-\lambda t}.[/math]
Per la prima richiesta entro 6 minuti:
[math]\displaystyle \begin{aligned}
P(T\le 0{,}1) &= 1-e^{-10\cdot 0{,}1} \\
&= 1-e^{-1}.
\end{aligned}[/math]
Poiché
[math]e^{-1}\approx 0{,}3679,[/math]
otteniamo
[math]P(T\le 0{,}1)\approx 0{,}6321.[/math]
Quindi
[math]\boxed{P(T\le 6\text{ min})\approx 63{,}21\%}.[/math]
Per la probabilità che passino più di 12 minuti utilizziamo la funzione di sopravvivenza:
[math]P(T>t)=e^{-\lambda t}.[/math]
Quindi
[math]\displaystyle \begin{aligned}
P(T>0{,}2) &= e^{-10\cdot 0{,}2} \\
&= e^{-2} \\
&\approx 0{,}1353.
\end{aligned}[/math]
Pertanto
[math]\boxed{P(T>12\text{ min})\approx 13{,}53\%}.[/math]
Perché Poisson ed esponenziale sono collegati?
Il legame può essere scritto in modo molto semplice:
[math]P(T>t)=P(N(t)=0).[/math]
Dire che il primo evento arriverà dopo [math]t[/math] equivale infatti a dire che nell’intervallo [math][0,t][/math] non è ancora arrivato nessun evento.
Poiché per un processo Poisson
[math]P(N(t)=0)=e^{-\lambda t},[/math]
otteniamo immediatamente
[math]P(T>t)=e^{-\lambda t}.[/math]
Nel nostro caso, dire che la prima richiesta arriva dopo 6 minuti significa dire che nei primi 6 minuti non è arrivata nessuna richiesta, con probabilità
[math]e^{-1}\approx 36{,}79\%.[/math]
Il complemento, pari al 63,21%, è quindi la probabilità che sia arrivata almeno una richiesta entro quei sei minuti.
Per riflettere
Perché
[math]P(T>t)=P(X=0\text{ nell’intervallo }[0,t])?[/math]
Se il tasso fosse espresso direttamente in richieste al minuto, come cambierebbe il calcolo?
Esercizio — Quando conosciamo già il numero totale di eventi
Scenario
Un team di sviluppo riceve segnalazioni di bug su GitHub. Il tasso medio è di 3 segnalazioni all’ora. In un periodo di 4 ore il team osserva che sono arrivate complessivamente 12 segnalazioni.
Supponiamo che il processo sia Poisson con tasso costante.
Domanda
Sapendo che nelle 4 ore sono arrivate esattamente 12 segnalazioni, qual è la probabilità che esattamente 4 siano arrivate durante la prima ora?
Questo esercizio cambia prospettiva rispetto ai precedenti, perché non stiamo più chiedendo semplicemente quante segnalazioni ci aspettiamo. Il numero totale è già noto e vogliamo capire come gli eventi si distribuiscono nel tempo.
Risoluzione
Indichiamo con [math]N(4)[/math] il numero totale di segnalazioni osservate nelle quattro ore.
Poiché il tasso è di 3 segnalazioni all’ora,
[math]N(4)\sim\operatorname{Poisson}(3\cdot 4)=\operatorname{Poisson}(12).[/math]
Ma sappiamo già che
[math]N(4)=12.[/math]
A questo punto entra in gioco una proprietà importante del processo di Poisson: condizionatamente al numero totale di eventi osservati in un intervallo, gli eventi sono distribuiti uniformemente nell’intervallo stesso, quando il tasso è costante.
La prima ora rappresenta
[math]\frac14[/math]
delle quattro ore complessive.
Possiamo quindi pensare alle 12 segnalazioni come a 12 eventi che, condizionatamente al totale osservato, hanno probabilità
[math]p=\frac14[/math]
di cadere nella prima ora.
Il numero di eventi nella prima ora segue quindi una distribuzione binomiale:
[math]\displaystyle X\mid N(4)=12 \sim \operatorname{Binomiale}\left(12,\frac14\right).[/math]
La probabilità richiesta è
[math]\displaystyle P(X=4\mid N=12)=\binom{12}{4}\left(\frac14\right)^4\left(\frac34\right)^8.[/math]
Calcoliamo i termini:
[math]\binom{12}{4}=495,[/math]
[math]\displaystyle \left(\frac14\right)^4=\frac1{256},[/math]
e
[math]\displaystyle \left(\frac34\right)^8=\frac{6561}{65536}.[/math]
Quindi
[math]\displaystyle P(X=4\mid N=12)=495\cdot\frac1{256}\cdot\frac{6561}{65536}.[/math]
Il risultato numerico è
[math]P(X=4\mid N=12)\approx 0{,}1936.[/math]
Pertanto
[math]\boxed{P(X=4\mid N=12)\approx 19{,}36\%}.[/math]
La parte interessante del risultato
Qui compare una proprietà che può sorprendere la prima volta che la si incontra.
Il tasso originale era
[math]\lambda=3[/math]
segnalazioni all’ora, ma dopo aver condizionato sul fatto che nelle quattro ore ci siano state esattamente 12 segnalazioni, quel valore non compare più nella formula della probabilità.
Rimane soltanto la proporzione temporale:
[math]\displaystyle p=\frac14.[/math]
Questo accade perché, una volta fissato il numero totale di eventi, il problema non riguarda più quanti eventi arriveranno, ma come i 12 eventi osservati si distribuiranno all’interno dell’intervallo.
Se il tasso fosse stato 10 segnalazioni all’ora anziché 3, ma continuassimo a sapere che nelle quattro ore sono state osservate esattamente 12 segnalazioni, la probabilità condizionata resterebbe
[math]\displaystyle X\mid N=12 \sim \operatorname{Binomiale}\left(12,\frac14\right).[/math]
Cambierebbe invece la probabilità non condizionata di osservare proprio 12 eventi nelle quattro ore.
È un esempio interessante di come una stessa situazione possa essere descritta da distribuzioni diverse a seconda dell’informazione che abbiamo a disposizione.
Risposte alle domande di riflessione
Esercizio sulle notifiche
Perché Poisson e non binomiale?
La distribuzione binomiale richiede un numero fisso [math]n[/math] di prove, ciascuna con una probabilità [math]p[/math] di successo. Nel nostro caso non abbiamo un numero prestabilito di tentativi: stiamo contando eventi che possono verificarsi durante un intervallo temporale.
Il modello di Poisson è quindi più naturale quando assumiamo un processo di arrivi con tasso medio costante e eventi indipendenti.
Se consideriamo due ore, quale valore assume [math]\lambda[/math]?
Il tasso è di 4 notifiche all’ora, quindi in due ore:
[math]\lambda=4\cdot 2=8.[/math]
Avremmo quindi
[math]X\sim\operatorname{Poisson}(8).[/math]
Esercizio sugli errori critici
Quale proprietà abbiamo usato per calcolare [math]P(X\ge 1)[/math]?
Abbiamo utilizzato l’evento complementare:
[math]P(X\ge 1)=1-P(X=0).[/math]
L’evento “almeno un errore” è infatti il complementare dell’evento “nessun errore”.
Se [math]\lambda=2[/math], cosa cambia?
Avremmo
[math]P(X=0)=e^{-2}\approx 0{,}1353[/math]
e quindi
[math]P(X\ge 1)=1-e^{-2}\approx 0{,}8647.[/math]
La probabilità di almeno un errore salirebbe quindi a circa l’86,47%.
Esercizio delle richieste in dieci minuti
Perché moltiplichiamo [math]\lambda[/math] per [math]1/6[/math]?
Perché il tasso è espresso per ora, mentre stiamo osservando soltanto un sesto di ora:
[math]\lambda_{\text{intervallo}}=\lambda_{\text{unità di tempo}}\cdot\text{durata}.[/math]
Nel nostro caso:
[math]\displaystyle 12\cdot\frac16=2.[/math]
Che cosa rappresenta [math]e^{-2}[/math]?
Rappresenta la probabilità di osservare zero richieste nei dieci minuti:
[math]P(X=0)=e^{-2}.[/math]
Non è quindi soltanto un termine che compare nella formula: in questo contesto ha una precisa interpretazione probabilistica.
Esercizio sulle segnalazioni di phishing
Perché conviene utilizzare il complemento per [math]P(X>5)[/math]?
Perché l’evento [math]X>5[/math] comprende tutti i valori
[math]6,7,8,9,\ldots[/math]
mentre il suo complemento
[math]X\le 5[/math]
comprende soltanto i sei valori da 0 a 5.
Se la finestra fosse di 15 minuti, quale sarebbe [math]\lambda[/math]?
Quindici minuti corrispondono a un quarto d’ora, quindi
[math]\displaystyle \lambda=6\cdot\frac14=1{,}5.[/math]
Il modello diventerebbe
[math]X\sim\operatorname{Poisson}(1{,}5).[/math]
Esercizio del tempo di attesa
Perché [math]P(T>t)=P(X=0\text{ in }[0,t])[/math]?
Dire che il primo evento arriva dopo [math]t[/math] equivale a dire che nell’intervallo compreso tra 0 e [math]t[/math] non è ancora arrivato nessun evento.
Per questo motivo il tempo di attesa e il conteggio degli eventi sono direttamente collegati.
Se [math]\lambda[/math] fosse espresso in richieste al minuto?
Il tasso di 10 richieste all’ora equivale a
[math]\displaystyle \frac{10}{60}=\frac16[/math]
richieste al minuto.
Per 6 minuti avremmo quindi
[math]\displaystyle P(T\le 6)=1-e^{-(1/6)\cdot 6}=1-e^{-1},[/math]
che è esattamente lo stesso risultato ottenuto utilizzando le ore.
Cambiare unità di misura modifica il valore numerico del tasso, ma non la probabilità finale, purché le unità siano coerenti.
Esercizio condizionato
Perché [math]p=1/4[/math]?
La prima ora rappresenta un quarto dell’intervallo complessivo di quattro ore.
Condizionatamente al fatto che siano stati osservati 12 eventi nell’intero intervallo, ciascun evento ha probabilità [math]1/4[/math] di trovarsi nella prima ora, dato il tasso costante.
Di conseguenza,
[math]\displaystyle X\mid N=12 \sim \operatorname{Binomiale}\left(12,\frac14\right).[/math]
Se il tasso fosse 10 segnalazioni all’ora invece di 3, la probabilità cambierebbe?
Non cambierebbe, se continuiamo a condizionare sul fatto che nelle quattro ore siano state osservate esattamente 12 segnalazioni.
La distribuzione condizionata resta infatti
[math]\displaystyle X\mid N=12 \sim \operatorname{Binomiale}\left(12,\frac14\right).[/math]
Cambierebbe invece la probabilità, non condizionata, di osservare esattamente 12 eventi nell’intero intervallo.
La cosa importante da portarsi a casa
La distribuzione di Poisson non serve soltanto a sostituire numeri dentro una formula. Il suo vero interesse sta nella possibilità di collegare domande diverse sullo stesso fenomeno.
Possiamo chiederci quanti eventi ci aspettiamo, quale sia la probabilità di osservarne un certo numero, quanto sia probabile che non accada nulla oppure che il numero di eventi superi una determinata soglia. Possiamo inoltre cambiare la durata dell’intervallo e, passando dal conteggio al tempo di attesa, arrivare naturalmente alla distribuzione esponenziale.
Gli ultimi esercizi mostrano qualcosa di ancora più interessante: quando conosciamo già il numero totale di eventi osservati, il problema cambia natura. Non stiamo più stimando quanti eventi arriveranno, ma come gli eventi già osservati si distribuiscono nel tempo; in questo caso compare una distribuzione binomiale condizionata.
È questo il punto in cui la formula iniziale smette di essere soltanto una formula da ricordare e diventa un vero strumento per ragionare sui dati.
Per chi lavora in Data Science, questa distinzione è fondamentale: un tasso medio descrive il fenomeno, ma una distribuzione di probabilità permette di valutarne l’incertezza e quindi di prendere decisioni con maggiore consapevolezza.
📚 Per approfondire: Poisson, distribuzioni discrete e tempi di attesa
Se vuoi proseguire dopo gli esercizi sulla distribuzione di Poisson, questi articoli aiutano a collegare il modello alle altre principali distribuzioni di probabilità e a capire quando scegliere un modello piuttosto che un altro:
- 👉La distribuzione poissoniana
– caratteristiche, media, varianza e condizioni di utilizzo. - 👉Distribuzioni discrete: la distribuzione binomiale quando si usa
– per confrontare Poisson e binomiale e capire la differenza tra i principali modelli discreti. - 👉Distribuzione binomiale o di Bernoulli
– il modello dei successi in un numero fissato di prove indipendenti. - 👉Distribuzione esponenziale: cos’è e come prevedere i tempi di attesa
– il collegamento naturale tra il conteggio degli eventi e il tempo che intercorre tra due eventi. - 👉Le 7 distribuzioni statistiche che ogni Data Scientist deve conoscere per modellare, simulare e decidere
– una panoramica delle principali distribuzioni e del loro ruolo nella modellazione dei dati. - 👉Distribuzione Binomiale: 6 esercizi svolti per capirla davvero
– esercizi progressivi per confrontare concretamente la binomiale con altri modelli di conteggio.




