Come creare un grafico qq in ggplot2 (con esempio)
Un grafico QQ, abbreviazione di “quantile-quantile”, viene utilizzato per valutare se un set di dati proviene potenzialmente da una distribuzione teorica.
Nella maggior parte dei casi, questo tipo di grafico viene utilizzato per determinare se un set di dati segue o meno una distribuzione normale.
Se i dati sono distribuiti normalmente, i punti su un grafico QQ giacciono su una linea diagonale retta.
Al contrario, se i punti deviano significativamente dalla linea diagonale retta, è meno probabile che i dati siano distribuiti normalmente.
Per creare un grafico QQ in ggplot2, puoi utilizzare le funzioni stat_qq() e stat_qq_line() come segue:
library (ggplot2)
ggplot(df, aes(sample=y)) +
stat_qq() +
stat_qq_line()
Gli esempi seguenti mostrano come utilizzare questa sintassi per creare un grafico QQ in due scenari diversi.
Esempio 1: grafico QQ per dati normali
Il codice seguente mostra come generare un set di dati distribuito normalmente con 200 osservazioni e creare un grafico QQ per il set di dati in R:
library (ggplot2) #make this example reproducible set. seeds (1) #create some fake data that follows a normal distribution df <- data. frame (y=rnorm(200)) #create QQ plot ggplot(df, aes(sample=y)) + stat_qq() + stat_qq_line()
Possiamo vedere che i punti giacciono principalmente lungo la linea diagonale retta con alcune deviazioni minori lungo ciascuna delle code.
Sulla base di questo grafico, presumiamo che questo set di dati sia distribuito normalmente.
Nota che possiamo anche usare gli argomenti colore e dimensione per cambiare il colore e la dimensione dei punti nel grafico, se lo desideriamo:
library (ggplot2) #make this example reproducible set. seeds (1) #create some fake data that follows a normal distribution df <- data. frame (y=rnorm(200)) #create QQ plot ggplot(df, aes(sample=y)) + stat_qq(size= 2.5 , color=' red ') + stat_qq_line()
Esempio 2: grafico QQ per dati non normali
Il codice seguente mostra come creare un grafico QQ per un set di dati che segue una distribuzione esponenziale con 200 osservazioni:
#make this example reproducible set. seeds (1) #create some fake data that follows an exponential distribution df <- data. frame (y=rexp( 200 , rate= 3 )) #create QQ plot ggplot(df, aes(sample=y)) + stat_qq() + stat_qq_line()
Vediamo che i punti si discostano notevolmente dalla linea diagonale. Ciò indica chiaramente che il set di dati non è distribuito normalmente.
Ciò dovrebbe avere senso dato che abbiamo specificato che i dati dovrebbero seguire una distribuzione esponenziale.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in ggplot2:
Come tracciare più linee in ggplot2
Come tracciare la media e la deviazione standard in ggplot2
Come cambiare i colori delle linee in ggplot2