Test di Mann-Whitney U: 6 Esercizi Pratici Svolti per Capirlo Davvero (con Esempi Reali)

Cerca:

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
esempi pratici test mann-whitney

Quando i Dati Sono Imperfetti, la Tua Analisi Non Deve Esserlo

I tuoi dati non seguono una curva a campana perfetta. I campioni sono piccoli, magari raccolti da un sondaggio su Instagram o da un primo test utente. L’idea di usare un classico t-test ti preoccupa, perché i suoi presupposti sembrano un dogma invalicabile. E ora?

Questa non è la fine della tua analisi, è l’inizio. Esiste uno strumento robusto, flessibile e sorprendentemente intuitivo, pensato proprio per queste situazioni “imperfette” ma incredibilmente comuni. È il test di Mann-Whitney U, un coltellino svizzero della statistica che non ti chiede di forzare i tuoi dati in stampi innaturali. Invece di medie e varianze, parla il linguaggio dei ranghi, permettendoti di scoprire se due gruppi sono realmente diversi, anche quando i numeri sono pochi e bizzarri.

Attraverso 6 esercizi pratici, passeremo dal mondo dei social media a quello delle smart home, mostrando non solo come si calcola, ma perché è la scelta giusta in contesti reali. 💡

6 Esercizi Svolti sul Test di Mann-Whitney U

Ecco sei esercizi pratici con soluzioni passo-passo per capire a fondo il test.


Esercizio 1: Confrontare il tempo di risposta sui social media (Livello Facile)

Contesto: Come Social Media Manager, vuoi sapere se il tempo di risposta ai commenti è diverso tra Instagram e TikTok. Affrontiamo uno scenario classico: pochi dati, nessuna garanzia di normalità. Qui il Mann-Whitney U brilla.

Dati:

  • Instagram (n₁=5): 45, 60, 32, 55, 48
  • TikTok (n₂=5): 28, 35, 40, 22, 30
  • Livello di significatività (α): 0.05

1. Ordinamento e Ranghi:

  • Dati combinati: 22(T), 28(T), 30(T), 32(I), 35(T), 40(T), 45(I), 48(I), 55(I), 60(I)
  • Ranghi: 1(T), 2(T), 3(T), 4(I), 5(T), 6(T), 7(I), 8(I), 9(I), 10(I)

2. Somma dei Ranghi (R):

  • R₁ (Instagram): 4 + 7 + 8 + 9 + 10 = 38
  • R₂ (TikTok): 1 + 2 + 3 + 5 + 6 = 17

3. Calcolo di U:

[math]\displaystyle \begin{aligned}
U_1 &= (n_1 \cdot n_2) + \frac{n_1(n_1+1)}{2} – R_1 \\
&= (5 \cdot 5) + \frac{5(6)}{2} – 38 \\
&= 25 + 15 – 38 = 2
\end{aligned}[/math]
[math]\displaystyle \begin{aligned}
U_2 &= (n_1 \cdot n_2) + \frac{n_2(n_2+1)}{2} – R_2 \\
&= (5 \cdot 5) + \frac{5(6)}{2} – 17 \\
&= 25 + 15 – 17 = 23
\end{aligned}[/math]

Si sceglie il valore minimo: U = 2.

4. Decisione:

Il valore critico per n₁=5, n₂=5 e α=0.05 (test a due code) è 2.

Poiché U = 2 ≤ 2 (il nostro valore è uguale o inferiore al valore critico), rifiutiamo l’ipotesi nulla (H₀).

Conclusione: C’è una differenza statisticamente significativa nei tempi di risposta tra le due piattaforme.


Esercizio 2: Valutare l’efficacia di un’app per il fitness (Livello Facile-Medio)

Contesto: Come Product Manager, stai valutando se una nuova versione “premium” di un’app di fitness porta a bruciare più calorie rispetto alla versione “base”.

Dati (calorie bruciate):

  • Base (n₁=5): 250, 300, 280, 320, 270
  • Premium (n₂=5): 220, 350, 290, 310, 260
  • Livello di significatività (α): 0.05

1. Ordinamento e Ranghi:

  • Dati combinati: 220(P), 250(B), 260(P), 270(B), 280(B), 290(P), 300(B), 310(P), 320(B), 350(P)
  • Ranghi: 1(P), 2(B), 3(P), 4(B), 5(B), 6(P), 7(B), 8(P), 9(B), 10(P)

2. Somma dei Ranghi (R):

  • R₁ (Base): 2 + 4 + 5 + 7 + 9 = 27
  • R₂ (Premium): 1 + 3 + 6 + 8 + 10 = 28

3. Calcolo di U:

[math]\displaystyle \begin{aligned}
U_1 &= (5 \cdot 5) + \frac{5(6)}{2} – 27 \\
&= 25 + 15 – 27 = 13
\end{aligned}[/math]
[math]\displaystyle \begin{aligned}
U_2 &= (5 \cdot 5) + \frac{5(6)}{2} – 28 \\
&= 25 + 15 – 28 = 12
\end{aligned}[/math]

Forse potrebbe interessarti anche:  Hidden Markov Models: cosa sono, come funzionano e perché rivelano ciò che non possiamo osservare

Si sceglie il valore minimo: U = 12.

4. Decisione:

Il valore critico per n₁=5, n₂=5 e α=0.05 è 2.

Poiché U = 12 > 2, non rifiutiamo l’ipotesi nulla (H₀).

Conclusione: Non c’è una differenza statisticamente significativa tra la versione base e quella premium.


Esercizio 3: Analisi di recensioni su e-commerce (Livello Medio)

Contesto: Come E-commerce Analyst, devi capire se i prodotti “eco-friendly” ricevono valutazioni (da 1 a 5 stelle) diverse da quelli tradizionali. I dati sono ordinali, quindi il Mann-Whitney è la scelta ideale.

Dati (stelle):

  • Eco (n₁=6): 4, 3, 5, 2, 4, 3
  • Tradizionali (n₂=6): 1, 2, 3, 4, 2, 1
  • Livello di significatività (α): 0.01

1. Ordinamento e Ranghi (con ties):

  • Dati combinati: 1(T), 1(T), 2(T), 2(T), 2(E), 3(T), 3(E), 3(E), 4(T), 4(E), 4(E), 5(E)
  • Assegnazione Ranghi (con media per i pareggi):
    • Due ‘1’: rango [math]\frac{1+2}{2} = 1.5[/math]
    • Tre ‘2’: rango [math]\frac{3+4+5}{3} = 4[/math]
    • Tre ‘3’: rango [math]\frac{6+7+8}{3} = 7[/math]
    • Tre ‘4’: rango [math]\frac{9+10+11}{3} = 10[/math]
    • Un ‘5’: rango 12

2. Somma dei Ranghi (R):

  • R₁ (Eco): 4 (per il ‘2’) + 7 + 7 (per i ‘3’) + 10 + 10 (per i ‘4’) + 12 (per il ‘5’) = 50
  • R₂ (Tradizionali): 1.5 + 1.5 (per i ‘1’) + 4 + 4 (per i ‘2’) + 7 (per il ‘3’) + 10 (per il ‘4’) = 28

3. Calcolo di U:

[math]\displaystyle \begin{aligned}
U_1 &= (6 \cdot 6) + \frac{6(7)}{2} – 50 \\
&= 36 + 21 – 50 = 7
\end{aligned}[/math]
[math]\displaystyle \begin{aligned}
U_2 &= (6 \cdot 6) + \frac{6(7)}{2} – 28 \\
&= 36 + 21 – 28 = 29
\end{aligned}[/math]

Si sceglie il valore minimo: U = 7.

4. Decisione:

Il valore critico per n₁=6, n₂=6 e α=0.01 (due code) è 3.

Poiché U = 7 > 3, non rifiutiamo l’ipotesi nulla (H₀).

Conclusione: Non c’è una differenza statisticamente significativa nelle recensioni tra i due tipi di prodotto a questo livello di significatività.


Esercizio 4: Studio sui consumi energetici in smart home (Livello Medio)

Contesto: Come Data Scientist in ambito IoT, confronti i consumi (kWh) di case con e senza un sistema AI di gestione energetica.

Dati (kWh/giorno):

  • Con AI (n₁=6): 8, 10, 7, 9, 11, 6
  • Senza AI (n₂=6): 12, 14, 13, 15, 10, 11
  • Livello di significatività (α): 0.05

1. Ordinamento e Ranghi (con ties):

  • Dati combinati: 6(A), 7(A), 8(A), 9(A), 10(A), 10(S), 11(A), 11(S), 12(S), 13(S), 14(S), 15(S)
  • Ranghi (con media):
    • Due ’10’: rango [math]\frac{5+6}{2} = 5.5[/math]
    • Due ’11’: rango [math]\frac{7+8}{2} = 7.5[/math]

2. Somma dei Ranghi (R):

  • R₁ (Con AI): 1 + 2 + 3 + 4 + 5.5 + 7.5 = 23
  • R₂ (Senza AI): 5.5 + 7.5 + 9 + 10 + 11 + 12 = 55

3. Calcolo di U:

[math]\displaystyle \begin{aligned}
U_1 &= (6 \cdot 6) + \frac{6(7)}{2} – 23 \\
&= 36 + 21 – 23 = 34
\end{aligned}[/math]
[math]\displaystyle \begin{aligned}
U_2 &= (6 \cdot 6) + \frac{6(7)}{2} – 55 \\
&= 36 + 21 – 55 = 2
\end{aligned}[/math]

Si sceglie il valore minimo: U = 2.

4. Decisione:

Il valore critico per n₁=6, n₂=6 e α=0.05 (due code) è 5.

Poiché U = 2 < 5, rifiutiamo l’ipotesi nulla (H₀).

Conclusione: I consumi energetici sono significativamente diversi; le case con AI consumano di meno.


Esercizio 5: Confronti in telemedicina (Livello Medio-Difficile)

Contesto: Come Analista Sanitario, vuoi testare l’ipotesi specifica che i tempi di attesa in telemedicina siano inferiori per i pazienti urbani rispetto a quelli rurali. Questa è un’ipotesi direzionale.

Forse potrebbe interessarti anche:  MAD in Data Science: significato, formule, esempi e applicazioni nel forecasting e nell'anomaly detection

Dati (minuti di attesa):

  • Urbani (n₁=7): 5, 8, 10, 6, 12, 7, 9
  • Rurali (n₂=7): 15, 20, 18, 22, 16, 19, 17
  • Livello di significatività (α): 0.05, test unilaterale

1. Ordinamento e Ranghi:

I due gruppi non si sovrappongono.

  • Ranghi Urbani: 1, 2, 3, 4, 5, 6, 7
  • Ranghi Rurali: 8, 9, 10, 11, 12, 13, 14

2. Somma dei Ranghi (R):

  • R₁ (Urbani): 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28
  • R₂ (Rurali): 8 + 9 + 10 + 11 + 12 + 13 + 14 = 77

3. Calcolo di U:

[math]\displaystyle \begin{aligned}
U_1 &= (7 \cdot 7) + \frac{7(8)}{2} – 28 \\
&= 49 + 28 – 28 = 49
\end{aligned}[/math]
[math]\displaystyle \begin{aligned}
U_2 &= (7 \cdot 7) + \frac{7(8)}{2} – 77 \\
&= 49 + 28 – 77 = 0
\end{aligned}[/math]

U = 0.

4. Decisione:

Il valore critico per n₁=7, n₂=7 e α=0.05 (test unilaterale) è 11.

Poiché U = 0 < 11, rifiutiamo l’ipotesi nulla (H₀).

Conclusione: I tempi di attesa per i pazienti urbani sono significativamente inferiori a quelli dei pazienti rurali.


Esercizio 6: Impatto ambientale di veicoli (Livello Difficile)

Contesto: Come Analista Ambientale, confronti le emissioni di CO₂ (g/km) tra veicoli elettrici e ibridi. Con campioni un po’ più grandi, possiamo introdurre l’approssimazione a Z.

Dati (g/km CO₂):

  • Elettrici (n₁=7): 20, 25, 18, 30, 22, 28, 15
  • Ibridi (n₂=8): 35, 40, 32, 45, 38, 42, 50, 33
  • Livello di significatività (α): 0.05

1. Ordinamento e Ranghi:

Anche qui, i due gruppi non si sovrappongono.

  • Ranghi Elettrici: 1, 2, 3, 4, 5, 6, 7
  • Ranghi Ibridi: 8, 9, 10, 11, 12, 13, 14, 15

2. Somma dei Ranghi (R):

  • R₁ (Elettrici): 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28
  • R₂ (Ibridi): 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 = 92

3. Calcolo di U:

[math]\displaystyle \begin{aligned}
U_1 &= (7 \cdot 8) + \frac{7(8)}{2} – 28 \\
&= 56 + 28 – 28 = 56
\end{aligned}[/math]
[math]\displaystyle \begin{aligned}
U_2 &= (7 \cdot 8) + \frac{8(9)}{2} – 92 \\
&= 56 + 36 – 92 = 0
\end{aligned}[/math]

U = 0.

4. Approssimazione a Z (per campioni più grandi):

Media di U ([math]\mu_U[/math]):

[math]\displaystyle \mu_U = \frac{n_1 \cdot n_2}{2} = \frac{7 \cdot 8}{2} = 28[/math]

Deviazione standard di U ([math]\sigma_U[/math]):

[math]\displaystyle \sigma_U = \sqrt{\frac{n_1 \cdot n_2(n_1+n_2+1)}{12}} = \sqrt{\frac{7 \cdot 8(7+8+1)}{12}} \approx 8.64[/math]

Calcolo Z:

[math]\displaystyle Z = \frac{U – \mu_U}{\sigma_U} = \frac{0 – 28}{8.64} \approx -3.24[/math]

5. Decisione:

Per α=0.05 (due code), il valore critico di Z è ±1.96.

Poiché [math]|Z| = 3.24 > 1.96[/math], rifiutiamo l’ipotesi nulla (H₀).

Conclusione: Le emissioni dei veicoli elettrici sono significativamente inferiori a quelle dei veicoli ibridi.


Risorse Pratiche: Codice e Strumenti Utili 💻

Calcolare il test a mano è fondamentale per capirne la logica, ma nella pratica quotidiana userai quasi sempre un software statistico. Ecco come eseguire il test in Python :

Snippet di Codice in Python

In Python, la libreria più comune per le operazioni statistiche è SciPy. La funzione da usare è scipy.stats.mannwhitneyu.

Prendiamo i dati dell’Esercizio 1 (Social Media):

  • Instagram: [45, 60, 32, 55, 48]
  • TikTok: [28, 35, 40, 22, 30]

Python

# Importa la funzione necessaria dalla libreria SciPy
from scipy.stats import mannwhitneyu

Definisci i dati dei due campioni
instagram_tempi = [45, 60, 32, 55, 48]
tiktok_tempi = [28, 35, 40, 22, 30]

Esegui il test di Mann-Whitney U (bilaterale di default)
statistica_u, p_value = mannwhitneyu(instagram_tempi, tiktok_tempi, alternative='two-sided')

print(f"Statistica U: {statistica_u}")
print(f"P-value: {p_value}")

Interpreta il risultato in base al livello di significatività (alpha)
alpha = 0.05
if p_value < alpha:
print("Poiché il p-value è minore di alpha, rifiutiamo l'ipotesi nulla: c'è una differenza significativa.")
else:
print("Poiché il p-value non è minore di alpha, non possiamo rifiutare l'ipotesi nulla.")

Output Atteso:

Statistica U: 2.0
P-value: 0.027773229878200878
Poiché il p-value è minore di alpha, rifiutiamo l'ipotesi nulla: c'è una differenza significativa.

Nota: Il valore statistica_u (2.0) corrisponde esattamente a quello che abbiamo calcolato a mano. Il p-value (≈0.028) è inferiore al nostro α di 0.05, confermando la decisione di rifiutare H₀.

Forse potrebbe interessarti anche:  Excel e Python: Perché l'integrazione (e non la scelta) è il futuro della Data Analysis

Risorse Raccomandate per Tabelle di Valori Critici

Mann-Whitney Table

 Tabella completa per test a due code, con valori critici per n₁ e n₂ da 3 a 20 e α = 0.05, 0.02, 0.01.

Include anche una sezione per test unilaterale. È una risorsa chiara e compatta, ideale per gli esercizi dell’articolo (es. n=5-7).


Perché Questi Esercizi Sono Importanti:

  • Esercizio 1 (Social Media): È l’entry-level perfetto. Mostra come, anche con pochi dati raccolti in un pomeriggio, si possa trarre una conclusione statistica valida senza complicazioni.
  • Esercizio 2 (Fitness App): Insegna una lezione di umiltà statistica. Il risultato non è significativo, ricordandoci che una differenza apparente non è sempre una differenza reale. Fondamentale nell’A/B testing.
  • Esercizio 3 (E-commerce): Introduce due sfide comuni: dati ordinali (le stelle) e valori uguali (ties). Mostra come il test si adatti elegantemente a dati non numerici, un caso d’uso frequentissimo.
  • Esercizio 4 (Smart Home): Sottolinea l’importanza del disegno sperimentale. La nota sul test di Wilcoxon per dati appaiati (es. stesse case prima e dopo) chiarisce che la scelta del test dipende da come sono stati raccolti i dati, non solo dalla loro natura.
  • Esercizio 5 (Telemedicina): Illustra la potenza del test unilaterale. Quando si ha un’ipotesi direzionale (“inferiore a” o “superiore a”), questo test è più potente e specifico. Il risultato estremo (U=0) lo rende un esempio chiarissimo.
  • Esercizio 6 (Veicoli): Fa da ponte verso l’analisi statistica su larga scala. Introduce l’approssimazione a Z, che è la logica usata da tutti i software statistici per calcolare il p-value con campioni più grandi. Stimola anche una riflessione più profonda: ci interessa solo la mediana (Mann-Whitney) o l’intera forma della distribuzione (Kolmogorov-Smirnov)?
Pubblicità