sabato 1 dicembre 2018

Test chi-quadrato 1 riga · n colonne

Le leggi della genetica applicate alla riproduzione umana consentono di stabilire che la probabilità che un nuovo nato sia di sesso maschile o di sesso femminile è la stessa ed è pari a p = 0.5 per entrambi i sessi. Nel Dipartimento materno-infantile di un ospedale in un anno sono nati 817 femmine e 756 maschi. I dati sono organizzati in una tabella di una riga per due colonne:

Femmine
Maschi
817
756


Apparentemente sono nate più femmine. Ci si domanda se la differenza tra i casi osservati e le frequenze attese previste sia significativa.

Per rispondere alla domanda impieghiamo questo breve script che esegue il test chi-quadrato 2). Copiate e incollate nella Console di R lo script e premete ↵ Invio:

# TEST CHI-QUADRATO - 1 riga · n colonne
#
casi.osservati <- c(817, 756) # sono immessi i casi osservati
prob.teor <- c(0.5, 0.5) # sono immesse le probabilità previste
chiquad <- chisq.test(casi.osservati, p=prob.teor) # i risultati del test sono salvati nell'oggetto chiquad
chiquad$observed # mostra i casi osservati
chiquad$expected # mostra le frequenze attese
chiquad # mostra i risultati del test chi-quadrato
#

Come prima cosa mediante la funzione c() costruiamo il vettore che contiene i casi osservati (817,756), che per comodità e leggibilità del codice che seguirà salviamo nell'oggetto casi.osservati. Quindi nella seconda riga di codice facciamo la stessa cosa per le probabilità teoriche che salviamo nell'oggetto prob.teor.

Nella terza riga viene eseguito il test chi-quadrato impiegando la funzione chisq.test() [1] che ha come argomento i casi osservati e le probabilità teoriche, che devono essere inserite con l'argomento p=.

Il risultato del test viene salvato (<-) nell'oggetto chiquad, dal quale sono prima estratti e mostrati i dati osservati (chiquad$observed), poi le frequenze attese calcolate sulla base dei casi osservati e delle relative probabilità teoriche (chiquad$expected). Infine sono mostrati i risultati del test chi-quadrato (chiquad).

Questi sono i risultati forniti dallo script:

> chiquad$observed # mostra i casi osservati
[1] 817 756
> chiquad$expected # mostra le frequenze attese
[1] 786.5 786.5
> chiquad # mostra i risultati del test chi-quadrato

Chi-squared test for given probabilities

data: casi.osservati
X-squared = 2.3655, df = 1, p-value = 0.124

La probabilità p riportata rappresenta la probabilità che la differenza osservata sia attribuibile al caso. Se tale probabilità è sufficientemente bassa, si assume che la differenza non sia attribuibile al caso, ovvero che la differenza sia significativa. In genere la soglia viene posta ad un valore di p = 0.05 quindi per valori di p < 0.05 la differenza osservata viene ritenuta significativa.

Nel caso del nostro test chi-quadrato la probabilità p che la differenza sia dovuta al caso è elevata (p-value = 0.124) e pertanto la conclusione è che il numero di femmine e di maschi osservato non è significativamente diverso da quello atteso che prevede femmine e maschi in ugual numero.

Un altro esempio è fornito da Marubini [2]. In una ricerca sull'ibridazione di specie vegetali ci si attende, in base alle leggi delle genetica, la produzione di individui appartenenti alle varietà AB, Ab, aB, ab nel rapporto di 9:3:3:1. Questo rapporto, espresso in termini di probabilità p diventa

0.5625:0.1875:0.1875:0.0625
essendo 

9+3+3+1=16 e 9/16=0.5625, 3/16=0.1875, 3/16=0.1875, 1/16=0.0625

(notare che la somma di queste probabilità è necessariamente uguale a 1).

Il numero di individui prodotti per ciascuna delle varietà in un esperimento di ibridazione è riportato in una tabella di una riga per quattro colonne:

AB
Ab
aB
ab
72
29
36
12

Per verificare se la differenza tra i casi osservati e le probabilità previste sia significativa copiate e incollate nella Console di R questo script e premete ↵ Invio:

# TEST CHI-QUADRATO - 1 riga · n colonne
#
casi.osservati <- c(72, 29, 36, 12) # sono immessi i casi osservati
prob.teorica <- c(0.5625, 0.1875, 0.1875, 0.0625) # sono immesse le probabilità previste
chiquad <- chisq.test(casi.osservati, p=prob.teorica) # i risultati del test salvati nell'oggetto chiquad
chiquad$observed # mostra i casi osservati
chiquad$expected # mostra le frequenze attese
chiquad # mostra i risultati del test chi-quadrato
#

Questi sono i risultati del test chi-quadrato:

> chiquad$observed # mostra i casi osservati
[1] 72 29 36 12
> chiquad$expected # mostra le frequenze attese
[1] 83.8125 27.9375 27.9375 9.3125
> chiquad # mostra i risultati del test chi-quadrato

Chi-squared test for given probabilities

data: casi.osservati
X-squared = 4.8076, df = 3, p-value = 0.1864

La probabilità p che la differenza tra i casi osservati e le frequenze attese sia dovuta al caso è elevata (p-value = 0.1864) e pertanto se ne deduce che il rapporto tra individui appartenenti alle varietà AB, Ab, aB, ab ottenuto nell'esperimento non è significativamente diverso da quello atteso di 9:3:3:1 previsto. La rappresentazione grafica di questi dati può essere fatta mediante un grafico a torta.

I due script, come tutti gli altri qui riportati, possono essere salvati e rapidamente riadattati per ripetere il test chi-quadrato su altri dati analoghi, in situazioni nelle quali si disponga dei casi osservati e delle relative probabilità teoriche.


----------

[1] Digitate help(chisq.test) nella Console di R per la documentazione della funzione chisq.test().

[2] Bossi A, Cortinovis I, Duca PG, Marubini E. Introduzione alla statistica medica. La Nuova Italia Scientifica, Roma, 1994, ISBN 88-430-0284-8, pp. 293-295.

Nessun commento:

Posta un commento