Distribuzione Esponenziale: 5 Esercizi Svolti (con Python) per Scenari Aziendali

Cerca:

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
distribuzione esponenziale esercizi svolti

Quanto tempo aspetterà il prossimo cliente in chat?” “Tra quanti giorni si guasterà il nostro server?”

Nel business, l’incertezza non è un’eccezione, è la regola. La domanda chiave non è se un evento accadrà, ma quando. La distribuzione esponenziale è lo strumento statistico che dà un senso a questa attesa.

Non è solo una formula astratta imparata all’università; è il modello matematico che descrive il tempo tra eventi casuali: dalla prossima chiamata al call center al lead time di un fornitore.

È il “battito cardiaco” dei processi stocastici.

In questo articolo, andiamo oltre la teoria. Analizzeremo cinque scenari aziendali concreti, completi di calcoli e codice Python, per vedere come questo concetto si trasforma da formula a decisione strategica.

Cos’è la Distribuzione Esponenziale?

Immagina di aspettare l’autobus. Non sai esattamente quando arriverà, ma sai che ogni minuto che passa, la probabilità che arrivi “nel prossimo minuto” è sempre la stessa. Questo tipo di attesa è modellato dalla distribuzione esponenziale.

In parole semplici:

La distribuzione esponenziale descrive il tempo che passa tra due eventi casuali che accadono a un ritmo costante nel tempo (senza memoria).

Caratteristiche Principali

Caratteristica Spiegazione Semplice
Continua Il tempo può essere 1.2 min, 1.25 min, 1.251 min… (non solo numeri interi)
Un parametro: λ (lambda) È il tasso medio di occorrenza. Es: λ = 2 → in media 2 eventi all’ora
Supporto: [0, +∞) Il tempo non può essere negativo
Senza memoria Il fatto che hai già aspettato 10 minuti non cambia la probabilità che l’evento accada nei prossimi 5 minuti

Formula (non spaventarti!)

La densità di probabilità è:

[math]\displaystyle \begin{aligned}
f(x) = \lambda e^{-\lambda x} \quad \text{per } x \ge 0
\end{aligned}[/math]

(e = 2.718…, la base dei logaritmi naturali)

Cosa significa?

  • Se λ è grande → gli eventi accadono spesso (curva alta e stretta)
  • Se λ è piccolo → gli eventi sono rari (curva bassa e lunga)

 Valori Attesi e Varianza

Misura Formula Significato
Media (valore atteso) [math]E[X] = 1/\lambda[/math] Tempo medio tra due eventi
Varianza [math]Var(X) = 1/\lambda^2[/math] Quanto varia il tempo tra gli eventi

Esempio:

Se λ = 3 (3 autobus all’ora), allora:

  • Tempo medio di attesa = [math]1/3 \approx 20 \text{ minuti}[/math]

Proprietà Fondamentali

  • Senza memoria:“Il futuro non dipende dal passato”. Se hai già aspettato 1 ora, la probabilità che l’autobus arrivi nei prossimi 5 minuti è la stessa di quando hai iniziato ad aspettare.
  • Collegata al processo di Poisson:
    • Il numero di eventi in un intervallo → Poisson(λt)
    • Il tempo tra due eventi → Esponenziale(λ)
  • Somma di esponenziali indipendenti:Se hai due eventi con tassi [math]\lambda_1[/math] e [math]\lambda_2[/math], il primo che accade segue [math]Exp(\lambda_1 + \lambda_2)[/math].

A Cosa Serve? Quando la Usi?

Situazione Reale Perché usare l’esponenziale?
⏰ Tempo tra due chiamate a un call center Le chiamate arrivano casualmente a ritmo costante
⚛️ Tempo di decadimento di una particella radioattiva Il decadimento è casuale e senza memoria
🛠️ Tempo fino al guasto di una macchina Se i guasti sono rari e casuali
🌐 Tempo di attesa per il prossimo pacchetto in rete I pacchetti arrivano a flusso costante

Regola pratica:

Usa l’esponenziale quando:

  • ✅ Gli eventi sono indipendenti
  • ✅ Accadono a tasso medio costante
  • ✅ Vuoi sapere quanto tempo passa tra uno e l’altro

Esempio Concreto

Un barista prepara in media 4 caffè all’ora (λ = 4).

Quanto tempo passa in media tra un caffè e il prossimo?

Risposta:

[math]\displaystyle \begin{aligned}
E[X] &= 1/\lambda = 1/4 = 15 \text{ minuti}
\end{aligned}[/math]

Probabilità che il prossimo caffè sia pronto entro 10 minuti?

[math]\displaystyle \begin{aligned}
P(X \le 10 \text{ minuti}) &= 1 – e^{-\lambda x} = 1 – e^{-4 \times 10/60} \\
&{}\approx 1 – e^{-0.6667} \approx 0.4866 \
&{} \quad \text{} \
&{} \quad \text{La probabilità è del } 48.66\% \text{ }
\end{aligned}[/math]

 

Riassunto in 1 frase

La distribuzione esponenziale modella il tempo tra eventi casuali che accadono a ritmo costante, ed è “senza memoria”: non importa quanto hai già aspettato, la probabilità resta la stessa.


Esercizio 1: Tempo di Risposta del Servizio Clienti

Testo: Un’azienda di e-commerce analizza il tempo di risposta del suo servizio clienti via chat. I dati storici mostrano che il tempo medio di risposta è di 2 minuti. Supponendo che il tempo di risposta segua una distribuzione esponenziale, calcola:

  1. La probabilità che un cliente attenda meno di 1 minuto
  2. La probabilità che un cliente attenda più di 5 minuti

Risoluzione:

Passo 1: Identificare il parametro

Il tempo medio è μ = 2 minuti. Per la distribuzione esponenziale:

[math]\displaystyle \begin{aligned}
\lambda&=\frac{1}{\mu}=\frac{1}{2}=0.5 \text{ minuti}^{-1}
\end{aligned}[/math]

Passo 2: Richiamare la funzione di distribuzione cumulata

Per X ~ Exp(λ):

[math]\displaystyle \begin{aligned}
F(x)&=P(X \le x)=1-e^{-\lambda x} \
P(X>x)&=1-F(x)=e^{-\lambda x}
\end{aligned}[/math]

Passo 3: Calcolare P(X < 1)

[math]\displaystyle \begin{aligned}
P(X<1)&=1-e^{-0.5 \times 1}=1-e^{-0.5} \
&=1-0.6065=0.3935
\end{aligned}[/math]

Il 39.35% dei clienti riceve risposta in meno di 1 minuto.

Passo 4: Calcolare P(X > 5)

[math]\displaystyle \begin{aligned}
P(X>5)&=e^{-0.5 \times 5}=e^{-2.5} \
&=0.0821
\end{aligned}[/math]

Solo l’8.21% dei clienti attende più di 5 minuti.

Codice Python:

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import expon

# Parametri
lambda_param = 0.5
x = np.linspace(0, 10, 1000)
pdf = expon.pdf(x, scale=1/lambda_param)
cdf = expon.cdf(x, scale=1/lambda_param)

plt.figure(figsize=(12, 4))

plt.subplot(1, 2, 1)
plt.plot(x, pdf, 'b-', linewidth=2, label='PDF')
plt.fill_between(x[x<1], pdf[x<1], alpha=0.3, color='green', label='P(X<1)')
plt.axvline(x=2, color='red', linestyle='--', label='Media (2 min)')
plt.xlabel('Tempo (minuti)')
plt.ylabel('Densità di probabilità')
plt.title('Distribuzione del tempo di risposta - PDF')
plt.legend()
plt.grid(True, alpha=0.3)

plt.subplot(1, 2, 2)
plt.plot(x, cdf, 'r-', linewidth=2, label='CDF')
plt.axhline(y=0.3935, color='green', linestyle='--', label='P(X<1)=0.3935')
plt.axhline(y=0.9179, color='orange', linestyle='--', label='P(X<5)=0.9179')
plt.xlabel('Tempo (minuti)')
plt.ylabel('Probabilità cumulata')
plt.title('Distribuzione del tempo di risposta - CDF')
plt.legend()
plt.grid(True, alpha=0.3)

plt.tight_layout()
plt.show()

 

Distribuzione esponenziale - esempio

Grafico Sinistro: Funzione di Densità di Probabilità (PDF)

Caratteristiche principali:

  • Forma tipica esponenziale: La curva inizia dal valore massimo (λ = 0.5) e decresce esponenzialmente

  • Area colorata in verde: Rappresenta la probabilità P(X < 1) = 39.35% che abbiamo calcolato

  • Linea tratteggiata rossa: Indica la media μ = 2 minuti

Osservazioni didattiche:

  • La PDF ha il suo massimo in x=0, caratteristica fondamentale della distribuzione esponenziale

  • L’area sotto tutta la curva è sempre uguale a 1 (proprietà delle densità di probabilità)

  • L’area verde corrisponde esattamente al valore calcolato di 0.3935

  • La media (2 minuti) si trova dove la densità è già diminuita significativamente

💡 Importante: Nota come la maggior parte della probabilità sia concentrata nei primi minuti, riflettendo la natura dei tempi di attesa nel servizio clienti.

Grafico Destro: Funzione di Distribuzione Cumulata (CDF)

Caratteristiche principali:

  • Crescita esponenziale negativa: La curva parte da 0 e si avvicina asintoticamente a 1

  • Linee orizzontali tratteggiate: Mostrano i valori calcolati P(X<1)=0.3935 e P(X<5)=0.9179

  • Forma a S allungata: Tipica delle CDF esponenziali

Osservazioni didattiche:

  • La CDF in x=1 minuto conferma il nostro calcolo: 39.35% dei clienti riceve risposta entro 1 minuto

  • In x=5 minuti, la CDF raggiunge 91.79%, meaning che solo l’8.21% attende più di 5 minuti

  • La curva mostra come la probabilità cumulata cresca rapidamente all’inizio e poi più lentamente

Confronto tra i due grafici

Relazione PDF-CDF:

  • La PDF è la derivata della CDF

  • L’area sotto la PDF fino a un punto x corrisponde al valore della CDF in quel punto

  • Questo è visivamente evidente: l’area verde sotto la PDF (fino a 1 minuto) corrisponde al valore della linea verde tratteggiata nella CDF

Interpretazione aziendale:

  • I grafici mostrano che il servizio è relativamente veloce (media 2 minuti)

  • Tuttavia, c’è una coda lunga: alcuni clienti attendono tempi significativamente più lunghi

  • Questo giustifica l’analisi di probabilità condizionate che faremo negli esercizi successivi

Forse potrebbe interessarti anche:  Statistica per l'Esame: 4 Esercizi Svolti su Bayes, Inferenza e Test d’Ipotesi

Validazione dei calcoli

I grafici confermano visivamente i nostri risultati:

  • P(X < 1) = 0.3935 → coerente con entrambi i grafici

  • P(X > 5) = 0.0821 → visibile come 1 – CDF(5) = 1 – 0.9179

  • Comportamento asintotico → la CDF si avvicina a 1 mentre la PDF a 0

Domanda di riflessione: Perché la PDF è massima in zero ma la probabilità di tempi molto brevi non è altissima?
Risposta: Perché l’area sotto la curva in un intervallo molto piccolo (es. [0, 0.1]) è piccola nonostante l’altezza della PDF.

Osservazione: La distribuzione esponenziale modella bene i tempi di attesa perché ha la proprietà di “mancanza di memoria”: il tempo di attesa rimanente non dipende da quanto tempo si è già atteso.

 

Esercizio 2: Affidabilità di un Server Web

Testo: Un’azienda tech monitora i tempi tra i guasti del suo server web. I dati indicano che in media si verifica un guasto ogni 45 giorni. Calcola:

  1. La probabilità che il server funzioni senza guasti per almeno 60 giorni
  2. Il tempo entro il quale si verifica il guasto con probabilità del 90%

Risoluzione:

Passo 1: Parametro della distribuzione

Tempo medio tra guasti: μ = 45 giorni

[math]\displaystyle \begin{aligned}
\lambda&=\frac{1}{45} \approx 0.0222 \text{ giorni}^{-1}
\end{aligned}[/math]

Passo 2: P(X > 60) – affidabilità a 60 giorni

[math]\displaystyle \begin{aligned}
P(X>60)&=e^{-\lambda \times 60}=e^{-0.0222 \times 60} \
&=e^{-1.333}=0.2636
\end{aligned}[/math]

Il server ha il 26.36% di probabilità di funzionare senza guasti per almeno 60 giorni.

Passo 3: Calcolo del 90° percentile

Cerchiamo x tale che P(X ≤ x) = 0.90

[math]\displaystyle \begin{aligned}
1-e^{-\lambda x}&=0.90 \
e^{-\lambda x}&=0.10 \
-\lambda x&=\ln(0.10)=-2.3026 \
x&=\frac{2.3026}{\lambda}=\frac{2.3026}{0.0222} \approx 103.7 \text{ giorni}
\end{aligned}[/math]

Con probabilità del 90%, il server si guasta entro 104 giorni.

Codice Python:

# Grafico dell'affidabilità
days = np.linspace(0, 150, 1000)
reliability = np.exp(-lambda_param * days)

plt.figure(figsize=(10, 6))
plt.plot(days, reliability, 'b-', linewidth=2, label='Affidabilità R(t)')
plt.axvline(x=60, color='green', linestyle='--', label='60 giorni')
plt.axhline(y=0.2636, color='green', linestyle='--', alpha=0.7)
plt.axvline(x=103.7, color='red', linestyle='--', label='90° percentile')
plt.axhline(y=0.10, color='red', linestyle='--', alpha=0.7)
plt.xlabel('Tempo (giorni)')
plt.ylabel('Probabilità di sopravvivenza')
plt.title('Funzione di Affidabilità del Server Web')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()

Osservazione: La funzione di affidabilità R(t) = P(X > t) = [math]e^{-\lambda t}[/math] decresce esponenzialmente, caratteristica tipica dei sistemi con tasso di guasto costante.

Pubblicità

Esercizio 3: Analisi del Tasso di Abbandono di un Carrello

Testo: Un e-commerce studia il tempo che i clienti passano sul sito prima di abbandonare il carrello. Il tempo medio di permanenza è di 8 minuti. Se un cliente ha già navigato per 5 minuti, qual è la probabilità che rimanga almeno altri 10 minuti?

Risoluzione:

Passo 1: Proprietà di mancanza di memoria

La distribuzione esponenziale ha la proprietà fondamentale:

[math]\displaystyle \begin{aligned}
P(X>s+t \mid X>s)=P(X>t)
\end{aligned}[/math]

Questa proprietà ci dice che la probabilità condizionata non dipende dal tempo già trascorso.

Passo 2: Calcolo del parametro

μ = 8 minuti → λ = 1/8 = 0.125 minuti¹

Passo 3: Applicazione della proprietà

Cerchiamo P(X > 15 | X > 5) = P(X > 10)

[math]\displaystyle \begin{aligned}
P(X>10)&=e^{-\lambda \times 10}=e^{-0.125 \times 10} \
&=e^{-1.25}=0.2865
\end{aligned}[/math]

La probabilità che il cliente rimanga almeno altri 10 minuti è del 28.65%.

Codice Python:

# Dimostrazione grafica della mancanza di memoria
lambda_mem = 0.125
t = np.linspace(0, 25, 1000)
pdf_mem = expon.pdf(t, scale=1/lambda_mem)

plt.figure(figsize=(12, 5))

plt.subplot(1, 2, 1)
plt.plot(t, pdf_mem, 'b-', linewidth=2)
plt.fill_between(t[(t>=5)&(t<=15)], pdf_mem[(t>=5)&(t<=15)], alpha=0.3, color='orange', label='Intervallo condizionato')
plt.axvline(x=5, color='red', linestyle='--', label='Tempo già trascorso')
plt.xlabel('Tempo totale (minuti)')
plt.ylabel('Densità di probabilità')
plt.title('Distribuzione condizionata\nP(5 < X < 15 | X > 5)')
plt.legend()
plt.grid(True, alpha=0.3)

plt.subplot(1, 2, 2)
# Distribuzione shiftata - dimostrazione mancanza di memoria
t_shifted = np.linspace(0, 20, 1000)
pdf_shifted = expon.pdf(t_shifted, scale=1/lambda_mem)
plt.plot(t_shifted, pdf_shifted, 'g-', linewidth=2)
plt.fill_between(t_shifted[t_shifted>=10], pdf_shifted[t_shifted>=10], alpha=0.3, color='green', label='P(X>10)')
plt.xlabel('Tempo aggiuntivo (minuti)')
plt.ylabel('Densità di probabilità')
plt.title('Distribuzione non condizionata\nP(X > 10) - Stessa forma!')
plt.legend()
plt.grid(True, alpha=0.3)

plt.tight_layout()
plt.show()

Commento sui grafici:

Grafico Sinistro: Distribuzione Condizionata

  • Mostra la distribuzione completa del tempo di navigazione

  • L’area arancione rappresenta P(5 < X < 15 | X > 5) – la probabilità che il cliente rimanga tra 5 e 15 minuti totali, dato che ha già navigato 5 minuti

  • La linea rossa indica il “punto di condizionamento”

Grafico Destro: Distribuzione Non Condizionata

  • Mostra la distribuzione del tempo aggiuntivo di navigazione

  • L’area verde rappresenta P(X > 10) – la probabilità che un cliente nuovo navighi più di 10 minuti

  • La forma è identica al grafico sinistro, dimostrando visivamente la proprietà di mancanza di memoria

💡 Osservazione fondamentale: I due grafici hanno la stessa forma, dimostrando che:

P(X>15∣X>5)=P(X>10)

Il sistema “dimentica” che sono già passati 5 minuti e si comporta come se fosse appena iniziato!

Osservazione: La proprietà di mancanza di memoria è controintuitiva ma fondamentale: il sistema “non ricorda” quanto tempo è già trascorso, quindi la distribuzione del tempo rimanente è identica a quella del tempo totale.

Domanda di riflessione: In quali scenari reali la proprietà di mancanza di memoria è realistica e in quali non lo è?

Risposta:

La proprietà di mancanza di memoria è controintuitiva e la sua realisticità dipende fortemente dal contesto.

Scenari dove la MANCANZA DI MEMORIA è REALISTICA:

Processi Fisici e Nucleari

  • Decadimento radioattivo: Un atomo non “ricorda” da quanto tempo esiste

  • Emissione di fotoni: In sorgenti luminose incoerenti

  • Processi quantistici: Dove il tempo non ha influenza sullo stato futuro

Sistemi Informatici

  • Arrivo di pacchetti di rete: In condizioni di carico costante

  • Richieste a server web: Con carico uniformemente distribuito

  • Accessi a database: In assenza di cache o sessioni utente

Processi Stocastici Puri

  • Lotto, roulette: Ogni estrazione è indipendente dalle precedenti

  • Arrivo di clienti: In orari non di punta con flusso costante

  • Guasti casuali: In componenti elettronici senza usura

Scenari dove la MANCANZA di MEMORIA NON è REALISTICA:

Medicina e Salute

  • Tempo di guarigione: Un paziente che ha già sofferto per 10 giorni probabilmente guarirà prima di uno appena ammalato

  • Sopravvivenza a malattie: La probabilità di sopravvivere altri 5 anni dipende da quanto tempo si è già vissuti con la malattia

  • Affaticamento muscolare: Un atleta che ha già corso 30 km ha performance diverse da uno appena partito

Comportamento Umano

  • Servizio clienti: Un operatore che ha già lavorato 6 ore è meno efficiente di uno appena iniziato

  • Apprendimento: Chi ha già studiato 3 ore impara diversamente da chi inizia ora

  • Decisioni di acquisto: Il tempo già trascorso sul sito influenza le probabilità di acquisto

Processi Industriali

  • Usura macchinari: Un macchinario che ha funzionato 1000 ore ha tasso di guasto diverso da uno nuovo

  • Affaticamento materiali: I materiali sottoposti a stress mostrano effetti cumulativi

  • Processi chimici: Le reazioni spesso dipendono dal tempo già trascorso

 Economia e Finanza

  • Tempo di rinnovo contratti: Un cliente fedele da 5 anni ha comportamenti diversi da uno nuovo

  • Durata investimenti: Gli investimenti lunghi hanno dinamiche diverse da quelli brevi

  • Cicli di vita prodotto: I prodotti in fase di declino hanno tassi di fallimento diversi

ANALISI CRITICA:

Perché spesso usiamo comunque l’esponenziale?

  1. Modellazione semplificata: È un’approssimazione utile quando gli effetti di memoria sono trascurabili

  2. Analiticità: Le proprietà matematiche sono eleganti e i calcoli semplici

  3. Stima conservativa: Nei sistemi di sicurezza, spesso sovrastima i rischi

Alternative quando la memoria è importante:

  • Distribuzione di Weibull: Modella usura e invecchiamento

  • Distribuzione gamma: Per tempi con effetti cumulativi

  • Processi di rinnovo: Per sistemi che si “resettano” dopo eventi

  • Catene di Markov: Per modellare dipendenze temporali complesse

Forse potrebbe interessarti anche:  Algoritmo di Dijkstra: Trovare il Cammino Più Breve con Esempio Python per Data Scientist e Sviluppatori

DOMANDA DI VERIFICA:

In uno scenario di call center dove gli operatori diventano più efficienti con l’esperienza ma anche più stanchi alla fine del turno, quale distribuzione useresti e perché?

Risposta: Una mistura di distribuzioni o un processo non omogeneo che catturi sia l’apprendimento (miglioramento iniziale) che l’affaticamento (peggioramento finale).


Esercizio 4: Ottimizzazione delle Scorte con Lead Time

Testo: Un’azienda di logistica deve determinare il livello di scorta di sicurezza per un componente critico. Il tempo di riordino (lead time) segue una distribuzione esponenziale con media di 10 giorni. L’azienda vuole avere scorte sufficienti per coprire il lead time con probabilità del 95%. Quale livello di scorta deve mantenere?

Risoluzione:

Passo 1: Parametri e obiettivo

μ = 10 giorni → λ = 0.1 giorni¹

Cerchiamo L tale che P(X ≤ L) = 0.95

Passo 2: Calcolo del percentile

[math]\displaystyle \begin{aligned}
1-e^{-\lambda L}&=0.95 \
e^{-\lambda L}&=0.05 \
-\lambda L&=\ln(0.05)=-2.9957 \
L&=\frac{2.9957}{0.1}=29.957 \approx 30 \text{ giorni}
\end{aligned}[/math]

Passo 3: Interpretazione

L’azienda deve mantenere scorte per 30 giorni per avere il 95% di probabilità di coprire il lead time.

Codice Python:

# Analisi del lead time e scorte di sicurezza
lambda_lead = 0.1
lead_time = np.linspace(0, 50, 1000)
cdf_lead = 1 - np.exp(-lambda_lead * lead_time)

plt.figure(figsize=(10, 6))
plt.plot(lead_time, cdf_lead, 'b-', linewidth=2, label='CDF Lead Time')
plt.axhline(y=0.95, color='red', linestyle='--', label='95% probabilità')
plt.axvline(x=30, color='red', linestyle='--', label='30 giorni')
plt.axvline(x=10, color='green', linestyle='--', label='Media (10 giorni)')
plt.xlabel('Lead Time (giorni)')
plt.ylabel('Probabilità cumulata')
plt.title('Distribuzione del Lead Time e Livello di Servizio')
plt.legend()
plt.grid(True, alpha=0.3)

# Calcolo del costo delle scorte
days_coverage = np.arange(10, 41)
service_level = 1 - np.exp(-lambda_lead * days_coverage)
cost_factor = days_coverage / 10  # Costo proporzionale alla copertura

plt.figure(figsize=(10, 6))
plt.plot(days_coverage, service_level, 'bo-', linewidth=2, label='Livello di servizio')
plt.plot(days_coverage, cost_factor, 'ro-', linewidth=2, label='Costo relativo')
plt.axvline(x=30, color='purple', linestyle='--', label='Punto ottimale (95%)')
plt.xlabel('Giorni di copertura scorte')
plt.ylabel('Valore normalizzato')
plt.title('Trade-off: Livello di Servizio vs Costo Scorte')
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()

Grafico 1: Distribuzione del Lead Time e Livello di Servizio

Caratteristiche principali:

  • CDF del lead time: Mostra la probabilità cumulata che il lead time sia ≤ a un certo valore

  • Linee di riferimento: Media (10 giorni), 90° percentile (30 giorni), livello di servizio 95%

Osservazioni didattiche:

  • Crescita rapida iniziale: Nei primi 20 giorni, la CDF cresce rapidamente, coprendo circa il 63% della probabilità

  • Coda lunga caratteristica: La curva impiega altri 30 giorni per passare dal 63% al 95%, evidenziando la “coda pesante” della distribuzione esponenziale

  • Distanza media-percentile: Il 90° percentile (30 giorni) è 3 volte la media (10 giorni), aspetto cruciale per la gestione scorte

💡 Implicazioni aziendali:

  • Per garantire un livello di servizio del 95%, serve una copertura di 30 giorni vs una media di 10 giorni

  • Questo comporta costi di scorte tripli rispetto a quanto suggerirebbe la semplice media

  • La distribuzione esponenziale è pessima per la gestione scorte proprio per questa coda lunga

Grafico 2: Trade-off Livello di Servizio vs Costo Scorte

Caratteristiche principali:

  • Curva blu: Livello di servizio in funzione dei giorni di copertura

  • Curva rossa: Costo relativo delle scorte (proporzionale ai giorni)

  • Punto di ottimizzazione: Intersezione al 95% di servizio con 30 giorni

Osservazioni didattiche:

  • Rendimenti decrescenti: Ogni giorno aggiuntivo di copertura fornisce un incremento di servizio sempre minore

  • Costo lineare: Il costo cresce proporzionalmente con la copertura, creando un trade-off sfavorevole

  • Punto critico: Passare dal 90% al 95% di servizio richiede un aumento di costo del 50% (da 20 a 30 giorni)

💡 Analisi decisionale:

  • Zona efficiente: 10-20 giorni – buon compromesso tra costo e servizio

  • Zona inefficiente: Oltre 20 giorni – costi crescenti per piccoli benefici aggiuntivi

  • Decisione aziendale: Il management deve decidere se il 95% di servizio vale il triplo dei costi di scorta

Confronto tra i due grafici

Relazione CDF – Trade-off:

  • Il primo grafico mostra la distribuzione probabilistica del fenomeno

  • Il secondo grafico traduce la distribuzione in implicazioni economiche

  • Insieme, forniscono una visione completa per il decision-making

Interpretazione strategica:

  • Problema identificato: La distribuzione esponenziale crea un trade-off costi/benefici sfavorevole

  • Soluzione possibile: Cercare fornitori con distribuzioni più “compresse” (varianza minore)

  • Alternativa: Accettare livelli di servizio più bassi (es. 85-90%) con risparmi significativi

Validazione dei calcoli

I grafici confermano visivamente:

  • Media a 10 giorni: Punto in cui la CDF vale 1 – 1/e ≈ 63.2%

  • 90° percentile a 30 giorni: Punto in cui la CDF raggiunge 0.95

  • Costo relativo: 30 giorni = 3 volte la copertura media

Osservazione: Per raggiungere alti livelli di servizio (95%) con distribuzione esponenziale, serve una copertura molto superiore alla media (30 vs 10 giorni), evidenziando l’inefficienza di questa distribuzione per la gestione scorte.

Domanda di riflessione: Perché le aziende spesso sottostimano le scorte di sicurezza quando il lead time segue distribuzioni con code lunghe?
Risposta: Perché tendono a ragionare in termini di medie anziché di distribuzioni complete, sottovalutando il rischio degli eventi estremi.

Domanda strategica: Quali alternative alla distribuzione esponenziale potrebbero essere più convenienti per la gestione scorte?
Risposta: Distribuzioni con varianza minore (es. uniforme, normale con σ piccolo) o distribuzioni con code più corte (es. Weibull con forma > 1).

Pubblicità

Esercizio 5: Confronto tra Due Processi Aziendali

Testo: Un’azienda ha due reparti con diversi tempi di elaborazione:

  • Reparto A: tempo medio = 15 minuti
  • Reparto B: tempo medio = 20 minuti

Calcola:

  1. La probabilità che entrambi i reparti completino un task in meno di 10 minuti
  2. La probabilità che il reparto A sia più veloce del B su un singolo task

Risoluzione:

Passo 1: Parametri delle distribuzioni

Reparto A: λA = 1/15 ≈ 0.0667 minuti¹

Reparto B: λB = 1/20 = 0.05 minuti¹

Passo 2: Probabilità congiunta (indipendenza)

[math]\displaystyle \begin{aligned}
P(X_A<10 \cap X_B<10)&=P(X_A<10) \times P(X_B<10) \
&{}=(1-e^{-0.0667 \times 10}) \times (1-e^{-0.05 \times 10}) \
&{}=(1-e^{-0.667}) \times (1-e^{-0.5}) \
&{}=(1-0.5134) \times (1-0.6065) \
&=0.4866 \times 0.3935=0.1914
\end{aligned}[/math]

Probabilità del 19.14% che entrambi completino in meno di 10 minuti.

Passo 3: Probabilità che A sia più veloce di B

Per variabili esponenziali indipendenti:

[math]\displaystyle \begin{aligned}
P(X_A<X_B)&=\frac{\lambda_A}{\lambda_A+\lambda_B} \
&=\frac{0.0667}{0.0667+0.05}=\frac{0.0667}{0.1167} \
&=0.571
\end{aligned}[/math]

Il reparto A ha il 57.1% di probabilità di essere più veloce del B.

Codice Python:

# Confronto tra le due distribuzioni
lambda_A = 1/15
lambda_B = 1/20
x_comp = np.linspace(0, 60, 1000)
pdf_A = expon.pdf(x_comp, scale=1/lambda_A)
pdf_B = expon.pdf(x_comp, scale=1/lambda_B)

plt.figure(figsize=(12, 5))

plt.subplot(1, 2, 1)
plt.plot(x_comp, pdf_A, 'b-', linewidth=2, label='Reparto A (μ=15 min)')
plt.plot(x_comp, pdf_B, 'r-', linewidth=2, label='Reparto B (μ=20 min)')
plt.fill_between(x_comp[x_comp<10], pdf_A[x_comp<10], alpha=0.3, color='blue')
plt.fill_between(x_comp[x_comp<10], pdf_B[x_comp<10], alpha=0.3, color='red')
plt.axvline(x=10, color='green', linestyle='--', label='10 minuti')
plt.xlabel('Tempo (minuti)')
plt.ylabel('Densità di probabilità')
plt.title('Confronto Distribuzioni')
plt.legend()
plt.grid(True, alpha=0.3)

plt.subplot(1, 2, 2)
# Simulazione Monte Carlo per P(X_A < X_B)
np.random.seed(42)
n_sim = 10000
X_A = expon.rvs(scale=1/lambda_A, size=n_sim)
X_B = expon.rvs(scale=1/lambda_B, size=n_sim)
prob_A_faster = np.mean(X_A < X_B)

times = np.linspace(0, 50, 100)
prob_A_wins = lambda_A * np.exp(-lambda_A * times) * np.exp(-lambda_B * times)

plt.plot(times, prob_A_wins, 'purple', linewidth=2, label='Densità P(A wins)')
plt.axhline(y=0, color='black', linewidth=0.5)
plt.xlabel('Tempo del task (minuti)')
plt.ylabel('Densità di probabilità')
plt.title(f'P(A < B) = {prob_A_faster:.3f} (simulazione)')
plt.legend()
plt.grid(True, alpha=0.3)

plt.tight_layout()
plt.show()

Grafico 1: Confronto delle Distribuzioni dei Tempi di Elaborazione

Caratteristiche principali:

  • Due curve di densità: Blu per Reparto A (μ=15 min), Rosso per Reparto B (μ=20 min)

  • Aree colorate: Probabilità che entrambi completino in meno di 10 minuti

  • Linea verde di riferimento: 10 minuti – soglia di performance

Osservazioni didattiche:

  • Densità maggiore per A: La curva blu è più alta, indicando tempi generalmente più brevi

  • Shift a destra per B: La curva rossa è spostata verso tempi più lunghi, coerente con la media maggiore

  • Code esponenziali: Entrambe le distribuzioni mostrano la tipica coda lunga verso destra

  • Aree sotto le curve: Le aree colorate rappresentano P(X < 10) per ciascun reparto

Forse potrebbe interessarti anche:  Algoritmo K-Nearest Neighbors (K-NN) Spiegato in Modo Semplice con Esempi

💡 Analisi comparativa:

  • Reparto A più performante: Densità più concentrata a sinistra = tempi generalmente più brevi

  • Probabilità congiunta: L’area sovrapposta mostra visivamente perché P(entrambi < 10) = 19.14%

  • Soglia critica: A 10 minuti, il Reparto A ha già il 48.7% di probabilità di aver completato, mentre il B solo il 39.4%

Grafico 2: Probabilità che A sia più Veloce di B

Caratteristiche principali:

  • Curva viola: Densità di probabilità che A vinca in un tempo specifico

  • Area simulata: Conferma Monte Carlo del risultato teorico (57.1%)

  • Distribuzione asimmetrica: Mostra i tempi in cui A è più probabile che vinca

Osservazioni didattiche:

  • Massimo precoce: La densità è massima nei primi minuti, dove A ha vantaggio maggiore

  • Decadimento esponenziale: La probabilità che A vinca decresce col tempo

  • Conferma numerica: La simulazione (57.1%) matcha perfettamente il calcolo teorico

  • Integrale dell’area: L’area sotto tutta la curva viola corrisponde a P(A < B) = 57.1%

💡 Interpretazione probabilistica:

  • Formula elegante: P(A < B) = λ_A/(λ_A + λ_B) = 0.571

  • Indipendenza dalle medie assolute: Dipende solo dal rapporto tra i tassi

  • Simulazione validante: 10,000 estrazioni confermano la teoria

Confronto tra i due grafici

Relazione tra visualizzazioni:

  • Grafico 1: Mostra le distribuzioni marginali di A e B separatamente

  • Grafico 2: Mostra la distribuzione congiunta del “vincitore”

  • Transizione concettuale: Da “come sono i singoli” a “chi vince la gara”

Proprietà matematiche evidenziate:

  • Memorylessness: Entrambe le distribuzioni la possiedono

  • Indipendenza: I due processi sono indipendenti

  • Convoluzione: La distribuzione della differenza deriva dalle due esponenziali

Implicazioni Manageriali

Decisioni aziendali supportate:

  • Assegnazione task critici: Preferire il Reparto A per task time-sensitive

  • Bilanciamento carico: Assegnare il 57% dei task urgenti ad A, 43% a B

  • Investimenti miglioramento: Capire che anche piccoli miglioramenti ad A (es. μ=14 min) aumenterebbero significativamente P(A < B)

💡 Osservazione strategica:
Il vantaggio del Reparto A (57.1% vs 42.9%) è meno pronunciato di quanto la differenza nelle medie (15 vs 20 min, -25%) potrebbe suggerire. Questo perché la distribuzione esponenziale ha alta varianza.

Validazione Incrociata

Coerenza dei risultati:

  • Calcolo teorico: P(A < B) = 0.571

  • Simulazione Monte Carlo: 0.571 (coerente)

  • Evidenza visiva: La curva blu domina quella rossa nei primi minuti

  • Interpretazione intuitiva: A è più veloce, ma l’alta variabilità dà a B chances di vittoria

Osservazione: La formula [math]P(X_A < X_B) = \lambda_A/(\lambda_A + \lambda_B)[/math] è elegante e mostra che la probabilità dipende solo dal rapporto tra i tassi, non dai valori assoluti.

Domanda di riflessione: Perché P(A < B) non è semplicemente 15/(15+20) = 42.9%?
Risposta: Perché la probabilità dipende dai tassi λ (inversi delle medie), non dalle medie direttamente: λ_A/(λ_A + λ_B) = (1/15)/(1/15 + 1/20) = 0.571

Domanda manageriale: Come cambierebbe la probabilità se il Reparto A migliorasse la sua media a 12 minuti?
Risposta: λ_A = 1/12 ≈ 0.0833, quindi P(A < B) = 0.0833/(0.0833 + 0.05) = 0.625 → 62.5% di probabilità di vittoria.

Analisi degli Esercizi

Esercizio 1: Tempo di Risposta del Servizio Clienti

  • (L’insegnamento): Questo esercizio è fondamentale perché introduce visivamente il concetto di “coda lunga”. La media è di 2 minuti, ma l’8% dei clienti aspetta più di 5 minuti (2.5 volte la media).
  • Valore Applicativo: Dimostra ai manager che gestire solo sulla media è ingannevole. La distribuzione esponenziale ci dice che, se la media è 2 minuti, un’attesa di 10 minuti (5 volte la media) non è un’anomalia, ma un evento statisticamente previsto (P(X>10) = e⁻²·⁵ = 0.8%). Questo giustifica la necessità di sistemi di gestione delle code (FIFO, priorità) e la definizione di Service Level Agreement (SLA) basati sui percentili (es. “rispondere al 95% dei clienti entro 8 minuti”), non sulla media.

Esercizio 2: Affidabilità di un Server Web

  • L’esercizio sposta l’attenzione dalla CDF (P(X ≤ x)) alla Funzione di Sopravvivenza (P(X > x)). Inoltre, introduce il calcolo inverso: il percentile.
  • Valore Applicativo: Questo è il cuore dell’ingegneria dell’affidabilità (Reliability Engineering). La domanda “qual è il tempo entro cui si guasta con probabilità del 90%” (104 giorni) è molto più utile della media (45 giorni) per pianificare la manutenzione. Permette di rispondere a domande come: “Se voglio una probabilità di guasto inferiore al 5% durante il Black Friday (7 giorni), il mio sistema è adeguato?”.

Esercizio 3: Analisi del Tasso di Abbandono (Mancanza di Memoria)

  • È l’esercizio concettualmente più importante. La proprietà di “mancanza di memoria” è profondamente controintuitiva.
  • Valore Applicativo: Questo esercizio è una “cartina di tornasole” per il modello. Ci costringe a chiederci: “Il mio processo è davvero senza memoria?”.
    • Se sì (es. arrivo di pacchetti su un router), il modello esponenziale è perfetto.
    • Se no (es. usura di un componente, pazienza di un cliente), il modello è sbagliato. Un cliente che aspetta da 5 minuti è più propenso ad andarsene nei 10 minuti successivi, non meno o uguale. In quel caso, si devono usare distribuzioni diverse (come la Weibull). Questo esercizio insegna il limite critico del modello.

Esercizio 4: Ottimizzazione delle Scorte con Lead Time

  • Traduce direttamente la probabilità in decisioni di costo. È il miglior esempio di “coda lunga” che impatta il bilancio.
  • Valore Applicativo: È un esercizio strategico. Mostra che per avere un livello di servizio del 95% (coprire il lead time il 95% delle volte), l’azienda deve tenere scorte per 30 giorni, nonostante il lead time medio sia di soli 10 giorni. Il costo della sicurezza è il triplo della media. Questo grafico è perfetto per spiegare al top management perché le scorte di sicurezza sono così alte e costose, giustificando investimenti per ridurre non solo la media del lead time, ma soprattutto la sua varianza.

Esercizio 5: Confronto tra Due Processi Aziendali

  • Introduce il concetto di “gara” tra processi esponenziali (P(X_A < X_B)). La formula λ_A / (λ_A + λ_B) è incredibilmente elegante e potente.
  • Valore Applicativo: Questo è fondamentale per l’allocazione delle risorse e l’analisi della concorrenza.
    • Affidabilità: Se ho due componenti in parallelo (A e B) e mi chiedo quale si guasterà prima.
    • Performance: Se ho due team (A e B) che elaborano pratiche, posso calcolare la probabilità che il Team A “vinca”.
    • A/B Testing: Se A e B sono due versioni di un processo di checkout, posso modellare chi finisce prima. Dimostra che il vantaggio di A (media 15 min vs 20) non è lineare: A vince solo il 57.1% delle volte, non il 75% (come un rapporto ingenuo 20/15 potrebbe suggerire).
Pubblicità