here::here("code", "_common.R") |>
source()
# Load packages
if (!requireNamespace("pacman")) install.packages("pacman")
pacman::p_load(dslabs, ggrepel, stringr)
18 Principi della visualizzazione dei dati
- comunicare i risultati basati sui dati;
- utilizzare ggplot2 per creare grafici personalizzati;
- riconoscere i limiti di alcuni grafici comunemente utilizzati e comprendere perché evitarli.
- Leggere Testing Statistical Charts: What Makes a Good Graph? (Vanderplas, Cook, and Hofmann 2020). Questo articolo descrive le migliori pratiche per la creazione di grafici.
- Consultare il capitolo Data visualization di Wickham et al. (2023). Questo capitolo fornisce una panoramica degli aspetti fondamentali della visualizzazione dei dati.
- Consultare Data Visualization. A practical introduction di Healy (2018).
- Consultare Fundamentals of Data Visualization di Wilke (2019).
- Leggere il post Open letter to journal editors: dynamite plots must die di Rafael Irizarry.
- Consultare il post The top ten worst graphs di Karl Broman.
- Leggere il capitolo Data Visualization di Introduction to Data Science.
- Visionare Communicating Science Using Visuals: Tips for Scientists.
18.1 Introduzione
In questo capitolo vengono presentati i principi fondamentali della visualizzazione dei dati, accompagnati da una breve descrizione esplicativa. Per approfondimenti, si raccomanda di consultare il capitolo Data Visualization del libro Introduction to Data Science.
Verranno inoltre analizzati errori, bias, imprecisioni sistematiche e altre problematiche che possono influenzare l’interpretazione dei dati. Poiché tali problematiche spesso sfuggono a una verifica diretta nel dataset, la visualizzazione diventa uno strumento indispensabile per identificarle e gestirle.
L’aumento della disponibilità di dataset informativi e di strumenti software ha elevato l’importanza della visualizzazione in numerosi ambiti. Essa non solo facilita la comunicazione dei risultati, ma stimola ulteriori analisi e consente di individuare errori e anomalie in modo immediato.
18.2 Un’Immagine Vale Più di Mille Parole
I numeri e le stringhe che compongono un dataset raramente offrono una visione chiara. Ad esempio, osservando la tabella dei dati relativi agli omicidi con armi da fuoco negli Stati Uniti:
head(murders)
#> state abb region population total
#> 1 Alabama AL South 4779736 135
#> 2 Alaska AK West 710231 19
#> 3 Arizona AZ West 6392017 232
#> 4 Arkansas AR South 2915918 93
#> 5 California CA West 37253956 1257
#> 6 Colorado CO West 5029196 65
diventa difficile rispondere a domande quali:
- Quali stati hanno le popolazioni maggiori o minori?
- Qual è la dimensione “tipica” di uno stato?
- Esiste una relazione tra popolazione e numero totale di omicidi?
- Come variano i tassi di omicidio nelle diverse regioni?
Al contrario, il grafico seguente rende evidenti tutte queste informazioni:
Il detto “un’immagine vale più di mille parole” si conferma: una buona visualizzazione comunica immediatamente il messaggio e spesso elimina la necessità di ulteriori analisi.
18.2.1 Domande Guidate dalla Visualizzazione
Osservando il grafico, possiamo rispondere rapidamente ad alcune domande:
Stati con popolazioni maggiori:
Gli stati con le popolazioni più numerose si trovano a destra sull’asse delle ascisse (scala logaritmica), evidenziando, ad esempio, California, Texas e New York.Stati con popolazioni minori:
Quelli con popolazioni ridotte si posizionano a sinistra, come Wyoming, Vermont e Alaska.Dimensione “tipica” di uno stato:
La densità delle osservazioni suggerisce che la maggior parte degli stati conta intorno a un milione di abitanti, mentre molti raggiungono i 5–10 milioni.Relazione tra popolazione e omicidi:
È evidente una relazione positiva: stati più popolosi tendono ad avere un numero maggiore di omicidi, pur mostrando alcune discrepanze dovute ad altri fattori.-
Variazione dei tassi di omicidio per regione:
Il grafico, attraverso la codifica cromatica, indica che:- Il Sud registra generalmente tassi più elevati.
- Il Nord-Est presenta tassi moderati e relativamente più bassi.
- L’Ovest mostra una grande variabilità, in parte dovuta a grandi popolazioni.
- Il Midwest evidenzia tassi bassi o moderati.
- Il Sud registra generalmente tassi più elevati.
18.3 Codificare i Dati Attraverso Segnali Visivi
Le visualizzazioni si basano su segnali visivi come posizione, lunghezza, angoli, area, luminosità e tonalità del colore. Tra questi, posizione e lunghezza risultano i più efficaci, in quanto il cervello umano è particolarmente sensibile alle variazioni spaziali. Al contrario, angoli e aree – tipici dei pie chart o bubble plot – possono indurre errori interpretativi, soprattutto in presenza di differenze minime.
Il colore, impiegato per rappresentare variabili qualitative o categoriali, è particolarmente utile in visualizzazioni multidimensionali, come le heatmap, ma va usato con attenzione per garantire l’accessibilità (ad es. evitare combinazioni rosso-verde per il daltonismo).
Mentre le tabelle garantiscono precisione numerica, i grafici (come i barplot) risultano più efficaci per dataset complessi, in quanto facilitano l’individuazione di pattern e tendenze.
18.4 Scelta della Visualizzazione Più Adeguata
La scelta del tipo di visualizzazione dipende dalla natura dei dati e dall’obiettivo comunicativo. Ad esempio:
- Barplot e dot plot: Ideali per confrontare valori quantitativi tra categorie.
- Istogrammi, boxplot e raincloud plots: Efficaci per descrivere la distribuzione di dati continui.
- Grafici di dispersione (scatter plot): Utili per esplorare relazioni tra due variabili continue.
La chiarezza e la leggibilità sono fondamentali: l’aggiunta di elementi superflui può distrarre e confondere, mentre una rappresentazione essenziale evidenzia il messaggio principale.
18.5 Aspetti Tecnici della Visualizzazione
18.5.1 Inclusione dello Zero
Quando la lunghezza è usata come segnale visivo (come nei barplot), è fondamentale far partire l’asse da zero per evitare distorsioni visive. In grafici basati sulla posizione (ad es. scatter plot), invece, l’inclusione dello zero non è sempre necessaria.
18.5.2 Prevenire le Distorsioni
L’utilizzo di aree, ad esempio nei bubble plot, può esagerare le differenze tra valori a causa della relazione quadratica tra raggio e area. Per confronti accurati, è preferibile utilizzare la posizione o la lunghezza.

Durante il Discorso sullo Stato dell’Unione del 2011 del Presidente Barack Obama, fu utilizzato il grafico sopra per confrontare il PIL statunitense con quello di quattro nazioni concorrenti.
Giudicando dall’area dei cerchi, gli Stati Uniti sembrerebbero avere un’economia oltre 5 volte più grande di quella cinese e oltre 30 volte superiore a quella francese. Tuttavia, analizzando i dati reali, emergono discrepanze significative: i rapporti effettivi sono rispettivamente 2.6 volte quello della Cina e 5.8 volte quello della Francia.
Questa distorsione visiva nasce dall’avere reso il raggio (non l’area) proporzionale al valore economico. Poiché l’area di un cerchio dipende dal quadrato del raggio (\(Area = \pi r^2\)), le proporzioni vengono amplificate:
-
\(2.6^2 = 6.76\) (approssimato a 6.5 nel grafico)
- \(5.8^2 = 33.64\) (approssimato a 34.1)
Il confronto sottostante illustra l’impatto della scelta tra raggio e area nella rappresentazione grafica:

Non a caso, ggplot2 utilizza per impostazione predefinita l’area anziché il raggio. Tuttavia, in casi come questo, la soluzione ottimale sarebbe evitare del tutto i cerchi a favore di strumenti più intuitivi come posizione e lunghezza:

Questo caso dimostra chiaramente come, per evitare distorsioni percettive, sia una prassi consolidata ottimizzare la visualizzazione dei dati attraverso confronti basati su lunghezze (o posizioni) anziché su aree o volumi, come evidenziato dall’errata rappresentazione del PIL nel grafico originale.
18.5.3 Ordinamento delle Categorie
Disporre le categorie in base al valore della variabile di interesse, anziché in ordine alfabetico, facilita l’interpretazione visiva e mette in luce pattern significativi.
18.5.4 Evitare i Dynamite Plots
I dynamite plots, che rappresentano la media e l’errore standard, sono spesso fuorvianti in quanto enfatizzano differenze che potrebbero non essere statisticamente rilevanti. Una rappresentazione tramite dot plot, mostrando tutti i dati, offre una visione più completa della distribuzione (Weissgerber et al., 2015).
Consideriamo il seguente grafico a barre (dynamite plot) che mostra la media (estremità superiore delle barre) e gli errori standard.

Questa visualizzazione offre informazioni limitate:
- Le barre partono da 0, suggerendo erroneamente l’esistenza di esseri umani alti pochi centimetri.
- Non chiarisce se tutti i maschi siano più alti delle femmine o come siano distribuite le altezze.
Un approccio migliore è quello di mostrare i dati:

La visualizzazione di tutti i punti (238 femmine e 812 maschi) rivela l’intervallo dei dati, ma persiste un problema: i punti sovrapposti ostacolano l’interpretazione.
Ottimizzazioni: jitter e trasparenza

Due miglioramenti chiave:
-
Jitter orizzontale: spostamento casuale dei punti per ridurre la sovrapposizione.
- Alpha blending: trasparenza graduale: le aree con più dati appaiono più scure.
Risultati:
- si osserva che i maschi sono in media più alti;
- è chiaro che vi è una grande variabilità e una notevole sovrapposizione tra le due distribuzioni.
In sintesi, strumenti semplici, come jitter e trasparenza, migliorano drasticamente l’interpretazione della distribuzione dei dati.
18.5.5 Confronti Coerenti
Quando si comparano distribuzioni (ad es. tramite istogrammi), è essenziale utilizzare gli stessi assi per evitare interpretazioni errate. L’allineamento dei grafici, sia in verticale che in orizzontale, facilita il confronto diretto.
Poiché ci sono molti punti, è più efficace mostrare la distribuzione dei dati anziché i singoli valori. Per questo motivo, utilizziamo istogrammi separati per ciascun gruppo:

Tuttavia, in questo grafico non è immediatamente evidente che, in media, gli uomini siano più alti delle donne. Per accorgersene, bisogna osservare con attenzione e notare che l’asse x del grafico maschile copre un intervallo di valori più ampio. Un principio fondamentale nella comparazione di dati tra due grafici è mantenere le stesse scale sugli assi.
Negli istogrammi, l’altezza media si riflette in spostamenti orizzontali: valori più bassi a sinistra, valori più alti a destra. Allineare i grafici in verticale aiuta a visualizzare meglio questa differenza quando gli assi sono coerenti:

Questo secondo grafico rende molto più evidente che, in media, gli uomini sono più alti delle donne.
18.5.6 Trasformazioni Logaritmiche
Le trasformazioni logaritmiche sono particolarmente utili per dati distribuiti su ampi ordini di grandezza o quando le variazioni sono di natura moltiplicativa. Esse riducono le distorsioni visive, rendendo più chiara l’interpretazione dei dati estremi.
Consideriamo questo grafico a barre, che mostra la popolazione media dei paesi di ciascun continente nel 2015:

A prima vista, sembrerebbe che i paesi dell’Asia siano molto più popolosi rispetto a quelli degli altri continenti. Tuttavia, applicando il principio che ci chiede di mostrare i dati, notiamo rapidamente che questa differenza è dovuta alla presenza di due paesi con una popolazione estremamente elevata, presumibilmente India e Cina:

Consideriamo ora come la trasformazione logaritmica possa migliorare la visualizzazione di dati distribuiti in modo asimmetrico (right-skewed). Esistono anche altre trasformazioni utili, come la logistica (logit), impiegata per interpretare variazioni nei rapporti di probabilità (odds), e la radice quadrata (sqrt), spesso usata per stabilizzare la varianza nei dati basati su conteggi.
Nel caso della popolazione dei paesi, la distribuzione è fortemente asimmetrica: la maggior parte delle nazioni ha una popolazione relativamente piccola, mentre poche hanno numeri estremamente elevati. Come mostrato nel boxplot precedente, questa disparità comprime la maggior parte dei dati in una piccola area del grafico, lasciando molto spazio inutilizzato. Questo rende difficile cogliere le differenze tra la maggior parte dei paesi.
Una trasformazione logaritmica migliora la leggibilità di uno scatter plot quando i dati mostrano una forte asimmetria. Qui, applicando questa tecnica alle popolazioni nazionali, otteniamo una rappresentazione molto più chiara e informativa. Di seguito, confrontiamo il barplot originale con un boxplot in cui l’asse y è stato trasformato con il logaritmo:

Grazie a questa trasformazione, scopriamo che la mediana della popolazione nei paesi africani è in realtà più alta rispetto a quella dei paesi asiatici, un’informazione che il grafico iniziale non rendeva evidente.
18.5.7 Codifica di Variabili Aggiuntive
Per rappresentare una terza variabile in un grafico di dispersione, si possono utilizzare dimensioni, colori o forme differenti. È importante scegliere palette cromatiche accessibili e adatte anche a chi ha difficoltà visive.
Esaminiamo la relazione tra sopravvivenza infantile e reddito medio. Il grafico seguente rappresenta questa relazione includendo tre variabili aggiuntive: appartenenza all’OPEC, regione geografica e popolazione.

Le variabili categoriali sono rappresentate attraverso il colore e la forma dei punti. La forma può essere modificata utilizzando l’argomento shape.
18.5.8 Evitare Rappresentazioni Tridimensionali Inutili
Grafici 3D, come barre o pie chart tridimensionali, possono essere visivamente accattivanti, ma tendono a distorcere la percezione dei dati. Le visualizzazioni 2D rimangono generalmente più chiare e comprensibili.
18.5.9 Scelta delle Cifre Significative
Mostrare un numero eccessivo di decimali può confondere il lettore. Generalmente una o due cifre significative sono sufficienti per trasmettere il messaggio in modo accurato.
18.5.10 Conoscere il Pubblico
Infine, è essenziale adattare la visualizzazione al pubblico di riferimento. Grafici destinati a un’analisi interna possono includere dettagli tecnici, mentre per un pubblico non specializzato è preferibile semplificare e spiegare chiaramente i dati.
18.6 Introduzione a ggplot2
R offre strumenti potenti per creare grafici, e tra questi il pacchetto ggplot2 è uno dei più flessibili e facili da usare.
18.6.1 Perché usare ggplot2?
Immagina di voler analizzare il livello di ansia di un gruppo di studenti prima di un esame. Hai raccolto i dati, ma leggerli in una tabella può essere poco intuitivo. Con un grafico ben fatto, invece, puoi subito vedere chi ha livelli di ansia molto alti o come varia l’ansia in base all’“intolleranza all’incertezza” (IU), per esempio.
Simuliamo i dati:
# Imposta il seed per la riproducibilità
set.seed(123)
# Crea un campione di 200 partecipanti
n <- 200
# Genera il genere (0 = maschio, 1 = femmina)
gender <- sample(c(0, 1), n, replace = TRUE)
# Simula l'ansietà con livello più alto per le femmine
anxiety <- rnorm(n, mean = 50 + 10 * gender, sd = 10)
# Simula ore di studio con correlazione negativa con l'ansietà
study_hours <- rnorm(n, mean = 30 - 0.3 * anxiety, sd = 5)
# Simula IU (Intolerance of Uncertainty) con correlazione positiva
IU <- rnorm(n, mean = 50 + 0.5 * anxiety, sd = 10)
# Crea dataframe
df <- data.frame(
id = 1:n,
gender = factor(gender, levels = c(0, 1), labels = c("Male", "Female")),
anxiety = round(anxiety, 1),
study_hours = round(study_hours, 1),
IU = round(IU, 1)
)
df |>
head()
#> id gender anxiety study_hours IU
#> 1 1 Male 42.9 13.6 65.4
#> 2 2 Male 52.6 10.5 66.3
#> 3 3 Male 47.5 11.0 84.0
#> 4 4 Female 56.5 7.8 85.8
#> 5 5 Male 40.5 15.7 55.2
#> 6 6 Female 59.5 13.8 78.8
ggplot2 permette di creare grafici chiari e visivamente accattivanti, suddividendo ogni grafico in componenti:
-
Dati → Il dataset che vogliamo analizzare.
-
Geometrie → Il tipo di grafico (es. punti, barre, linee).
- Mappatura estetica → Il modo in cui i dati vengono rappresentati graficamente (es. colori, posizioni).
18.6.2 Creare un grafico con ggplot2
Per usare ggplot2, bisogna prima installarlo e attivarlo con:
Supponiamo di avere un dataset con il livello di ansia di studenti prima di un esame e vogliamo vedere se c’è una relazione con il numero di ore di studio. Creiamo un grafico a dispersione (scatterplot):
df |>
ggplot(
aes(x = study_hours, y = anxiety)
) +
geom_point()
Qui diciamo a ggplot2:
- Usa il dataset studenti
- Metti ore_studio sull’asse X e livello_ansia sull’asse Y
- Rappresenta i dati con punti
18.6.3 Personalizzare il grafico
Possiamo migliorare il grafico aggiungendo colore e titoli:
df |>
ggplot(
aes(x = study_hours, y = anxiety, color = gender)
) +
geom_point(size = 3) +
labs(
title = "Relazione tra ore di studio e ansia",
x = "Ore di studio",
y = "Livello di ansia",
color = "Genere"
)
Cosa cambia?
- i punti hanno colori diversi in base al genere;
- il grafico ha titoli chiari .
18.6.3.1 Altri tipi di grafici
-
Istogrammi → Per vedere la distribuzione dei punteggi di ansia
df |> ggplot( aes(x = anxiety) ) + geom_histogram(binwidth = 5)
-
Boxplot → Per confrontare l’ansia tra gruppi diversi
df |> ggplot( aes(x = gender, y = anxiety) ) + geom_boxplot()
In sintesi, ggplot2 è un ottimo strumento per visualizzare dati in psicologia. Anche con pochi comandi, possiamo creare grafici utili per interpretare i dati in modo intuitivo.
18.7 Riflessioni Conclusive
Una visualizzazione ben progettata trasforma informazioni complesse in messaggi immediati e facilmente interpretabili, riducendo il carico cognitivo e favorendo decisioni informate. Seguendo i principi illustrati, è possibile prevenire errori interpretativi e comunicare in modo responsabile i risultati di un’analisi.
Suggerimenti Chiave per Visualizzazioni Efficaci:
Chiarezza del Messaggio:
Definire l’obiettivo della visualizzazione e assicurarsi che il grafico trasmetta il messaggio principale in modo inequivocabile.Uso Appropriato del Colore:
Selezionare una palette limitata (circa cinque o sei colori) e accessibile per garantire coerenza e leggibilità.Guida dell’Attenzione:
Utilizzare dimensioni, posizionamento e contrasto per mettere in evidenza i dati rilevanti, eventualmente integrando annotazioni esplicative.Gestione del Sovraccarico Visivo:
Applicare la trasparenza per ridurre il sovrapposizionamento dei dati e, se necessario, ricorrere a tecniche di sottocampionamento.Coerenza degli Elementi Testuali:
Titoli, etichette e legende devono essere chiari e intuitivi, evitando abbreviazioni eccessive o termini troppo tecnici.
Ulteriori Accortezze:
Evitare distorsioni:
Prediligere grafici semplici (ad es. barplot con asse che parte da zero) per non alterare la percezione delle proporzioni.Ordinare le categorie:
Disporre le categorie in base ai valori, anziché in ordine alfabetico, per facilitare il confronto.Mostrare tutti i dati:
Preferire rappresentazioni che evidenziano anche i dati grezzi (come dot plot o strip chart) per non occultare informazioni rilevanti.Confronti coerenti:
Utilizzare assi comuni quando si confrontano distribuzioni diverse, garantendo una valutazione accurata.Trasformazioni logaritmiche:
Impiegare scale logaritmiche per dati distribuiti su ampi intervalli, migliorando la leggibilità dei valori estremi.Codifica di variabili aggiuntive:
Integrare informazioni supplementari tramite colore, dimensione o forma dei punti, soprattutto nei grafici a dispersione.Evitare rappresentazioni 3D:
Mantenere le visualizzazioni in 2D per evitare distorsioni nella percezione dei dati.Limitare le cifre decimali:
Mostrare solo il numero necessario di cifre significative per garantire chiarezza.Adattare la visualizzazione al pubblico:
Semplificare i grafici e spiegare chiaramente i dati quando il target è non specializzato.
18.8 Esercizi
In questo esercizio analizzerai i dati raccolti dagli studenti sulla Satisfaction With Life Scale (SWLS) e sulla Lubben Social Network Scale (LSNS-6). Le variabili incluse sono:
- SWLS: Punteggio totale della Scala di Soddisfazione per la Vita.
- LSNS-6: Punteggio totale sulla scala della rete sociale.
- Genere: Maschio/Femmina.
- Tipo di scuola superiore: Liceo classico o scientifico vs. altro.
- Numero di amici: Auto-riferito.
- Numero di uscite settimanali con gli amici.
Utilizzerai questi dati per esplorare le distribuzioni, creare visualizzazioni efficaci e interpretare i risultati.
Esercizi Teorici
-
Principi della visualizzazione
- Quali sono i principali segnali visivi utilizzati nella visualizzazione dei dati? Fornisci un esempio pratico per ognuno.
- Perché la posizione e la lunghezza sono considerati segnali visivi più efficaci rispetto all’area e agli angoli?
- Spiega perché i grafici tridimensionali (3D) sono spesso inutili o fuorvianti.
-
Scelta della visualizzazione
- Quale tipo di grafico useresti per mostrare la distribuzione della variabile SWLS? Giustifica la tua risposta.
- Se volessi confrontare la distribuzione della SWLS tra due gruppi (ad esempio, in base al genere), quale grafico useresti? Perché?
-
Errori comuni nella visualizzazione
- Perché i dynamite plots (grafici a barre con errore standard) sono considerati una cattiva pratica?
- Spiega perché è importante iniziare l’asse Y da zero in un barplot.
- Perché è preferibile ordinare le categorie in base ai valori invece che alfabeticamente?
Esercizi Pratici in R
1. Caricamento e ispezione dei dati
Carica il dataset raccolto dagli studenti (dati_SWLS_LSNS.csv
) e stampa un’anteprima dei dati.
Rispondi alle seguenti domande:
- Quante osservazioni ci sono nel dataset?
- Ci sono valori mancanti? Se sì, quanti?
2. Distribuzione delle variabili
Crea le seguenti visualizzazioni per analizzare la distribuzione di SWLS e LSNS-6:
- Istogramma con sovrapposta la curva di densità.
- Funzione di distribuzione cumulativa empirica (eCDF).
- Box plot per la variabile SWLS.
3. Confronto tra gruppi
- Crea un box plot della SWLS per genere.
- Crea un violin plot della LSNS-6 in base al tipo di scuola superiore.
4. Relazioni tra variabili
- Crea un grafico di dispersione (scatter plot) per verificare se c’è una relazione tra il punteggio SWLS e il numero di amici.
- Aggiungi una linea di regressione al grafico per facilitare l’interpretazione.
ggplot(df, aes(x = numero_amici, y = SWLS)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE) +
labs(title = "Relazione tra SWLS e numero di amici",
x = "Numero di amici",
y = "Satisfaction With Life Scale (SWLS)")
Domande:
- Quale relazione osservi tra il numero di amici e la SWLS?
- Il numero di amici è un buon predittore della soddisfazione per la vita?
5. Esplorazione della rete sociale
- Crea un barplot per mostrare la distribuzione delle risposte medie ai sei item della LSNS-6.
- Esplora la relazione tra la frequenza delle uscite settimanali e il punteggio totale LSNS-6 utilizzando un box plot.
Consegna
Salva i grafici creati e rispondi alle domande in forma scritta. Carica il file su Moodle.
1. Risposte alle domande teoriche
Principi della visualizzazione
- I segnali visivi principali sono posizione, lunghezza, angoli, area, luminosità e colore.
- La posizione e lunghezza sono i segnali più efficaci perché l’occhio umano è molto preciso nel confrontare distanze e altezze, mentre è meno efficace nel confrontare angoli e aree.
- I grafici tridimensionali (3D) spesso aggiungono confusione senza migliorare la leggibilità.
Scelta della visualizzazione
- Per mostrare la distribuzione della SWLS, è preferibile usare istogrammi e box plot perché evidenziano la forma della distribuzione e la presenza di outlier.
- Per confrontare la SWLS tra generi, un box plot o violin plot è l’opzione migliore, perché mostra la distribuzione completa.
Errori comuni
- I dynamite plots nascondono la distribuzione dei dati e non mostrano la variabilità interna ai gruppi.
- In un barplot, l’asse Y deve iniziare da zero per evitare distorsioni visive.
- Le categorie nei barplot devono essere ordinate per valore per facilitare il confronto.
2. Soluzioni pratiche in R
Caricamento dei dati
df <- read.csv("dati_SWLS_LSNS.csv")
# Esamina il dataset
dim(df) # Numero di righe e colonne
sum(is.na(df)) # Conteggio valori mancanti
Distribuzione delle variabili
ggplot(df, aes(x = SWLS)) +
geom_histogram(
aes(y = after_stat(density)), bins = 10, fill = "blue", alpha = 0.5
) +
geom_density(color = "red", size = 1.2)
ggplot(df, aes(x = "", y = SWLS)) +
geom_boxplot() +
coord_flip()
Confronto tra gruppi
ggplot(df, aes(x = genere, y = SWLS, fill = genere)) +
geom_boxplot()
ggplot(df, aes(x = scuola, y = LSNS6, fill = scuola)) +
geom_violin()
Relazioni tra variabili
ggplot(df, aes(x = numero_amici, y = SWLS)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE)
ggplot(df, aes(x = uscite_settimanali, y = LSNS6)) +
geom_boxplot()
Conclusioni
(Ad esempio) Le visualizzazioni mostrano che:
- SWLS e LSNS-6 variano in base al genere e al tipo di scuola.
- Il numero di amici ha un impatto positivo sulla SWLS, ma la relazione è moderata.
- Il numero di uscite settimanali è correlato positivamente con la rete sociale (LSNS-6).