Tabelle di contingenza e probabilità condizionata

Le tabelle di contingenza sono usate per valutare l’interazione tra due variabili categoriche (qualitative). Possono essere chiamate anche tabelle a doppia entrata.

La ricerca di relazioni tra due variabili categoriali è un obiettivo molto comune per i ricercatori. Pensiamo, ad esempio, alla classica domanda che si pongono gli addetti al marketing su chi sia più propenso ad acquistare certe categorie di prodotti, se giovani o anziani oppure uomini o donne…


Tabelle di contingenza a doppia entrata e distribuzioni marginali

Una tabella a doppia entrata è una tabella che contiene righe e colonne ed  aiuta organizzare i dati da variabili categoriali:

  • Le righe rappresentano le possibili categorie per una variabile qualitativa, ad esempio maschi e femmine.
  • Le colonne rappresentano le possibili categorie per una seconda variabile qualitativa, ad esempio se piace la pizza oppure no…

Un distribuzione marginale mostra quante risposte complessive ci sono per ogni categoria della variabile. La distribuzione marginale di una variabile può essere determinata guardando alla colonna (o alla riga) “Totale”.

Vediamo un esempio.

N.B. Mi scuso, ma non mi è venuto in mente granchè, dunque ho creato una tabella (con dati fittizi, ovviamente) di rara stupidità, immaginando che le due variabili categoriche riguardino il livello di istruzione e le serie di fantascienza preferite…

Costruisco la tabella in R:

scififan <- matrix(c(44,38,26,53,35,30,58,22,29),ncol=3,byrow=TRUE)
rownames(scififan) <- c("laurea","diploma","istruzione inferiore")
colnames(scififan) <- c("star trek","star wars","doctor who")
scififan <- as.table(scififan)
scififan

e ottengo una cosa di questo tipo:

		star trek   star wars   doctor who
laurea		44	    38		26
diploma         53	    35		30
istr.inferiore	58          22		29
Immagine di fantasia sul dataset usato per parlare delle tabelle di contingenza e probabilità condizionata

Ricordate? Una distribuzione marginale mostra quante risposte complessive ci sono per ogni categoria della variabile (ai margini, appunto, dove c’è la colonna o la riga Totale…).

posso calcolare i totali di riga in R con:

margin.table(scififan,1)

e di colonna con:

margin.table(scififan,2)

posso anche trovare il “totale dei totali” con:

margin.table(scififan)

Riporto la tabella con i Totali:

	star trek   star wars   doctor who   TOTALE
laurea	44	    38	        26	     108
diploma	53	    35	        30	     118
ist.inf 58	    22	        29	     109
TOTALE	155	    95	        85	     335

Quindi i totali marginali per titolo di studio sono 108 per la laurea, 118 per il diploma, 109 per l’istruzione inferiore.

Allo stesso modo, i totali marginali per tipo di serie fantascientifica sono 155 per star trek, 95 per guerre stellari, 85 per doctor who.

Il totale dei totali deve essere lo stesso per entrambe le direzioni, in questo caso 335.

Avrei potuto anche ottenere una tabella completa a video con riportati i totali con poche righe di codice R:

scififan <- matrix(c(44,38,26,53,35,30,58,22,29),ncol=3,byrow=TRUE)

nomirighe <- c("laurea","diploma","istruzione inferiore")
nomicol<- c("star trek","star wars","doctor who")
dimnames(scififan) <- list(nomirighe,nomicol)

# ora calcolo il totale di colonna usando apply
totcol <- apply(scififan,2,sum)
# aggiungo una riga con i totali di colonna con rbind
scififan2 <- rbind(scififan,totcol)
# calcolo il totale di riga
totrighe <- apply(scififan2,1,sum)
#aggiungo una colonna con i totali di riga
conttable <- cbind(scififan2, totrighe)

#stampo a video la mia tabella
conttable

Posso allora chiedermi (e rispondermi): quale percentuale di laureati ha un debole per doctor who?
Elementare Watson (ah no, quella era un’altra serie…):

26/108 = 0,24 = 24% dei laureati predilige doctor who

E quanti fan di guerre stellari sono diplomati?

35/95 = 0,37 = 37% dei fan di guerre stellari sono tra i diplomati

In R, posso ottenere direttamente le probabilità per riga semplicemente con la funzione:

prop.table(scififan,1)

e il risultato sarà:

                     	
           star trek 	star wars    doctor who
laurea     0.4074074 	0.3518519    0.2407407
diploma    0.4491525 	0.2966102    0.2542373
ist.inf.   0.5321101 	0.2018349    0.2660550

(come si vede i totali di riga danno 1, o 100%)

oppure quelli per colonna con:

prop.table(scififan,2)

e il risultato sarà:

                     	
           star trek   star wars   doctor who
laurea     0.2838710   0.4000000   0.3058824
diploma    0.3419355   0.3684211   0.3529412
istr.inf.  0.3741935   0.2315789   0.3411765

(come si vede i totali di colonna danno 1 o 100%)

Come sempre c’è sempre più di un modo per ottenere il risultato, e posso anche operare installando il pacchetto “gmodels” e usando la funzione CrossTable (lascio all’help in linea di R il compito di mostrare tutte le opzioni del comando…):

install.packages("gmodels")
library(gmodels)
scififan <- matrix(c(44,38,26,53,35,30,58,22,29),ncol=3,byrow=TRUE)
rownames(scififan) <- c("laurea","diploma","istruzione inferiore")
colnames(scififan) <- c("star trek","star wars","doctor who")

CrossTable(scififan, prop.r="false", prop.c="false", prop.t="false",prop.chisq="false")

Bene: a cosa mi serve tutto questo? La risposta è: ad esempio per il calcolo della probabilità condizionata.

La probabilità condizionata

Prima di vedere di cosa si tratta e perchè è un concetto utilissimo nella realtà di tutti i giorni, serve qualche definizione preliminare riguardo la probabilità.

Un evento è qualcosa che accade con uno o più possibili esiti.
Un esperimento è il processo di misurare o fare un’osservazione.

Definizione importante: la probabilità di un evento è il rapporto tra il numero dei casi favorevoli e il numero dei casi possibili

\( P(A) = \frac {numero \ dei \ casi \ favorevoli}{numero \ dei \ casi \ possibili}\\ \)

Ricordiamo poi che:

  • La probabilità che due eventi accadano non può mai essere maggiore della probabilità che ciascun evento accada separatamente.
  • Se due eventi possibili, A e B, sono indipendenti, allora la possibilità che accadano entrambi è data dal prodotto delle loro probabilità individuali.
  • Se un evento può avere un certo numero di esiti possibili diversi e distinti (A,B,C,ecc.), allora la probabilità che accada A oppure B è pari alla somma delle possibilità individuali di A e B, e la somma delle probabilità di tutti gli esiti possibili (A,B,C, ecc.) è pari a 1, cioè al 100%.

La probabilità condizionata di un evento A rispetto a un evento B è la probabilità che si verifichi A, posto che si è verificato B.

La formula è:

\(P(A|B) = \frac {P(A \ and \ B)}{P(B)}\\ \)

Se una probabilità si basa su una variabile è una probabilità marginale, se su due o più variabili si chiama probabilità congiunta.

  • La probabilità di un evento P(A) è: \(\frac {probabilità \ marginale \ A}{Totale}\\ \)
  • La probabilità congiunta di due eventi è: \(\frac {P(A \ and \ B)}{Totale}\\ \)
  • La probabilità condizionale dell’esito A dato il verificarsi della condizione B è: \(\frac {P(A \ and \ B)}{P(B)}\\ \)

In altri termini:

Una probabilità congiunta è la probabilità che qualcuno selezionato da tutto il gruppo abbia due caratteristiche particolari allo stesso tempo. Cioè entrambe le caratteristiche avvengono congiuntamente. Si trova una probabilità congiunta prendendo il valore della cella intersezione di A e B e dividendo per il totale generale.

Per trovare una probabilità condizionale, considero il valore della cella che si trova all’incrocio di A e B e lo divido per il totale marginale di B, cioè della variabile che esprime l’evento che si è verificato.


E’ giunto il momento di un secondo esempio. Prendo i dati da:
Ellis GJ and Stone LH. 1979. Marijuana Use in College: An Evaluation of a Modeling Explanation. Youth and Society 10:323-334.

Lo studio si chiede se è più probabile che uno studente fumi marijuana se i genitori avevano fatto uso di droghe in passato. Ecco la tabella:

				
                   genitori  genitori  Totale
                     uso     non uso	
studente fa uso	   125	     94	       219
studente non uso   85        141       226	
Totale		   210       235       445

Applichiamo le nostre conoscenze per rispondere a queste domande:

  1. Se i genitori hanno fatto uso di droghe leggere in passato, qual è la probabilità che lo stesso faccia il figlio al college?

Si tratta di un caso di probabilità condizionale.
Ricordiamo \(P(A|B) = \frac {P(A \ and \ B)}{P(B)}\\ \), quindi

P(studente usi posto che genitori hanno usato) = 125 / 210 = 0,59 = 59%

2. Uno studente viene estratto a sorte e non usa marijuana. Qual è la probabilità che i suoi genitori ne abbiano fatto uso?

Anche in questo caso mi trovo di fronte a un quesito che chiede una probabilità condizionale. Quindi:

P (genitori ne hanno fatto uso posto che il figlio non usa) = 85 / 226 = 0,376 = 37,6%

3. Qual è la probabilità di estrarre uno studente che non fa uso di marijuana e i cui genitori ne hanno fatto uso in passato?

Si tratta in questo caso di trovare una probabilità congiunta, quindi:

\( \frac {P(A \ and \ B)}{Totale}\\ \), quindi 
\( \frac {85}{445} = 0.19\\ \).

La probabilità è del 19% circa.

Dipendenza e indipendenza

Se i risultati di A e B si influenzano a vicenda, diciamo che le due variabili sono in un rapporto di dipendenza.
Viceversa, possiamo dire che le due variabili sono indipendenti.

Mi esprimo in maniera più rigorosa: possiamo affermare che l’evento B è indipendente dall’evento A se:

P(B|A) = P(B)

oppure

P(A|B) = P(A)

qualora non sia così, gli eventi sono tra loro dipendenti.

Dunque:

  • P(A and B) =  P(A) P(B) se e solo se A e B sono eventi indipendenti.
  • P(A | B) = P(A) e P(B | A) = P(B) se e solamente se A e B sono eventi indipendenti.

Esaminiamo l’indipendenza di variabili categoriche…

Spieghiamoci meglio avvalendoci di un esempio.

Chiamiamo A il fatto che le persone amano o meno il ciclismo.
B invece esprime il fatto che si ami oppure no l’abbacchio al forno. (logico, no?)

Costruisco la mia tabella di contingenza:

                Ok ciclismo    No ciclismo  Totale
Sì abbacchio        95             36        131
No abbacchio        15             19         34
--------------------------------------------------
Totale             110             55        165

Ricordiamoci cosa significa dire che due eventi sono indipendenti. Significa questo:
P(A | B) = P(A)

Ma nel nostro caso vediamo che
P(A) = 66,7%
perchè 110/165 = 0,67

P(A | B) = 72,5%
perchè 95/131 = 0,725

Ricordiamo infatti che 
\(P(A|B) = \frac {P(A \ and \ B)}{P(B)}\\ \), quindi 
\( \frac {95}{131} = 0.725\\ \).

Dal risultato è chiaro che
\( P(A) \neq P(A|B)\)
i due eventi risultano NON indipendenti, (quindi sono dipendenti).

D’altronde, è noto a tutti che tra amare il ciclismo e l’abbacchio arrosto c’è una chiara dipendenza 🙂

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *