Ricerca Sociale con R

Una wiki per l'analisi dei dati con R

Strumenti Utente

Strumenti Sito


Il Laboratorio di Analisi dei Dati con R, dell'Università di Teramo su piattaforma Meet, inizia il 9 aprile 2021 - Iscrizione - email
r:analisi_bivariata:tabelle_di_contingenza

Tabelle di contingenza

Le tabelle di contingenza presentano le frequenze congiunte di due variabili categoriali: ovvero, per ciascuna cella, il numero di casi che corrisponde ad entrambe le modalità di riga e di colonna.

La funzione table() può essere utilizzata anche per costruire tabelle di frequenza e tabelle a più entrate.

Valori assoluti

 table(x, y)

Usando il comando table() in questo modo per costruire una tavola di contingenza, la prima variabile sarà messa in riga, la seconda in colonna.

# dati
data(SLID, package = "carData")
 
# tabella di contingenza
table(SLID$language, SLID$sex)
##           Female Male
##   English   2999 2717
##   French     262  235
##   Other      564  527

La tabella non include i valori mancanti, e i marginali (totali di riga e di colonna).

Valori relativi

Con il comando prop.table() si ottiene la tabella dei valori relativi o percentuali.

# creo la tabella tab1
tab1 <- table(SLID$language, SLID$sex)
 
# frequenze relative
prop.table(tab1) 
##               Female       Male
##   English 0.41059693 0.37198795
##   French  0.03587076 0.03217415
##   Other   0.07721796 0.07215225

Per avere le frequenze relative di riga o di colonna:

# di riga
prop.table(tab1, margin = 1)
 
# di colonna
prop.table(tab1, margin = 2)

Anche in questo caso, mancano le distribuzioni marginali.

Valori percentuali

con prop.table()

Moltiplicando per 100 la tavola precedente, si ottengono i valori percentuali:

# percentuali
prop.table(tab1) * 100
## prop.table(tab1) * 100
##         
##             Female      Male
##  English 41.059693 37.198795
##  French   3.587076  3.217415
##  Other    7.721796  7.215225

Per l'arrotondamento, usiamo la funzione round():

# di colonna, con arrotondamento
round(prop.table(tab1, margin = 2) * 100, 1)
## round(prop.table(tab1, margin = 2) * 100, 1)
##         
##          Female Male
##  English   78.4 78.1
##  French     6.8  6.8
##  Other     14.7 15.1

Funzioni del pacchetto LabRS

Il pacchetto accompagna il libro *“Ricerca sociale con R”* ed è disponibile da CRAN e su GitHub (le istruzioni per installarlo sono alla pagina LabRS.

Per facilitare la costruzione di tabelle di contingenza, il pacchetto LabRS mette a disposizione due funzioni: percent() e tabcont().

funzione percent

Nel pacchetto LabRS è disponibile la funzione percent(). A differenza della funzione ctab() viene prodotto *solo il vettore* delle percentuali, e non una tabella completa (quindi può essere usata per ulteriori elaborazioni).

# carico il pacchetto
library(LabRS)
 
# percentuali complessive
percent(tab1)
 
# di colonna, con arrotondamento
percent(tab1, margin = 2, digits = 1)

Statistiche descrittive della tabella

Script di esempio

E' possibile scaricare ed eseguire lo script dell'esempio:

Tabelle_contingenza.R
data(SLID, package = "carData")
table(SLID$language, SLID$sex)
 
# creo la tabella tab1
tab1 <- table(SLID$language, SLID$sex)
 
# frequenze relative
prop.table(tab1) 
 
# di riga
prop.table(tab1, margin = 1)
 
# di colonna
prop.table(tab1, margin = 2)
 
# percentuali
prop.table(tab1) * 100
 
# di colonna, con arrotondamento
round(prop.table(tab1, margin = 2) * 100, digits = 1)
 
# percent
library(LabRS)
percent(tab1)
percent(tab1, margin = 2, digits = 1)
r/analisi_bivariata/tabelle_di_contingenza.txt · Ultima modifica: 26/09/2021 08:09 da admin