La tavola dei valori critici della distribuzione F è uno strumento utilizzato nei test di ipotesi che coinvolgono il confronto tra varianze (ad esempio, nel test F per la comparazione di due varianze e nell’ANOVA). Vediamo come utilizzarla in caso di test unilaterale e bilaterale, con esempi pratici.
👉 ANOVA Spiegata Facile Facile con Esempio in Python
Capire la distribuzione F
La distribuzione F dipende da due gradi di libertà:
- [math]df_1[/math] (numeratore): associato alla varianza del campione nel numeratore.
- [math]df_2[/math] (denominatore): associato alla varianza del campione nel denominatore.
La tabella fornisce il valore critico [math]F_{\alpha, df_1, df_2}[/math] per un certo livello di significatività ([math]\alpha[/math]).
👉 Analisi della Varianza (ANOVA): Guida Completa con Esempio Pratico e Interpretazione
2. Test unilaterale con la distribuzione F
Passaggi per il test unilaterale
- Definire l’ipotesi nulla e alternativa:[math]H_0: \sigma_1^2 = \sigma_2^2[/math] (le varianze sono uguali)[math]H_1: \sigma_1^2 > \sigma_2^2[/math] (la prima varianza è significativamente maggiore)
- Calcolare il valore del test:[math]F = \frac{S_1^2}{S_2^2}[/math]dove [math]S_1^2[/math] e [math]S_2^2[/math] sono le varianze campionarie con [math]S_1^2 > S_2^2[/math] per convenzione.
- Determinare il valore critico dalla tavola F con:
- Gradi di libertà del numeratore [math]df_1 = n_1 – 1[/math]
- Gradi di libertà del denominatore [math]df_2 = n_2 – 1[/math]
- Livello di significatività [math]\alpha[/math]
- Confrontare F con il valore critico:
- Se [math]F > F_{\alpha, df_1, df_2}[/math], rifiutiamo [math]H_0[/math] e concludiamo che le varianze sono significativamente diverse.
- Se [math]F \leq F_{\alpha, df_1, df_2}[/math], non abbiamo abbastanza evidenza per rifiutare [math]H_0[/math].
Esempio di test unilaterale
Due macchine producono lo stesso componente. Si vuole verificare se la varianza della prima macchina è maggiore della seconda. I dati sono:
- [math]n_1 = 10[/math], [math]S_1^2 = 25[/math]
- [math]n_2 = 8[/math], [math]S_2^2 = 10[/math]
Calcoliamo il valore del test:
[math]F = \frac{25}{10} = 2.5[/math]
Ora cerchiamo in una tavola F con [math]df_1 = 10 – 1 = 9[/math] e [math]df_2 = 8 – 1 = 7[/math] e [math]\alpha = 0.05[/math]. Supponiamo che [math]F_{0.05, 9, 7} = 3.29[/math].
Poiché 2.5 < 3.29, non rifiutiamo [math]H_0[/math], quindi non abbiamo prove sufficienti per dire che la prima macchina ha una varianza maggiore.
3. Test bilaterale con la distribuzione F
Passaggi per il test bilaterale
- Definire le ipotesi:[math]H_0: \sigma_1^2 = \sigma_2^2[/math] (le varianze sono uguali)[math]H_1: \sigma_1^2 \neq \sigma_2^2[/math] (le varianze sono diverse)
- Calcolare il valore del test (uguale al test unilaterale):[math]F = \frac{S_1^2}{S_2^2}[/math]
- Determinare i valori critici:Per un test bilaterale con livello di significatività [math]\alpha[/math], si considerano due valori critici:
- [math]F_{\alpha/2, df_1, df_2}[/math] (quantile superiore)
- [math]F_{1-\alpha/2, df_2, df_1}[/math] (quantile inferiore, cioè l’inverso dell’altro valore critico)
- Confrontare F con i valori critici:
- Se [math]F > F_{\alpha/2, df_1, df_2}[/math] o [math]F < F_{1-\alpha/2, df_2, df_1}[/math], rifiutiamo [math]H_0[/math].
- Altrimenti, non rifiutiamo [math]H_0[/math].
Esempio di test bilaterale
Supponiamo di confrontare due processi di produzione e vogliamo verificare se hanno varianze diverse. Abbiamo:
- [math]n_1 = 12[/math], [math]S_1^2 = 36[/math]
- [math]n_2 = 10[/math], [math]S_2^2 = 16[/math]
Calcoliamo:
[math]F = \frac{36}{16} = 2.25[/math]
Per un test bilaterale con [math]\alpha = 0.05[/math], cerchiamo i valori critici [math]F_{0.025, 11, 9}[/math] e [math]F_{0.975, 9, 11}[/math]. Supponiamo che siano:
- [math]F_{0.025, 11, 9} = 4.03[/math]
- [math]F_{0.975, 9, 11} = 0.25[/math]
Poiché 0.25 < 2.25 < 4.03, non rifiutiamo [math]H_0[/math], quindi non ci sono prove sufficienti per affermare che le varianze siano diverse.
Riepilogo
| Tipo di test | Ipotesi alternativa | Zona critica |
|---|---|---|
| Unilaterale destro | [math]H_1: \sigma_1^2 > \sigma_2^2[/math] | [math]F > F_{\alpha, df_1, df_2}[/math] |
| Unilaterale sinistro | [math]H_1: \sigma_1^2 < \sigma_2^2[/math] | [math]F < F_{1-\alpha, df_1, df_2}[/math] |
| Bilaterale | [math]H_1: \sigma_1^2 \neq \sigma_2^2[/math] | [math]F > F_{\alpha/2, df_1, df_2}[/math] o [math]F < F_{1-\alpha/2, df_2, df_1}[/math] |
Visualizzazione della Distribuzione F e delle Zone Critiche
La distribuzione F di Fisher-Snedecor è una distribuzione di probabilità continua di fondamentale importanza nella statistica inferenziale. Essa è ampiamente utilizzata per confrontare le varianze di due o più popolazioni e nell’analisi della varianza (ANOVA) per valutare le differenze tra le medie di diversi gruppi.
Un concetto chiave per l’applicazione della distribuzione F nei test di ipotesi è quello delle zone critiche. Queste regioni, situate nelle code della distribuzione, rappresentano l’insieme dei valori della statistica test che porterebbero al rifiuto dell’ipotesi nulla per un dato livello di significatività ([math]\alpha[/math]). La posizione e l’ampiezza di queste zone dipendono dal tipo di test (unilaterale o bilaterale) e dai gradi di libertà della distribuzione F.
Per visualizzare come la distribuzione F cambia in base ai suoi gradi di libertà e come sono definite le zone critiche, è possibile utilizzare il seguente script Python interattivo:
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import f
# Otteniamo i gradi di libertà dall'utente
while True:
try:
df1 = int(input("Inserisci i gradi di libertà del numeratore (df1): "))
if df1 > 0:
break
else:
print("df1 deve essere un intero positivo.")
except ValueError:
print("Inserisci un numero intero valido.")
while True:
try:
df2 = int(input("Inserisci i gradi di libertà del denominatore (df2): "))
if df2 > 0:
break
else:
print("df2 deve essere un intero positivo.")
except ValueError:
print("Inserisci un numero intero valido.")
# Generiamo i valori per l'asse x e la PDF
x = np.linspace(0, 5, 1000)
y = f.pdf(x, df1, df2)
# Valori critici per un test unilaterale e bilaterale con alpha = 0.05
alpha = 0.05
f_crit_unilateral = f.ppf(1 - alpha, df1, df2)
f_crit_bilateral_upper = f.ppf(1 - alpha/2, df1, df2)
f_crit_bilateral_lower = f.ppf(alpha/2, df1, df2)
# Creazione del grafico
plt.figure(figsize=(8, 5))
plt.plot(x, y, label=f'Distribuzione F({df1},{df2})', color='blue')
# Evidenziare la zona critica per il test unilaterale
plt.fill_between(x, y, where=(x >= f_crit_unilateral), color='red', alpha=0.3, label="Zona critica (unilaterale)")
# Evidenziare le zone critiche per il test bilaterale
plt.fill_between(x, y, where=(x >= f_crit_bilateral_upper), color='orange', alpha=0.3, label="Zona critica (bilaterale, superiore)")
plt.fill_between(x, y, where=(x <= f_crit_bilateral_lower), color='orange', alpha=0.3, label="Zona critica (bilaterale, inferiore)")
# Linee verticali per i valori critici
plt.axvline(f_crit_unilateral, color='red', linestyle='--', label=f'F critico (unilaterale)={f_crit_unilateral:.2f}')
plt.axvline(f_crit_bilateral_upper, color='orange', linestyle='--', label=f'F critico (bilaterale)={f_crit_bilateral_upper:.2f}')
plt.axvline(f_crit_bilateral_lower, color='orange', linestyle='--')
# Aggiunta delle etichette
plt.xlabel('Valore di F')
plt.ylabel('Densità di probabilità')
plt.title(f'Distribuzione F con zone critiche per test unilaterale e bilaterale (df1={df1}, df2={df2})')
plt.legend()
plt.grid()
# Mostra il grafico
plt.show()
Eseguendo questo script Python, ti verrà chiesto di inserire i gradi di libertà del numeratore (df1) e del denominatore (df2). Inserisci i valori che desideri esplorare e il grafico della distribuzione F con le zone critiche verrà generato automaticamente.
Il grafico risultante visualizzerà la distribuzione F per i gradi di libertà specificati. La curva blu rappresenta la funzione di densità di probabilità. Saranno evidenziate in rosso la zona critica per un test unilaterale destro, e in arancione le zone critiche per un test bilaterale (sia la coda superiore che quella inferiore), assumendo un livello di significatività [math]\alpha = 0.05[/math]. Le linee verticali tratteggiate indicheranno i valori critici di F che delimitano queste zone.
Questo strumento interattivo ti permette di osservare come la forma della distribuzione F si modifica al variare dei gradi di libertà e come, di conseguenza, cambiano le regioni di rifiuto per i test di ipotesi. Sperimenta con diversi valori per acquisire una comprensione più intuitiva di questa importante distribuzione statistica.

Il grafico generato visualizza la distribuzione F per i gradi di libertà specificati dall’utente. L’asse orizzontale rappresenta il Valore di F, mentre l’asse verticale indica la Densità di probabilità. La curva blu mostra la forma della distribuzione F. Le aree colorate evidenziano le zone critiche: in rosso per un test unilaterale (coda destra) e in arancione per un test bilaterale (entrambe le code). Le linee verticali tratteggiate indicano i valori critici di F che delimitano queste zone, con i rispettivi valori numerici visualizzati nelle etichette. Il titolo del grafico include i valori dei gradi di libertà inseriti dall’utente.
Ecco altri due esempi per chiarire ulteriormente l’uso della tavola F nei test unilaterale e bilaterale.
Esempio 1: Test unilaterale per confrontare la varianza dei tempi di produzione
Un’azienda vuole verificare se la variabilità del tempo di produzione di un nuovo macchinario è maggiore rispetto a quella di un modello precedente. Raccoglie i seguenti dati:
- Nuovo macchinario: [math]n_1 = 15[/math], varianza [math]S_1^2 = 20[/math]
- Vecchio macchinario: [math]n_2 = 12[/math], varianza [math]S_2^2 = 12[/math]
Passaggi
- Definiamo le ipotesi:[math]H_0: \sigma_1^2 = \sigma_2^2[/math] (le varianze sono uguali)[math]H_1: \sigma_1^2 > \sigma_2^2[/math] (la varianza del nuovo macchinario è maggiore)
- Calcoliamo il valore del test F:[math]F = \frac{S_1^2}{S_2^2} = \frac{20}{12} = 1.67[/math]
- Determiniamo il valore critico:Gradi di libertà:
- [math]df_1 = 15 – 1 = 14[/math]
- [math]df_2 = 12 – 1 = 11[/math]
- Puoi utilizzare lo script Python interattivo fornito nella sezione ‘Visualizzazione della Distribuzione F e delle Zone Critiche’ per visualizzare la forma della distribuzione F con questi gradi di libertà e osservare la posizione del valore critico [math]F_{0.05, 14, 11} = 2.54[/math].
Per [math]\alpha = 0.05[/math], dalla tavola F troviamo [math]F_{0.05, 14, 11} = 2.54[/math].
- Confrontiamo F con il valore critico:Poiché [math]1.67 < 2.54[/math], non rifiutiamo [math]H_0[/math].
Conclusione: Non ci sono prove sufficienti per dire che la varianza del nuovo macchinario è maggiore di quella del vecchio.
Esempio 2: Test bilaterale per confrontare la dispersione dei voti di due classi
Un insegnante vuole verificare se la dispersione dei voti in due classi diverse è significativamente diversa.
- Classe A: [math]n_1 = 20[/math], varianza [math]S_1^2 = 18[/math]
- Classe B: [math]n_2 = 16[/math], varianza [math]S_2^2 = 10[/math]
Passaggi
- Definiamo le ipotesi:[math]H_0: \sigma_1^2 = \sigma_2^2[/math] (le varianze sono uguali)[math]H_1: \sigma_1^2 \neq \sigma_2^2[/math] (le varianze sono diverse)
- Calcoliamo il valore del test F:[math]F = \frac{S_1^2}{S_2^2} = \frac{18}{10} = 1.8[/math]
- Determiniamo i valori critici:Gradi di libertà:
- [math]df_1 = 20 – 1 = 19[/math]
- [math]df_2 = 16 – 1 = 15[/math]
Per [math]\alpha = 0.05[/math], il test è bilaterale, quindi dobbiamo trovare due valori critici:
- [math]F_{0.025, 19, 15} = 2.54[/math] (limite superiore)
- [math]F_{0.975, 15, 19} = 0.39[/math] (limite inferiore)
- Confrontiamo F con i valori critici:Poiché [math]0.39 < 1.8 < 2.54[/math], non rifiutiamo [math]H_0[/math].
Conclusione: Non ci sono prove sufficienti per affermare che le due classi abbiano varianze significativamente diverse.





