Come tracciare un intervallo di confidenza in r


Un intervallo di confidenza è un intervallo di valori che probabilmente contiene un parametro della popolazione con un certo livello di confidenza.

Questo tutorial spiega come tracciare un intervallo di confidenza per un set di dati in R.

Esempio: tracciare un intervallo di confidenza in R

Supponiamo di avere il seguente set di dati in R con 100 righe e 2 colonne:

 #make this example reproducible
set.seed(0)

#create dataset
x <- rnorm(100)
y <- x*2 + rnorm(100)
df <- data.frame(x = x, y = y)

#view first six rows of dataset
head(df)

           xy
1 1.2629543 3.3077678
2 -0.3262334 -1.4292433
3 1.3297993 2.0436086
4 1.2724293 2.5914389
5 0.4146414 -0.3011029
6 -1.5399500 -2.5031813

Per creare un grafico della relazione tra x e y, possiamo prima adattare un modello di regressione lineare:

 model <- lm(y ~ x, data = df)

Successivamente, possiamo creare un grafico della retta di regressione lineare stimata utilizzando la funzione abline() e la funzione lines() per creare le bande di confidenza effettive:

 #get predicted y values using regression equation
newx <- seq(min(df$x), max(df$x), length.out=100)
preds <- predict(model, newdata = data.frame(x=newx), interval = 'confidence')

#create plot of x vs. y, but don't display individual points (type='n') 
plot(y ~ x, data = df, type = 'n')

#add fitted regression line
abline(model)

#add dashed lines for confidence bands
lines(newx, preds[,3], lty = 'dashed', col = 'blue')
lines(newx, preds[,2], lty = 'dashed', col = 'blue') 

Tracciare un intervallo di confidenza in R

La linea nera mostra la retta di regressione lineare adattata mentre le due linee blu tratteggiate mostrano gli intervalli di confidenza.

Facoltativamente, è anche possibile riempire l’area tra le linee dell’intervallo di confidenza e la linea di regressione lineare stimata utilizzando il seguente codice:

 #create plot of x vs. y
plot(y ~ x, data = df, type = 'n')

#fill in area between regression line and confidence interval
polygon(c(rev(newx), newx), c(rev(preds[,3]), preds[,2]), col = 'grey', border = NA)

#add fitted regression line
abline(model)

#add dashed lines for confidence bands
lines(newx, preds[,3], lty = 'dashed', col = 'blue')
lines(newx, preds[,2], lty = 'dashed', col = 'blue') 

Grafico degli intervalli di confidenza in R

Ecco il codice completo dall’inizio alla fine:

 #make this example reproducible
set.seed(0)

#create dataset
x <- rnorm(100)
y <- x*2 + rnorm(100)
df <- data.frame(x = x, y = y)

#fit linear regression model
model <- lm(y ~ x, data = df)

#get predicted y values using regression equation
newx <- seq(min(df$x), max(df$x), length.out=100)
preds <- predict(model, newdata = data.frame(x=newx), interval = 'confidence')

#create plot of x vs. y
plot(y ~ x, data = df, type = 'n')

#fill in area between regression line and confidence interval
polygon(c(rev(newx), newx), c(rev(preds[,3]), preds[,2]), col = 'grey', border = NA)

#add fitted regression line
abline(model)

#add dashed lines for confidence bands
lines(newx, preds[,3], lty = 'dashed', col = 'blue')
lines(newx, preds[,2], lty = 'dashed', col = 'blue')

Risorse addizionali

Cosa sono gli intervalli di confidenza?
Come utilizzare la funzione abline() in R per aggiungere linee rette ai grafici

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *