
Gli istogrammi nel linguaggio R
In questo tutorial parliamo degli istogrammi nel linguaggio R.
Cosa è un istogramma? Gli istogrammi (o diagrammi a barre) sono un tipo di grafico che aiuta a visualizzare la distribuzione di un dataset, mostrando la frequenza con cui i valori cadono in determinati intervalli. E' uno strumento statistico molto utile nell'analisi esplorativa dei dati, perché ti permette di interpretare e ottenere rapidamente un'idea della distribuzione dei tuoi dati.
La creazione di un istogramma è molto semplice nel linguaggio R, ti basta usare la funzione hist().
hist(dati)
Ti faccio un esempio pratico.
Immagina di avere una classe con 30 studenti e di voler visualizzare la distribuzione delle loro età.
Potresti elencare ogni età, ma questo non ti darebbe immediatamente un'idea di come sono distribuite le età nella classe. Qui entra in gioco l'istogramma: raggruppando le età in intervalli (ad esempio, 18-20, 21-23, ecc.) e contando quanti studenti cadono in ogni intervallo, puoi facilmente vedere se la maggior parte degli studenti è più giovane, più vecchia, o se l'età è distribuita uniformemente.
Supponiamo di avere un vettore `eta_studenti` che contiene le età di 30 studenti.
eta_studenti <- c(19, 22, 21, 20, 23, 22, 19, 21, 20, 19, 24, 23, 22, 21, 20, 25, 23, 22, 21, 20, 19, 24, 23, 22, 21, 20, 19, 24, 23, 22)
Per creare un istogramma rapidamente, utilizza la funzione hist() in questo modo:
hist(eta_studenti)
Questa funzione genera un istogramma delle età degli studenti.
In questo caso, il linguaggio R determina automaticamente il numero delle classi o "bin", ovvero le barre verticali nell'istogramma.
Se vuoi specificare manualmente il numero delle classi da utilizzare, puoi farlo usando l'argomento breaks.
hist(eta_studenti, breaks=3)
Il parametro `breaks` specifica il numero di interruzioni, in cui i dati dovrebbero essere divisi per costruire l'istogramma.
Dunque, se indichi un valore di `breaks` pari a 3, R genera un istogramma con 4 classi: 18-19, 20-21, 22-23, 24-25.
Puoi ulteriormente personalizzare l'istogramma indicando un titolo tramite l'argomento main.
E' anche possibile specificare le etichette da usare sull'asse orizzontale e verticale, rispettivamente con gli argomenti xlab e ylab, o il colore delle barre tramite l'argomento col.
hist(eta_studenti, breaks=5, main="Distribuzione delle età degli studenti", xlab="Età", ylab="Frequenza", col="gray")
Questo comando assegna un titolo al grafico, etichetta l'asse x con "Età" e colora le barre dell'istogramma di grigio ("gray").
Come interpretare i dati? Guardando l'istogramma, puoi iniziare a interpretare la distribuzione delle età. Ad esempio, se vedi una grande barra nell'intervallo 19-20, significa che la maggior parte degli studenti ha un'età che cade in quell'intervallo. Se l'istogramma è simmetrico, significa che i dati sono distribuiti uniformemente attorno alla media. Se è inclinato verso destra o verso sinistra, invece, indica una distribuzione asimmetrica dei dati.
Gli istogrammi sovrapposti
Il linguaggio R ti permette anche la creazione di istogrammi sovrapposti nello stesso diagramma a barre. E' una funzionalità molto utile se vuoi fare un confronto diretto tra due dataset.
Ti faccio un esempio pratico.
Supponiamo di voler confrontare la distribuzione delle età degli studenti di due classi diverse.
eta_studenti_classe1 <- c(19, 22, 21, 20, 23, 22, 19, 21, 20, 19, 24, 23, 22, 21, 20, 25, 23, 22, 21, 20, 19, 24, 23, 22, 21, 20, 19, 24, 23, 22)
eta_studenti_classe2 <- c(20, 23, 22, 21, 24, 23, 20, 22, 21, 20, 23, 24, 23, 22, 21, 24, 23, 22, 21, 20, 19, 24, 23, 22, 21, 20, 19, 24, 23, 22)
Puoi creare due istogrammi separati o sovrapporli per un confronto diretto.
Ecco come potresti sovrapporre due istogrammi.
Comincia visualizzando il diagramma a barre della prima serie di dati (classe 1).
hist(eta_studenti_classe1, col=rgb(1,0,0,0.5), xlim=c(18,26), main="Distribuzione delle età", xlab="Età")
Al momento l'istogramma visualizza soltanto una serie di dati.
Per visualizzare anche la seconda serie di dati (classe 2), scrivi un nuovo comando hist() indicando l'attributo add=TRUE.
Questo ti permette di aggiungere il secondo istogramma senza cancellare il primo istogramma dal diagramma.
hist(eta_studenti_classe2, col=rgb(0,0,1,0.5), add=TRUE)
Il secondo grafico (blu) della classe2 viene visualizzato "sopra" il primo grafico (rosso) della classe 1.
In questo modo crei due istogrammi sovrapposti con colori semi-trasparenti per le due classi e puoi fare un confronto diretto tra le distribuzioni delle età.
Guardando gli istogrammi sovrapposti puoi già renderti conto di alcuni aspetti. Ad esempio, la prima barra rossa emerge sotto quella blu. Questo vuol dire che la distribuzione della classe1 è molto più concentrata sulla prima classe d'età 19-20 rispetto alla classe 2. La distribuzione della classe2, invece, si concentra maggiormente nella fascia d'età 22-24.
Per rendere più chiara la comprensione del diagramma, aggiungi una legenda tramite la funzione legend().
legend("topright", legend=c("Classe 1", "Classe 2"), fill=c(rgb(1,0,0,0.5), rgb(0,0,1,0.5)))
In questo caso la legenda viene aggiunta in alto a destra, perché abbiamo indicato "topright" nel comando.
In conclusione, la generazione di istogrammi in R si distingue per la sua semplicità e flessibilità.
Ti offre ampie possibilità di personalizzazione per adeguare il risultato finale alle tue specifiche necessità analitiche e di presentazione.