Come data scientist, dovrai analizzare la distribuzione delle variabili nel tuo dataset. Di solito si usano gli istogrammi: sono molto utili per mostrare l’intervallo di valori della variabile, la loro deviazione e dove si concentrano i valori.
numero di noleggi avviati da utenti non registrati
registered
numero di noleggi avviati da utenti registrati
count
numero totale di noleggi
Selezione delle variabili
Analizzerai la relazione tra atemp e humidity per season, quindi selezionale dal dataset. Ricordati di caricare il pacchetto dplyr.
bike_data<-
bike %>%
dplyr::select(season, atemp, humidity)
head(bike_data)
Istogrammi
Ok, ora sei prontə per iniziare ad analizzare i dati: comincia creando un istogramma per ognuna delle variabili per stagione. Userai la libreria ggplot2, quindi non dimenticare di caricarla.
Con l’istogramma puoi vedere che l’umidità è più alta in inverno (il che è ovvio), ma puoi anche farti un’idea di come è distribuita in ciascuna stagione.
Ora aggiungi la densità, un rug di densità e cambia i nomi dei facet, così da ottenere una visualizzazione più gradevole.
bike_data %>%
mutate(season_label = case_when(
season == 1 ~ "Spring",
season == 2 ~ "Summer",
season == 3 ~ "fall",
season == 4 ~ "winter")) %>%
ggplot( aes(x=humidity) ) +
geom_histogram(bins=30,aes(y = ..density..)) +
geom_rug()+
geom_density()+
facet_wrap(~season_label,ncol = 2)+
ggtitle("Histogram of humidity by season")
Adesso hai una percezione migliore di come si comporta l’umidità; fai lo stesso con atemp.
Istogramma di atemp
Riusa il codice sopra e cambia la variabile in atemp,
bike_data %>%
mutate(season_label = case_when(
season == 1 ~ "Spring",
season == 2 ~ "Summer",
season == 3 ~ "fall",
season == 4 ~ "winter")) %>%
ggplot( aes(x=atemp) ) +
geom_histogram(bins=30,aes(y = ..density..)) +
geom_rug()+
geom_density()+
facet_wrap(~season_label,ncol = 2)+
ggtitle("Histogram of atemp by season")
Istogramma di atemp per stagione
Fin qui tutto bene: tutto procede come ti aspetteresti per ciascuna stagione. In ogni grafico hai un’approssimazione della funzione di densità di probabilità.
Ma basandoti su questi grafici è difficile visualizzare come le variabili interagiscono tra loro. La prima difficoltà è che il tuo istogramma dovrebbe essere in 3D, perché stai cercando di trovare la funzione di distribuzione per due variabili.
Adattare una distribuzione bivariata ai tuoi dati
L’obiettivo è visualizzare la distribuzione bivariata; per farlo devi prima adattare una distribuzione bivariata ai dati. Lo farai usando la libreria MASS e la funzione kde2d. La funzione kde2d stimerà la distribuzione bivariata, assumendo la normalità delle variabili aleatorie. Gli input della funzione sono i seguenti,
Nota: Quando carichi la libreria MASS, questa include una funzione select, che entra in conflitto con la funzione select di dplyr. Per risolvere, quando usi la select di dplyr devi anteporre dplyr::, ad esempio dplyr::select(), affinché funzioni correttamente.
Ora guarda la classe e la struttura di bike_density
class(bike_density)
str(bike_density)
È una lista con 3 valori x, y e z. I primi due contengono i valori delle variabili, il terzo è una matrice con i valori della pdf. Osserva la densità usando la funzione contour,
Guardando questo grafico puoi identificare alcuni punti di accumulo, che possono essere intesi come i valori più frequenti per la combinazione delle due variabili. I valori per ciascun punto sono riassunti nella seguente tabella,
punto
atemp (°C)
umidità (%)
1
12.2
89
2
10.4
43
3
21
43
4
21.6
78
Heatmap
Per creare la tua heatmap devi prima definire la scala di colori che vuoi usare; puoi farlo con la funzione colorRampPalette
hm_col_scale è un vettore che va dal nero al rosso usando codici RGB in 1000 passi.
Ora disegna la tua mappa di calore usando la funzione image, che si usa per rappresentare matrici.
image(bike_density$z,
col = hm_col_scale,
zlim=c(min(bike_density$z), max(bike_density$z)))
text(0.31,0.46,"Most Frequent",col="blue",cex=0.8)
points(0.31,0.45,col="blue",pch=18)
Come vedi, questo grafico contiene più informazioni del contour plot, perché i colori indicano l’intensità del punto di accumulo. Puoi notare che i valori più frequenti di umidità e atemp durante la primavera sono intorno al punto $(10.4,43)$
Conclusione
Ora sai come creare una mappa di calore: tocca a te crearne una. Inizia guardando le altre stagioni e la relazione con le altre variabili.
Pensa a come potresti usare queste informazioni per capire quante bici devi mettere a disposizione per i diversi valori delle variabili, considerando che i punti più frequenti hanno una probabilità più alta.
Se vuoi approfondire la creazione di visualizzazioni con ggplot, dai un’occhiata al nostro corso Data Visualization with ggplot2.
Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.