statistics

Il test del chi quadrato: bontà di adattamento e test di indipendenza.

Nei post precedenti abbiamo visto diversi tipi di test che possiamo utilizzare per analizzare i dati in nostro possesso e verificare delle ipotesi.

Il test chi quadrato fu proposto da Karl Pearson nel 1900, e trova ampia applicazione per stimare quanto efficacemente la distribuzione di una variabile categorica rappresenti una distribuzione attesa (e allora parliamo di “Test della bontà di adattamento” o “Goodness of fit test”) oppure per stimare quando due variabili categoriche sono indipendenti l’una dall’altra (e allora parliamo di “Test di indipendenza”).

Tale è l’importanza e la diffusione di questo test, da essere indicato dalla rivista Scientific American tra le 20 scoperte scientifiche più importanti del XX secolo.


Il Test della bontà di adattamento (Goodness of Fit)

E’ un utilissimo test, che concerne la distribuzione di una variabile categorica. Ci consente infatti di verificare se le frequenze osservate differiscono in misura significativa da quelle attese, quando gli esiti possibili sono più di due.

I prerequisiti per poter effettuare il test sono molto semplici:

  1. Il campione deve essere casuale;
  2. Le osservazioni devono essere indipendenti per il campione (una osservazione per soggetto);
  3. Nessun valore osservato in ciascuna classe inferiore a 5.
    Questo ultimo punto suona piuttosto criptico e merita qualche parola in più. Quando la vc è continua o i caratteri non sono nominali e si dispone di osservazioni campionarie singole, un problema importante concerne la determinazione del numero di classi (chiamate anche “celle”) in cui articolare la distribuzione. Nella prassi è richiesto che le frequenze teoriche siano almeno uguali a 5; vale a dire che occorre verificare che il numero di elementi osservati in ciascuna classe non sia inferiore a una soglia minima.

Capire attraverso un semplice esempio

Come al solito, per capire meglio di cosa stiamo parlando ci spiegheremo con un esempio super-semplificato (e, mi scuso, abbastanza ridicolo…).

Suppongo che sia stato condotto uno studio sugli hobbisti appassionati di elettronica che usano schede Arduino. Si è visto che i possessori di una sola scheda Arduino sono il 50%, quelli che hanno da 2 a 4 schede sono il 30%, chi ne possiede 5 o più è il 20%.

Immaginiamo che io abbia condotto un mio studio indipendente e abbia riscontrato questi dati: su 150 hobbisti ho trovato che 90 possedevano un solo Arduino, 30 da 2 a 4 schede, e 30 5 o più schede.

L’ipotesi nulla è che le proporzioni da me riscontrate siano in linea con quelle dello studio ufficiale.
L’ipotesi alternativa è ovviamente che i dati raccolti non confermino le proporzioni dello studio ufficiale.

Preparo la mia tabella inserendo i dati:

Un solo ArduinoDa 2 a 4 schede5 o più schedeTotale
Dati osservati90
3030150
Dati attesi0.50 x 150 = 750.30 x 150 = 45 0.20 x 150 = 30 150

Per accettare l’ipotesi nulla, occorre che la differenza tra le frequenze attese e quelle osservate sia attribuibile alla variabilità di campionamento al livello designato di significatività.

La statistica χ2 calcolata dai dati campionari è data da:

\( \chi^2=\Sigma\frac{(f_0-f_e)^2}{f_e}\\ \\ \)

f0=frequenze osservate
fe=frequenze attese

I gradi di libertà per i test di adattamento sono:

\( df=(r-1)(c-1)\\ \\ \\ \)

r = numero di righe della tabella di contingenza
c = numero di colonne della tabella di contingenza

Usiamo come linee guida il nostro esempio. Partiamo dalle ipotesi:

\( H_0=le\ frequenze\ sono\ 0.5\ 0.3\ 0.2\\ H_a=le\ frequenze\ non\ sono\ 0.5\ 0.3\ 0.2\\ \)

Abbiamo:

\( n=150\\ df=(2-1)(3-1)=2\\ \\ \)

Troviamo nelle tabelle il valore del χ2 critico (df=2, α=0.05)
Il valore risulta essere: 5.99

Ora calcolo il valore del χ2 per i miei dati:

\( \chi^2=\frac{(90-75)^2}{75}+\frac{(30-45)^2}{45}+\frac{(30-30)^2}{30}=\\ =\frac{225}{75}+\frac{225}{45}+\frac{0}{30}=\\ =3+5\\ =8\\ \)

Concludiamo allora (poichè il valore calcolato risulta superiore al valore critico) che possiamo rifiutare l’ipotesi nulla al livello di significatività del 5%. Cioè: possiamo rifiutare l’asserzione che le frequenze siano distribuite secondo la proporzione 50%,30%,20%.

Mi semplifico la vita usando una calcolatrice scientifica Casio

Con la mia calcolatrice fx mi basta scegliere da menù la voce “STAT” e inserire nel mio editor di tabella i valori osservati nella lista L1 e i valori attesi in L2.

Poi sceglierò:

[TEST]
[CHI]
[GoF]
Observed:List1
Expected:List2
df:2
[CALC]

e otterrò sia il valore del chi quadrato, sia quello di p (in questo caso 0,01832 che è inferiore al valore di alpha 0.05 da me scelto, confermando la conclusione che posso rigettare l’ipotesi nulla e accogliere quella alternativa).

Uso R per il test della bontà di adattamento

In R l’esempio indicato risulta ancora più semplice da impostare:

osservati<-c(90,30,30)
proporzione_attesa<-c(0.5,0.3,0.2)
chisq.test(osservati,p=proporzione_attesa,correct=FALSE)

e il risultato sarà:

Chi-squared test for given probabilities
data:  osservati
X-squared = 8, df = 2, p-value = 0.01832

Il Test di Indipendenza

E’ comunemente usato per determinare se due fattori sono tra loro in relazione.

In genere, quello che vogliamo sapere è: “La variabile X è indipendente dalla variabile Y ?

Attenzione: la risposta che otteniamo dal nostro test è solo questa, non come sono relate le variabili.

Nel caso del test della bontà di adattamento vi è una sola variabile in gioco: le frequenze osservate possono quindi essere elencate in un’unica riga, o colonna, di valori in una tabella.

I test di indipendenza, invece, implicano due variabili e l’oggetto del test è proprio l’assunzione che le due variabili siano statisticamente indipendenti.

Poichè due variabili sono implicate nel test, le frequenze osservate sono inserite in una tavola di contingenza del tipo riga x colonna.
Ad esempio, rappresento i dati relativi a età e sesso degli appassionati di un dato marchio commerciale:

EtàMaschioFemminaTotale
<356654120
>=35781290
Totale14466210

Vogliamo testare l’ipotesi nulla che le due variabili qualitative sesso ed età siano indipendenti. Dunque, l’ipotesi alternativa prevede invece che esista una relazione tra le due variabili.

Se l’ipotesi di indipendenza è vera, fra la frequenza osservata di ciascuna casella e il totale delle frequenze osservate della riga e colonna in cui quella casella è inclusa, devono esserci le stesse proporzioni esistenti fra il totale di colonna e di riga e la dimensione totale del campione.

\( f_e=\frac{\Sigma_{riga}\ \Sigma_{colonna}}{n}\\ \\ \\ df=(r-1)(c-1)\\ \\ \\ \)

A questo punto procedo con il mio esempio:

\( f_e=\frac{\Sigma_{riga}\ \Sigma_{colonna}}{n}=\frac{120\times 144}{210}=82,3\\ \)

Le 3 frequenze rimanenti possono essere facilmente ottenute per sottrazione dai totali di riga e di colonna. Infatti, una tabella 2×2 ha df=1, cioè la frequenza di una sola casella è libera di variare.

Otterrò:

EtàMaschiFemmineTotale
<358238120
>=35622890
Totale14466210

\( H_0=sesso\ e\ anni\ sono\ indipendenti\\ H_a=esiste\ una\ relazione\ tra\ sesso\ e\ anni\\ \\ \\ df=(2-1)(2-1)=1 \)

Scelgo un livello α=0.01 di significatività

\( \chi^2_{critico}=6.63\\ \)

calcolo il valore del chi-quadro e trovo:

\( \chi^2=23.9\\ \)

Si rifiuta allora l’ipotesi nulla di indipendenza al livello di significatività dell’1%. Le variabili età e sesso sono dipendenti.

Il Test di indipendenza con la Casio

Per risolvere il mio esempio in maniera molto semplice con la mia Casio avrei potuto fare così:

Carico i miei dati di tabella in una matrice, che chiamo A:

[[66,54][78,12]]→[OPTN][MAT][MAT][ALPHA][A]

A questo punto mi sposto nelle funzioni statistiche:

[MENU][STAT]

[TEST][CHI][2WAY]

Observed:Mat A

Expected:Mat B

[CALC]
Il risultato sarà:

χ2=23.9299242
p=9.9907e-07
df=1

Come si vede dal bassissimo valore di p, accolgo l’ipotesi alternativa e scarto l’ipotesi nulla.

Il test di indipendenza con R

Costruisco la mia tabella di contingenza

appassionati <- matrix(c(66,54,78,12),ncol=2,byrow=TRUE)
 rownames(appassionati) <- c("meno di 35","35 o piu")
 colnames(appassionati) <- c("maschio","femmina")
 appassionati <- as.table(appassionati)
 appassionati

posso calcolare i totali di riga:
margin.table(appassionati,1)

e quelli di colonna:
margin.table(appassionati,2)

il gran totale è:
margin.table(appassionati)

guardo i valori attesi:
chisq.test(appassionati)$expected

e testo l'ipotesi con:
chisq.test(appassionati)

il bassissimo valore di p risultante mi indica che posso rigettare l’ipotesi nulla dell’indipendenza delle due variabili.

paolo

View Comments

  • Quale calcolatrice é stata usata? (Casio é un pò generico) sarebbe interessante saperlo. Grazie

    • Casio fx9750

Recent Posts

Guida ai Test Statistici per analisi A/B

I test statistici sono strumenti fondamentali per l’analisi dei dati e la presa di decisioni informate. Scegliere…

8 mesi ago

Come usare gli Alberi Decisionali per classificare i dati

Gli Alberi Decisionali sono un tipo di algoritmo di apprendimento automatico che utilizza una struttura…

11 mesi ago

L’algoritmo di Discesa del Gradiente spiegato semplice

Immaginiamo di voler trovare il percorso più veloce per raggiungere una destinazione in auto. Si…

1 anno ago

La Discesa del Gradiente: un nuovo studio mette in discussione un assunto base sull’ottimizzazione

Nel 1847, il matematico francese Augustin-Louis Cauchy stava lavorando su calcoli astronomici, quando ideò un…

1 anno ago

Il Metodo Montecarlo spiegato in modo semplice e applicato a casi reali

La simulazione Monte Carlo è un metodo utilizzato per quantificare il rischio associato a un…

2 anni ago

La distribuzione ipergeometrica

Abbiamo visto che la distribuzione binomiale si basa sull’ipotesi di una popolazione infinita N, condizione che si…

2 anni ago