Quando le osservazioni sono
organizzate in una tabella di 2 righe ·
2 colonne si applica questa regola:
→ si
impiega il test
chi-quadrato
se le osservazioni sono
indipendenti e sono numerose;
→ si
impiega il test di Fisher
se le osservazioni sono
indipendenti e sono poche;
→ si
impiega il test di McNemar
nel caso di osservazioni non indipendenti
(cioè nel caso di dati appaiati).
Il
test chi-quadrato (χ2)
lo vediamo applicato a uno studio canadese sulla relazione tra
fumo e mortalità divenuto famoso in quanto tra gli anni '70 e i primi anni '80 le sue conclusioni finirono col favorire tra i fumatori un revival dell'uso della pipa. Nell'arco
di sei anni venne registrato il numero di decessi avvenuti in un
gruppo di non fumatori e in un gruppo di fumatori di pipa con i
seguenti risultati [1]:
Di
1 067 non fumatori 117 (il 10,97%) erano deceduti. Dei 402 fumatori di
pipa 54 (il 13.43%) erano deceduti.
La domanda è: esiste una
differenza reale tra le mortalità nei due gruppi, o la differenza
può ancora essere attribuita al caso?
Questo
script prevede di inserire i dati manualmente. Copiatelo e
incollatelo nella Console di R e
premete ↵ Invio:
#
TEST CHI-QUADRATO - 2 righe · 2
colonne
#
cells
<- c(117, 54, 950, 348) # genera l'array
cells con i valori numerici contenuti nelle celle
rnames
<- c("Deceduti", "Viventi")
# genera l'array rnames con i nomi delle righe
cnames
<- c("Non_fumatori", "Fumatori_di_pipa")
# genera l'array cnames con i nomi delle colonne
mydata
<- matrix(cells, nrow=2, ncol=2, byrow=TRUE, dimnames=list(rnames,
cnames)) # genera la matrice dei dati
mydata
# mostra i dati
chisq.test(mydata,
correct=TRUE) # test chi quadrato con la
correzione di Yates per la continuità
#
Nelle
prime tre righe sono generati con la funzione c():
→ il
vettore che contiene i quattro dati (che come si vede devono essere
inseriti in sequenza leggendoli da sinistra a destra e dall'alto in basso) che
sono salvati nell'oggetto cells;
→ il
vettore che contiene i nomi delle righe, salvato nell'oggetto rnames;
→ il
vettore che contiene i nomi delle colonne, salvato nell'oggetto
cnames.
I
tre vettori sono combinati a formare la matrice dei dati mediante la
funzione matrix() che impiega gli
argomenti che indicano:
→ l'oggetto/vettore
contenente i dati (cells);
→ il
numero di righe (nrow) e il
numero di colonne (ncol) della
matrice;
→ la
modalità di riempimento della matrice, che deve essere riempita per
righe (byrow=TRUE) quindi da sinistra a destra e dall'alto in basso;
→ i
nomi da assegnare alle righe e alle colonne (dimnames=list(rnames,
cnames)).
La
matrice viene salvata nell'oggetto mydata,
che viene mostrato per un controllo della corretta immissione e
strutturazione dei dati.
Infine
con la funzione chisq.test() [2]
viene effettuato il calcolo del test chi-quadrato che, ponendo
l'argomento correct=TRUE, prevede
la correzione di Yates per la continuità.
Nota bene: il test chi-quadrato con 1 grado di libertà è esatto solo asintoticamente per dimensioni molto grandi dei campioni per cui si consiglia di applicare sempre alle tabelle 2x2 la correzione di Yates per la continuità [3].
Questi
sono i risultati:
> mydata # mostra i dati
Non_fumatori Fumatori_di_pipa
Deceduti 117 54
Viventi 950 348
> chisq.test(mydata, correct=TRUE) # test chi quadrato con la correzione di Yates per la continuità
Pearson's Chi-squared test with Yates' continuity correction
data: mydata
X-squared = 1.4969, df = 1, p-value = 0.2212
Come si vede la probabilità di osservare per caso il valore chi-quadrato 1.4969 è
p =
0.2212 quindi è elevata. La conclusione è
che la differenza tra le mortalità nei due gruppi può ancora essere attribuita al caso ovvero, in termini statistici, la mortalità osservata nel gruppo dei fumatori di pipa non
differisce significativamente dalla mortalità osservata nel gruppo
dei non fumatori.
Con
quest'altra riga
chisq.test(mydata,
correct=FALSE)
# test chi quadrato senza la correzione di Yates
potete
calcolare il chi-quadrato senza la correzione di Yates per la
continuità (p
= 0.1886) che risulta inferiore al precedente. Notate quindi che applicando la
correzione di Yates per la continuità il valore di
p risulta superiore e questo rende la differenza meno
significativa.
In
alternativa potete anche copiare le tre righe riportate qui sotto aggiungendo un ↵ Invio al termine dell'ultima riga e
salvarle in C:\Rdati\ nel
file di testo denominato
chi_2x2.csv (attenzione
all'estensione al momento del salvataggio del file).
Esito;Non_fumatori;Fumatori_di_pipa
Deceduti;117;54
Viventi;950;348
Questo
script prevede di eseguire il test chi-quadrato sui dati letti dal
file chi_2x2.csv.
Copiatelo e incollatelo nella
Console di R e premete ↵
Invio:
#
TEST CHI-QUADRATO - 2 righe ·
2 colonne
#
mydata
<- read.table("C:/Rdati/chi_2x2.csv", header=TRUE,
sep=";", row.names="Esito")
# importa i dati
mydata
# mostra i dati
chisq.test(mydata,
correct=TRUE)
# test chi quadrato con la correzione di Yates per la continuità
#
Come
vedete lo script è più compatto del precedente, le uniche cose da
notare sono gli argomenti della funzione read.table():
→ "C:/Rdati/chi_2x2.csv"
che specifica nome e posizione del file dal quale importare i dati;
→ header=TRUE
che indica che nella prima riga del file sono contenuti i nomi delle
variabili;
→ sep=";"
che specifica il separatore di campo impiegato nel file;
→ row.names="Esito"
che indica che i nomi delle righe sono contenuti nel campo che ha questo nome.
Anche
se ovviamente i risultati sono sempre gli stessi, il senso di queste
due alternative è semplice. Se vi va bene intervenire ogni volta
sullo script per adattarlo a nuovi dati, potete impiegare la prima.
Potete invece impiegare la seconda se volete evitare di mettere mano ogni volta allo script, e preferite intervenire solamente sul file di dati. A
voi la scelta, magari dopo averle sperimentate entrambe.
La rappresentazione grafica dei dati può essere effettuata mediante un grafico a barre.
La rappresentazione grafica dei dati può essere effettuata mediante un grafico a barre.
----------
[1]
Best EWR et al. A Canadian
Study on Smoking and Health (Final Report).
Dept. Natl. Health and Welfare, Canada, 1966. Citato in: Snedecor GW,
Cochran WG. Statistical
Methods. The Iowa State
University Press, 1980, ISBN 0-8138-1560-6, p. 124.
[2]
Digitate help(chisq.test)
nella Console di R per
la documentazione della funzione chisq.test().
[3]
Armitage P. Statistica
medica. Giangiacomo
Feltrinelli Editore, Milano, 1979, p. 137.
Nessun commento:
Posta un commento