Statistica Univariata: 6 Esercizi Risolti con Applicazioni Economiche e Sociali

Cerca:

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Statistica Univariata Esercizi Pratici

Dalla comprensione delle vendite giornaliere di un negozio all’analisi della disuguaglianza di reddito in una società, questi 6 esercizi risolti ti aiuteranno a padroneggiare i concetti chiave. Applicheremo i principi statistici a scenari reali in contesti economici e sociali. Ogni esercizio è corredato da una soluzione dettagliata, spiegazioni teoriche concise e, per gli esempi più complessi, anche il codice Python per permetterti di replicare e sperimentare.

Preparati a calcolare media e deviazione standard, interpretare frequenze relative, individuare mediana e quartili, costruire boxplot, e comprendere a fondo l’Indice di Gini e le curve di concentrazione.

Iniziamo!

Argomenti coperti:
Statistica Descrittiva Univariata e Bivariata, Rappresentazioni Grafiche Univariate e Bivariate
Sconto 40% 9,99€

Esercizio 1 (Base): Media e Deviazione Standard – Vendite Mensili

Scenario:

Un negozio di abbigliamento registra le vendite giornaliere (in €) per una settimana: [120, 150, 130, 160, 140, 170, 110].

Domande:

  • Calcola la media delle vendite.
  • Calcola la deviazione standard.

Soluzione:

Media:

[math]\displaystyle \bar{x} = \frac{120+150+130+160+140+170+110}{7} = \frac{980}{7} = 140 \,€[/math]

Teoria: La media è la somma dei valori divisa per il numero di osservazioni. Misura la tendenza centrale.

Deviazione standard:

Calcola gli scarti quadratici:

[math]\displaystyle (120-140)^2=400, (150-140)^2=100, \dots[/math]

Somma degli scarti quadratici: [math]400+100+100+400+0+900+900=2800[/math].

Varianza: [math]\displaystyle \sigma^2 = \frac{2800}{7} = 400[/math].

Deviazione standard: [math]\sigma = \sqrt{400} = 20 \,€[/math].

Teoria: La deviazione standard misura la dispersione dei dati attorno alla media.

Media e Deviazione Standard – Vendite Mensili

Applicazione: Fondamentale per qualsiasi attività commerciale. La media fornisce un’indicazione rapida della performance tipica (vendite medie settimanali/mensili), utile per stabilire obiettivi o confrontarsi con periodi precedenti. La deviazione standard è cruciale per valutare la volatilità delle vendite. Un’alta deviazione standard indica che le vendite sono molto variabili giorno per giorno, suggerendo che l’azienda potrebbe avere flussi di cassa imprevedibili o che la domanda è instabile. Una bassa deviazione standard, al contrario, indica vendite più stabili e prevedibili, facilitando la gestione delle scorte e la pianificazione finanziaria.

Esercizio 2 (Base-Intermedio): Frequenze Relative – Indagine Sociale

Scenario:

Un sondaggio su 200 cittadini chiede il grado di soddisfazione per un servizio pubblico (1=Insoddisfatto, 5=Molto soddisfatto). Frequenze assolute: [30, 50, 60, 40, 20].

Forse potrebbe interessarti anche:  Probabilità e Statistica: Guida Completa ai Concetti Fondamentali per Studenti Universitari con Esempi Pratici

Domanda:

Calcola le frequenze relative e percentuali.

Soluzione:

Frequenze relative:

[math]\displaystyle \frac{30}{200}=0.15, \frac{50}{200}=0.25, \dots[/math]

Risultato: [math][0.15,0.25,0.30,0.20,0.10][/math].

Frequenze percentuali:

Moltiplica per 100: [math][15\%,25\%,30\%,20\%,10\%][/math].

Teoria: Le frequenze relative standardizzano i conteggi per confrontare distribuzioni diverse.

Frequenze Relative – Indagine Sociale

Applicazione: Essenziale nelle indagini sociali, sondaggi d’opinione e studi di mercato. Le frequenze relative e percentuali permettono di trasformare i conteggi grezzi in proporzioni facilmente comprensibili e confrontabili. Ad esempio, sapere che il 30% dei cittadini è “abbastanza soddisfatto” di un servizio pubblico è molto più significativo che sapere che 60 persone lo sono su 200. Questo permette ai decisori politici o ai gestori di servizi di identificare rapidamente le aree di forza e debolezza, orientando le strategie di miglioramento.

Esercizio 3 (Intermedio): Mediana e Quartili – Produzione Industriale

Scenario:

Tempi di produzione (in minuti) per 11 lotti: [22, 25, 19, 30, 21, 23, 28, 18, 27, 24, 20].

Domande:

  • Ordina i dati e trova la mediana.
  • Calcola il primo e terzo quartile.

Soluzione:

Dati ordinati: [math][18,19,20,21,22,23,24,25,27,28,30][/math].

Mediana (posizione 6): [math]23[/math] minuti.

Quartili:

  • [math]Q1[/math] (25° percentile): valore in posizione [math]0.25 \times 11 = 2.75 \to 20.25[/math] minuti.
  • [math]Q3[/math] (75° percentile): valore in posizione [math]8.25 \to 26[/math] minuti.

Teoria: La mediana divide i dati in due metà; i quartili segmentano il 25% e 75% dei dati.

 

Esercizio 4 (Intermedio-Avanzato): Boxplot – Redditi Familiari

Scenario:

Redditi annui (in k€) di 10 famiglie: [25, 35, 30, 40, 22, 50, 28, 45, 32, 60].

Domanda:

Costruisci un boxplot e commenta la distribuzione.

Soluzione:

Ordina i dati: [math][22,25,28,30,32,35,40,45,50,60][/math].

Calcola:

  • Mediana: [math]33.5[/math] (media di 32 e 35).
  • [math]Q1=28[/math], [math]Q3=45[/math].
  • IQR: [math]45-28=17[/math].

Limiti per outliers:

  • [math]Q1 – 1.5 \times IQR = -2.5[/math] (nessun outlier inferiore)
  • [math]Q3 + 1.5 \times IQR = 70.5[/math] (nessun outlier superiore).

Boxplot: Da 22 a 60, con box tra 28 e 45 e linea a 33.5.

Teoria: Il boxplot visualizza mediana, quartili e dispersione. Qui la distribuzione è leggermente skewed a destra.

Forse potrebbe interessarti anche:  Document Understanding: la guida completa a OCR, Layout Analysis e Information Extraction con Python

Codice Python per il Boxplot:


import matplotlib.pyplot as plt
import numpy as np

# Dati
redditi = [25, 35, 30, 40, 22, 50, 28, 45, 32, 60]

# Boxplot
plt.figure(figsize=(8, 4))
plt.boxplot(redditi, vert=False, patch_artist=True, widths=0.6)
plt.title("Distribuzione dei redditi familiari (k€)")
plt.xlabel("Reddito annuo")
plt.grid(axis='x', linestyle='--')
plt.show()

Spiegazione: boxplot visualizza mediana, quartili e eventuali outlier. vert=False crea un boxplot orizzontale. Il risultato mostra una leggera asimmetria verso destra (coda lunga a valori alti).

Pubblicità

Esercizio 5 (Avanzato): Indice di Gini – Disuguaglianza di Reddito

Scenario:

Redditi (in k€) di 5 individui: [math][10,20,30,40,100][/math].

Domanda:

Calcola l’indice di Gini e interpretalo.

Soluzione:

Calcola le proporzioni cumulative di reddito e popolazione (vedi tabella).

Formula:

[math]\displaystyle G = 1 – \sum (p_i – p_{i-1})(q_i + q_{i-1})[/math]

Dove [math]p_i[/math] è la proporzione cumulativa della popolazione, [math]q_i[/math] del reddito.

Risultato: [math]G \approx 0.36[/math].

Teoria: L’indice di Gini varia tra 0 (uguaglianza perfetta) e 1 (disuguaglianza massima). Qui indica una discreta disuguaglianza.

Codice Python per la Curva di Lorenz e Indice di Gini:


from matplotlib import pyplot as plt
import numpy as np

# Dati
redditi = [10, 20, 30, 40, 100]
n = len(redditi)
popolazione = np.arange(1, n+1) / n
redditi_cumulativi = np.cumsum(sorted(redditi)) / sum(redditi)
popolazione = np.insert(popolazione, 0, 0)
redditi_cumulativi = np.insert(redditi_cumulativi, 0, 0)

# Curva di Lorenz
plt.figure(figsize=(8, 6))
plt.plot(popolazione, redditi_cumulativi, marker='o', label='Curva di Lorenz')
plt.plot([0, 1], [0, 1], '--', label='Bisettrice (equità perfetta)')
plt.fill_between(popolazione, popolazione, redditi_cumulativi, alpha=0.2)
plt.title("Curva di Lorenz - Disuguaglianza di reddito")
plt.xlabel("Cumulativo della popolazione")
plt.ylabel("Cumulativo del reddito")
plt.legend()
plt.grid()
plt.show()

# Calcolo indice di Gini
gini = 1 - sum((popolazione[1:] - popolazione[:-1]) * (redditi_cumulativi[1:] + redditi_cumulativi[:-1])) / 1
print(f"Indice di Gini: {gini:.2f}")

Output: Grafico con curva di Lorenz e area di disuguaglianza. Indice di Gini stampato a console (es: 0.36).

Spiegazione: La curva si allontana dalla bisettrice quanto maggiore è la disuguaglianza. L’area tra la curva e la bisettrice è proporzionale all’indice di Gini.

—

Esercizio 6 (Avanzato): Analisi di Concentrazione – Quote di Mercato

Scenario:

5 aziende hanno quote di mercato: [math][50\%,20\%,15\%,10\%,5\%][/math].

Domanda:

Disegna la curva di Lorenz e calcola l’indice di concentrazione.

Soluzione:

Ordina le quote in modo crescente: [math][5\%,10\%,15\%,20\%,50\%][/math].

Calcola le proporzioni cumulative:

  • Popolazione cumulativa: [math][20\%,40\%,60\%,80\%,100\%][/math].
  • Reddito cumulativo: [math][5\%,15\%,30\%,50\%,100\%][/math].

Indice di concentrazione: Area tra la curva di Lorenz e la bisettrice. [math]C \approx 0.4[/math]

Forse potrebbe interessarti anche:  Test d'Ipotesi sulla Media con Varianza Nota: Esercizio Risolto e Spiegazione Dettagliata

Teoria: La curva di Lorenz mostra la disuguaglianza nella distribuzione; l’indice [math]C[/math] è un derivato del Gini.

Codice Python per la Curva di Concentrazione:


import matplotlib.pyplot as plt
import numpy as np

# Dati
quote = [5, 10, 15, 20, 50]  # In %
n = len(quote)
popolazione = np.arange(1, n+1) / n
quote_cumulative = np.cumsum(sorted(quote)) / sum(quote)
popolazione = np.insert(popolazione, 0, 0)
quote_cumulative = np.insert(quote_cumulative, 0, 0)

# Plot
plt.figure(figsize=(8, 6))
plt.plot(popolazione, quote_cumulative, marker='o', label='Curva di Lorenz')
plt.plot([0, 1], [0, 1], '--', label='Equità perfetta')
plt.fill_between(popolazione, popolazione, quote_cumulative, color='skyblue', alpha=0.4)
plt.title("Concentrazione del mercato")
plt.xlabel("Cumulativo delle aziende")
plt.ylabel("Cumulativo delle quote")
plt.legend()
plt.grid()
plt.show()

# Indice di concentrazione (Gini)
C = 1 - sum((popolazione[1:] - popolazione[:-1]) * (quote_cumulative[1:] + quote_cumulative[:-1]))
print(f"Indice di concentrazione: {C:.2f}")

Output: Curva di Lorenz per le quote di mercato. Indice di concentrazione stampato (es: 0.40).

Nota:

Prerequisiti:

Installa le librerie con:


pip install matplotlib numpy

Personalizzazione:

Modifica plt.title(), plt.xlabel(), o i colori per adattare i grafici al tuo stile.

Esercizi 1-3:

Non richiedevano grafici, ma per l’Esercizio 2 (frequenze), puoi usare un bar plot:


import matplotlib.pyplot as plt

categorie = ['1', '2', '3', '4', '5']
frequenze = [15, 25, 30, 20, 10]
plt.bar(categorie, frequenze)
plt.title("Soddisfazione del servizio pubblico")
plt.ylabel("%")
plt.show()

Pubblicità