I grafici a barre (bar plot o barplot) sono i più adatti a
rappresentare i risultati dei conteggi. Riprendiamo i dati di
Snedecor relativi ai decessi avvenuti in un gruppo di non fumatori e
in un gruppo di fumatori di pipa [1], trasformandoli ora in percentuale:
Esito
|
Non_fumatori
|
Fumatori_di_pipa
|
Deceduti
|
11.0
|
13.4
|
Viventi
|
89.0
|
86.6
|
#
GRAFICI A BARRE AFFIANCATE
#
cells
<- c(11.0,13.4,89.0,86.6) # 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 dati
#
mydata
# mostra la matrice dati
t(mydata)
# mostra la matrice dati trasposta
#
windows()
# apre una nuova finestra
barplot(mydata,beside=TRUE,
legend=TRUE, ylim=c(0,150), col=c("darkblue","red"),
ylab="Frequenze osservate", xlab="",
main="Grafico a barre matrice originale") #
grafico a barre con la matrice originale
#
windows()
# apre una nuova finestra
barplot(t(mydata),beside=TRUE,
legend=TRUE, ylim=c(0,150), col=c("darkblue","red"),
ylab="Frequenze osservate", xlab="",
main="Grafico a barre matrice trasposta") #
grafico a barre con la matrice trasposta
#
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 dalla tabella 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)).
A
questo punto per fare il punto della situazione sono mostrate sia la
matrice dati mydata sia la sua
matrice trasposta t(mydata) [2]:
> mydata # matrice dati
Non_fumatori Fumatori_di_pipa
Deceduti 11 13.4
Viventi 89 86.6
> t(mydata) # matrice trasposta
Deceduti Viventi
Non_fumatori 11.0 89.0
Fumatori_di_pipa 13.4 86.6
Viene
quindi aperta una nuova finestra con la funzione windows()
e viene generato un primo grafico a barre con la funzione barplot()
[3] impiegando questi argomenti:
→ per
i dati viene impiegata la matrice dati originale mydata;
→ l'argomento
beside=TRUE
specifica che le barre sono affiancate e non sovrapposte in pila;
→ con
l'argomento legend=TRUE
viene generata una legenda;
→ con
l'argomento ylim=c(0,150)
sono impostati il valore minimo e il valore massimo per l'asse delle
y;
→ con
l'argomento col
è impostato il colore delle barre.
Viene
quindi aperta una nuova finestra con la funzione windows()
una nuova finestra (attenzione al fatto che ogni nuova finestra
grafica si sovrappone alla precedente, spostatela per visualizzarle
entrambe) e viene generato con la funzione barplot()
un secondo grafico a barre con gli stessi argomenti del precedente ma
impiegando i dati della matrice trasposta t(mydata).
Riprendiamo
ora i dati sui quali è stato effettuato in precedenza il test di McNemar [4]. Nella sperimentazione 250 pazienti sofferenti di artrite
erano sottoposti al trattamento con il farmaco A e al trattamento con
il farmaco B. Era stato poi rilevato il grado di soddisfazione di
ciascuno di essi rispetto all'uno e all'altro trattamento:
Esito
|
Soddisfatto_da_A
|
Non_soddisfatto_da_A
|
Soddisfatto_da_B
|
150
|
20
|
Non_soddisfatto_da_B
|
30
|
50
|
In
totale 150 soggetti si erano mostrati soddisfatti di entrambi i
trattamenti, 50 avevano espresso insoddisfazione per entrambi, mente
altri 50 si sono mostrati insoddisfatti 20 dell'uno e 30 dell'altro.
In questo caso è inutile trasformare i dati in percentuali, in
quanto le proporzioni non cambierebbero.
Questo
script permette di generare per questi dati due differenti grafici a
barre, il primo a barre affiancate e e il secondo a barre
sovrapposte. Copiatelo e incollatelo nella
Console di R e premete ↵
Invio:
#
GRAFICI A BARRE AFFIANCATE E A BARRE SOVRAPPOSTE
#
cells
<- c(150,20,30,50) # genera l'array cells con i valori
numerici contenuti nelle celle
rnames
<- c("Soddisfatto_da_B", "Non_soddisfatto_da_B")
# genera l'array rnames con i nomi delle righe
cnames
<- c("Soddisfatto_da_A", "Non_soddisfatto_da_A")
# 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 dati
#
mydata
# mostra la matrice dati
#
windows()
# apre una nuova finestra
barplot(mydata,beside=TRUE,
legend=TRUE, ylim=c(0,200), col=c("darkblue","red"),
ylab="Frequenze osservate nel campione", xlab="",
main="Soddisfazione in seguito al trattamento in 250 soggetti")
# i risultati sono arricchiti con un grafico a barre
#
windows()
# apre una nuova finestra
barplot(mydata,beside=FALSE,legend=TRUE,
ylim=c(0,200), col=c("darkblue","red"),
ylab="Frequenze osservate nel campione", xlab="",
main="Soddisfazione in seguito al trattamento in 250 soggetti")
# i risultati sono arricchiti con un grafico a barre
#
Qui
a parte i diversi limiti ylim=c(0,200)
per la scala dell'asse delle y non compare nulla di rilevante
rispetto allo script precedente, se non l'argomento beside
che nel primo grafico viene posto beside=TRUE
per generare il grafico a barre affiancate
mentre
nel secondo grafico viene posto beside=FALSE
per generare un grafico a barre sovrapposte
Notare come queste rappresentazioni grafiche sono complementari all'analisi statistica. Nella seconda parte dei grafici a barre [5] sono riportati altri esempi utili con script che possono essere salvati per essere riadattati al bisogno.
----------
[1] Vedere il post test chi-quadrato 2 righe · 2 colonne.
[2]
Digitate help(t) nella
Console di R per la documentazione della funzione t().
[3]
Digitate help(barplot) nella
Console di R per la documentazione della funzione barplot().
[4] Vedere il post Test di McNemar.
Nessun commento:
Posta un commento