Come si Aggiunge una Linea di Regressione ad un ggplot?

La regressione lineare è forse il modello statistico più diffuso. È semplice e restituisce risultati facilmente interpretabili. Dal momento che la regressione lineare essenzialmente interpola una retta per un insieme di punti, può anche essere rappresentata facilmente. Questo post si concentra su come farlo in R usando il pacchetto {ggplot2}.

Cominciamo creando uno scatter plot di peso (wt) su potenza motore (hp) di automobili nel famigerato dataset mtcars.

library(ggplot2)
data(mtcars)
p <- ggplot(mtcars, aes(wt, hp)) +
  geom_point()
p

Appare evidente che ci sia una relazione positiva: più pesante è una macchina, maggiore tenderà ad essere la potenza del motore.

A questo punto, aggiungiamo uno smoother per rendere ancora più evidente la relazione.

p + geom_smooth()

Di defaut, geom_smooth() aggiunge una curva LOESS ai dati. Tuttavia non è quello che vogliamo. Per far sì che geom_smooth() disegni una retta di regressione lineare dobbiamo impostare il parametro method su "lm", che è l’abbreviazione di “linear model” (modello lineare).

p + geom_smooth(method = "lm")

La parte in grigio chiaro attorno alla linea indica l’intervallo di confidenza al 95%. Puoi cambiare il livello dell’intervallo di confidenza modificando il parametro level. Un valore di 0.8 corrisponde a un intervallo di confidenza all’80%.

p + geom_smooth(method = "lm", level = 0.8)

Se non vuoi inserire l’intervallo di confidenza nel grafico, imposta il parametro se come FALSE.

p + geom_smooth(method = "lm", se = FALSE)

Qualche volta una retta potrebbe non essere la soluzione più adatta per i dati, mentre potrebbe esserlo una polinomiale. Come possiamo aggiungere una linea di regressione polinomiale ad un grafico? Per farlo dobbiamo comunque usare geom_smooth() con method = "lm" ma in aggiunta dobbiamo specificare il parametro formula. Di default, formula è impostato su y ~ x (si legge y in funzione di x). Per tracciare una polinomiale di grado n bisogna cambiare la formula in y ~ poly(x, n). Ecco un esempio che utilizza una curva di regressione polinomiale di secondo grado (quadratica).

ggplot(mtcars, aes(qsec, hp)) +
  geom_point() +
  geom_smooth(method = "lm", formula = y ~ poly(x, 2))

Ora è il tuo turno! Apri una nuova sessione in R, carica dei dati e crea un ggplot con una retta di regressione lineare. Buona programmazione!

Questo post è stato tradotto dall’inglese da Stefano Anzani.