Test t di Welch: Quando Usarlo, Formula, Esempi Pratici

Cerca:

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Introduzione:

Nel campo dell’analisi statistica, il confronto tra le medie di due gruppi indipendenti è una pratica fondamentale. Il test t di Student è uno strumento ampiamente utilizzato per questo scopo, ma si basa sull’assunzione che le varianze dei due gruppi siano uguali (omoschedasticità). Tuttavia, in molte situazioni reali, questa assunzione non è valida. È qui che entra in gioco il test t di Welch, una variante più robusta che consente di confrontare le medie di due gruppi indipendenti anche quando le loro varianze sono diverse (eteroschedasticità). Questo articolo esplorerà in dettaglio il test t di Welch, illustrando quando e come utilizzarlo, fornendo la formula matematica, un esempio pratico passo-passo e un’implementazione in Python. Attraverso un esercizio pratico basato su dati reali, dimostreremo l’applicazione e l’interpretazione di questo potente strumento statistico.

Il test t di Welch

Il test t di Welch è una variante del test t di Student che si utilizza quando si confrontano le medie di due gruppi indipendenti ma non si può assumere che le varianze siano uguali (cioè si viola l’ipotesi di omoscedasticità).

Quando si usa il test t di Welch?

  • Due campioni indipendenti

  • Varianze non uguali (eteroschedasticità)

  • Distribuzione approssimativamente normale dei dati (soprattutto per campioni piccoli).

 

Formula del test t di Welch

Il test t di Welch viene utilizzato per confrontare le medie di due campioni indipendenti quando non si assume che le varianze delle due popolazioni siano uguali. La formula per calcolare la statistica t è la seguente:

[math]t = \frac{\bar{x}_1 – \bar{x}_2}{\sqrt{ \frac{s_1^2}{n_1} + \frac{s_2^2}{n_2} }}[/math]

Dove:

  • [math]\bar{x}_1[/math] è la media del primo campione.
  • [math]\bar{x}_2[/math] è la media del secondo campione.
  • [math]s_1[/math] è la deviazione standard del primo campione.
  • [math]s_2[/math] è la deviazione standard del secondo campione.
  • [math]n_1[/math] è la numerosità del primo campione.
  • [math]n_2[/math] è la numerosità del secondo campione.

Il numero di gradi di libertà per questo test viene calcolato utilizzando la formula di Welch-Satterthwaite:

[math]df = \frac{ \left( \frac{s_1^2}{n_1} + \frac{s_2^2}{n_2} \right)^2 }{ \frac{ (s_1^2 / n_1)^2 }{n_1 – 1} + \frac{ (s_2^2 / n_2)^2 }{n_2 – 1} }[/math]

Esempio pratico

Supponiamo di voler confrontare due gruppi:

  • Gruppo A: [math]\bar{x}_1 = 20[/math], [math]s_1 = 5[/math], [math]n_1 = 10[/math]
  • Gruppo B: [math]\bar{x}_2 = 15[/math], [math]s_2 = 10[/math], [math]n_2 = 8[/math]

Calcoliamo il valore del t:

[math]t = \frac{20 – 15}{\sqrt{ \frac{5^2}{10} + \frac{10^2}{8} }}[/math]

Forse potrebbe interessarti anche:  Test t in Python con SciPy: Guida Pratica a Student, Welch e p-value

[math]t = \frac{5}{\sqrt{ \frac{25}{10} + \frac{100}{8} }}[/math]

[math]t = \frac{5}{\sqrt{ 2.5 + 12.5 }}[/math]

[math]t = \frac{5}{\sqrt{ 15 }}[/math]

[math]t \approx 1.29[/math]

Il numero di gradi di libertà:

[math]df = \frac{ \left( \frac{5^2}{10} + \frac{10^2}{8} \right)^2 }{ \frac{ (5^2 / 10)^2 }{10 – 1} + \frac{ (10^2 / 8)^2 }{8 – 1} }[/math]

[math]df = \frac{ (2.5 + 12.5)^2 }{ \frac{ (2.5)^2 }{9} + \frac{ (12.5)^2 }{7} }[/math]

[math]df = \frac{ (15)^2 }{ \frac{6.25}{9} + \frac{156.25}{7} }[/math]

[math]df = \frac{ 225 }{ 0.6944 + 22.3214 }[/math]

[math]df = \frac{ 225 }{ 23.0158 }[/math]

[math]df \approx 9.78[/math]

Usando una distribuzione t con approssimativamente 9.78 gradi di libertà, è possibile determinare il p-value per valutare se la differenza tra le medie dei due gruppi è statisticamente significativa.

Formula dei Gradi di Libertà di Welch-Satterthwaite :

  • La formula per i gradi di libertà è:

[math]df = \frac{ \left( \frac{s_1^2}{n_1} + \frac{s_2^2}{n_2} \right)^2 }{ \frac{ (s_1^2 / n_1)^2 }{n_1 – 1} + \frac{ (s_2^2 / n_2)^2 }{n_2 – 1} }[/math]

    • Questa formula è più complessa dei gradi di libertà per il test t di Student standard ([math]n_1 + n_2 – 2[/math]). Essa “pesa” i gradi di libertà di ciascun campione ([math]n_1 – 1[/math] e [math]n_2 – 1[/math]) in base alla varianza campionaria e alla dimensione del campione di ciascun gruppo.
    • Se le varianze campionarie sono molto diverse, i gradi di libertà calcolati tendono ad essere inferiori rispetto al caso in cui le varianze sono simili. Questo riflette la maggiore incertezza sulla vera differenza tra le medie delle popolazioni quando le varianze campionarie sono disuguali.

Pubblicità

✅ Vantaggi del test t di Welch

  • Più robusto rispetto al test t standard quando le varianze sono diverse

  • Non richiede che le dimensioni dei due gruppi siano uguali.

👉Guida Pratica al T-test di Welch: Esercizi e Soluzioni Passo Passo

Esempio pratico del test t di Welch usando Python con un piccolo dataset simulato.

Immaginiamo di avere due gruppi:

  • Gruppo A: risultati di un trattamento sperimentale

  • Gruppo B: risultati di un trattamento di controllo

import numpy as np
from scipy import stats

# Creazione dei dati
gruppo_A = np.array([22, 21, 19, 24, 20, 23, 18, 25, 19, 21])
gruppo_B = np.array([15, 18, 14, 16, 17, 15, 13, 19])

# Calcolo del test t di Welch
t_stat, p_value = stats.ttest_ind(gruppo_A, gruppo_B, equal_var=False)

print(f"Statistica t: {t_stat:.2f}")
print(f"P-value: {p_value:.4f}")

Statistica t: 5.21
P-value: 0.0001

Interpretazione

  • La statistica t è alta → c’è una differenza tra le medie

  • Il p-value è molto basso (< 0.05) → rifiutiamo l’ipotesi nulla: le due medie sono significativamente diverse.

Forse potrebbe interessarti anche:  Python: La libreria Sympy. Costruire una matrice

 👉  Il P-Value: Una Spiegazione Dettagliata

 👉 P-value: Cos’è, Come si Calcola e Quando si Usa nei Test Statistici

Riprendiamo l’ Esercizio 3: Test t per confrontare il CLV (Customer Lifetime Value) di due segmenti

Dati forniti

Segmento n (osservazioni) Media [math]\bar{X}[/math] Dev. standard [math]s[/math]
A [math]n_A = 30[/math] [math]\bar{X}_A = 120[/math]€ [math]s_A = 20[/math]€
B [math]n_B = 25[/math] [math]\bar{X}_B = 135[/math]€ [math]s_B = 25[/math]€

 


Obiettivo

Verificare se la differenza media nel CLV tra Segmento A e Segmento B è statisticamente significativa.

Test t di Welch – Confronto del CLV tra Segmenti

Ipotesi

  • Ipotesi nulla [math]H_0[/math]: [math]\mu_A = \mu_B[/math] (nessuna differenza nel CLV medio tra i segmenti)
  • Ipotesi alternativa [math]H_1[/math]: [math]\mu_A \neq \mu_B[/math] (c’è una differenza nel CLV medio tra i segmenti)

✅ Passo 1: Formula del test t di Welch

La formula del test t di Welch è:

[math]t = \frac{\bar{X}_A – \bar{X}_B}{\sqrt{ \frac{s_A^2}{n_A} + \frac{s_B^2}{n_B} }}[/math]

Applicando i valori forniti nell’Esercizio 3:

[math]t = \frac{120 – 135}{\sqrt{ \frac{20^2}{30} + \frac{25^2}{25} }}[/math]

[math]t = \frac{-15}{\sqrt{ \frac{400}{30} + \frac{625}{25} }}[/math]

[math]t = \frac{-15}{\sqrt{13.33 + 25}}[/math]

[math]t = \frac{-15}{\sqrt{38.33}}[/math]

[math]t \approx \frac{-15}{6.19} \approx -2.42[/math]

✅ Passo 2: Gradi di libertà (Welch–Satterthwaite)

La formula per calcolare i gradi di libertà è:

[math]df = \frac{ \left( \frac{s_A^2}{n_A} + \frac{s_B^2}{n_B} \right)^2 }{ \frac{ \left( \frac{s_A^2}{n_A} \right)^2 }{n_A – 1} + \frac{ \left( \frac{s_B^2}{n_B} \right)^2 }{n_B – 1} }[/math]

Calcolo:

[math]df = \frac{(13.33 + 25)^2}{ \frac{13.33^2}{30 – 1} + \frac{25^2}{25 – 1} }[/math]

[math]df = \frac{(38.33)^2}{ \frac{177.69}{29} + \frac{625}{24} }[/math]

[math]df = \frac{1469.19}{6.127 + 26.042}[/math]

[math]df = \frac{1469.19}{32.169} \approx 45.67[/math]

Useremo [math]df \approx 46[/math].

✅ Passo 3: Calcolo del p-value

Con [math]t = -2.42[/math] e [math]df = 46[/math], il p-value per un test a due code (ipotesi bilaterale) si ottiene da una distribuzione t.

È possibile calcolarlo con Python:


from scipy import stats

# Parametri
t_stat = -2.42
df = 46

# Calcolo p-value bilaterale
p_value = 2 * stats.t.cdf(t_stat, df=df)  # doppio perché è a due code
print(f"P-value: {p_value:.4f}")
    

Output atteso:


P-value: 0.0196
    

Conclusione

Poiché il p-value ≈ 0.0196 è inferiore al livello di significatività comunemente usato di 0.05, rifiutiamo l’ipotesi nulla.

C’è una differenza statisticamente significativa nel CLV medio tra i due segmenti di clienti.

 

Mostriamo ora  un grafico per visualizzare la differenza tra i due segmenti e la distribuzione della statistica t.

Usiamo Python con Matplotlib e Seaborn per avere una visualizzazione chiara:

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats

# Parametri
mean_A, sd_A, n_A = 120, 20, 30
mean_B, sd_B, n_B = 135, 25, 25

# Simuliamo dati (solo per visualizzazione, i test si basano sui parametri reali)
np.random.seed(0)
sample_A = np.random.normal(mean_A, sd_A, n_A)
sample_B = np.random.normal(mean_B, sd_B, n_B)

# Test t di Welch
t_stat, p_value = stats.ttest_ind(sample_A, sample_B, equal_var=False)

# Plot delle distribuzioni
plt.figure(figsize=(10, 6))
sns.kdeplot(sample_A, fill=True, color='skyblue', label='Segmento A')
sns.kdeplot(sample_B, fill=True, color='salmon', label='Segmento B')
plt.axvline(np.mean(sample_A), color='blue', linestyle='--')
plt.axvline(np.mean(sample_B), color='red', linestyle='--')
plt.title('Distribuzione del CLV per Segmento A e B')
plt.xlabel('CLV (€)')
plt.ylabel('Densità')
plt.legend()
plt.grid(True)
plt.show()

Distribuzione del CLV per Segmento

Interpretazione grafico

  • Le due curve rappresentano le distribuzioni del CLV per ciascun segmento.

  • Le linee tratteggiate verticali indicano le medie.

  • Il fatto che le curve non si sovrappongano molto e che le medie siano visibilmente distanti supporta la conclusione del test t: la differenza è reale e significativa.

Forse potrebbe interessarti anche:  Computer Vision: Come Iniziare con OpenCV Parte1

Conclusione:

Il test t di Welch si rivela uno strumento statistico prezioso e flessibile per confrontare le medie di due gruppi indipendenti, specialmente in scenari in cui l’assunzione di varianze uguali non può essere sostenuta. La sua robustezza in presenza di eteroschedasticità lo rende una scelta preferibile rispetto al test t di Student standard in molte applicazioni pratiche. La capacità di identificare differenze significative tra le medie di gruppi con variabilità diversa è fondamentale in molti campi, dalla ricerca scientifica al business, e il test t di Welch offre un metodo affidabile per raggiungere questo obiettivo.

 

Pubblicità