Cómo crear un intervalo de predicción en R

Un modelo de regresión lineal puede ser útil para dos cosas:

(1) Cuantificar la relación entre una o más variables predictoras y una variable de respuesta.

(2) Usar el modelo para predecir valores futuros.

Con respecto a (2) , cuando usamos un modelo de regresión para predecir valores futuros, a menudo nos interesa predecir tanto un valor exacto como un intervalo que contiene un rango de valores probables. Este intervalo se conoce como intervalo de predicción .

Por ejemplo, supongamos que ajustamos un modelo de regresión lineal simple utilizando las horas estudiadas como variable predictiva y la puntuación del examen como variable de respuesta. Usando este modelo, podríamos predecir que un estudiante que estudia durante 6 horas recibirá un puntaje de examen de 91 .

Sin embargo, debido a que existe incertidumbre en torno a esta predicción, podríamos crear un intervalo de predicción que diga que hay un 95% de probabilidad de que un estudiante que estudia durante 6 horas reciba una puntuación de examen entre 85 y 97 . Este rango de valores se conoce como intervalo de predicción del 95% y, a menudo, es más útil para nosotros que simplemente conocer el valor predicho exacto.

Cómo crear un intervalo de predicción en R

Para ilustrar cómo crear un intervalo de predicción en R, usaremos el conjunto de datos integrado de mtcars , que contiene información sobre las características de varios autos diferentes:

#ver las primeras seis filas de mtcars
cabeza (mtcars)

# mpg cyl disp hp drat wt qsec vs am gear carb
# Mazda RX4 21,0 6160110 3,90 2,620 16,46 0 1 4 4
# Mazda RX4 Wag 21.0 6160110 3.90 2.875 17.02 0 1 4 4
# Datsun 710 22,8 4108 93 3,85 2,320 18,61 1 1 4 1
#Hornet 4 Impulso 21,4 6 258110 3,08 3,215 19,44 1 0 3 1
#Hornet Sportabout 18,7 8360175 3,15 3,440 17,02 0 0 3 2
#Valiente 18,1 6225105 2,76 3,460 20,22 1 0 3 1

Primero, ajustaremos un modelo de regresión lineal simple usando disp como variable predictora y mpg como variable de respuesta.

#fit modelo de regresión lineal simple
modelo <- lm (mpg ~ disp, datos = mtcars)

#ver resumen del modelo ajustado
resumen (modelo)

#Llamada:
#lm (fórmula = mpg ~ disp, datos = mtcars)
#
#Derechos residuales de autor:
# Mín. 1T Mediana 3T Máx. 
# -4.8922 -2.2022 -0.9631 1.6272 7.2305 
#
#Coeficientes:
# Estimar Std. Valor t de error Pr (> | t |)    
# (Intercepción) 29.599855 1.229720 24.070 <2e-16 ***
#disp -0.041215 0.004712 -8.747 9.38e-10 ***
# ---
#Signif. códigos: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0,1 pulg. 1
#
# Error estándar residual: 3,251 en 30 grados de libertad
# R-cuadrado múltiple: 0,7183, R-cuadrado ajustado: 0,709 
# Estadístico F: 76,51 en 1 y 30 DF, valor p: 9,38e-10

Luego, usaremos el modelo de regresión ajustado para predecir el valor de mpg basado en tres nuevos valores para disp .

#cree un marco de datos con tres nuevos valores para disp
 new_disp <- data.frame (disp = c (150, 200, 250))
 
#use el modelo ajustado para predecir el valor de mpg basado en los tres nuevos valores 
#para disp
 predict ( modelo, newdata = new_disp)

# 1 2 3 
# 23.41759 21.35683 19.29607 

La forma de interpretar estos valores es la siguiente:

  • Para un auto nuevo con un disp de 150, predecimos que tendrá un mpg de 23.41759 .
  • Para un auto nuevo con un disp de 200, predecimos que tendrá un mpg de 21.35683 .
  • Para un auto nuevo con un disp de 250, predecimos que tendrá un mpg de 19.29607 .

A continuación, usaremos el modelo de regresión ajustado para hacer intervalos de predicción alrededor de estos valores predichos:

#crear intervalos de predicción alrededor de los valores predichos 
predicen (modelo, newdata = new_disp, interval = "predecir" )

# fit lwr upr
# 1 23.41759 16.62968 30.20549
# 2 21.35683 14.60704 28.10662
# 3 19.29607 12.55021 26.04194

La forma de interpretar estos valores es la siguiente:

  • El intervalo de predicción del 95% de las millas por galón para un automóvil con un disp de 150 está entre 16.62968 y 30.20549 .
  • El intervalo de predicción del 95% de las millas por galón para un automóvil con un disp de 200 está entre 14.60704 y 28.10662 .
  • El intervalo de predicción del 95% de las millas por galón para un automóvil con un disp de 250 está entre 12.55021 y 26.04194 .

De forma predeterminada, R usa un intervalo de predicción del 95%. Sin embargo, podemos cambiar esto a lo que queramos usando el comando de nivel . Por ejemplo, el siguiente código ilustra cómo crear intervalos de predicción del 99%:

#crear intervalos de predicción del 99% alrededor de los valores predichos
 predicen (modelo, newdata = new_disp, interval = "predecir", nivel = 0,99 )

# fit lwr upr
# 1 23.41759 14.27742 32.55775
# 2 21.35683 12.26799 30.44567
# 3 19.29607 10.21252 28.37963

Tenga en cuenta que los intervalos de predicción del 99% son más amplios que los intervalos de predicción del 95%. Esto tiene sentido porque cuanto más amplio sea el intervalo, mayor será la probabilidad de que contenga el valor predicho.

Cómo visualizar un intervalo de predicción en R

El siguiente código ilustra cómo crear un gráfico con las siguientes características:

  • Un diagrama de dispersión de los puntos de datos para disp y mpg
  • Una línea azul para la línea de regresión ajustada
  • Bandas grises de confianza
  • Bandas de predicción rojas
#define dataset
datos <- mtcars [, c ("mpg", "disp")]

#create modelo de modelo de regresión lineal simple
 <- lm (mpg ~ disp, data = mtcars)

#utilizar modelo para crear intervalos de
 predicción predicciones <- predecir (modelo, intervalo = "predecir")

#create un conjunto de datos que contenga datos originales junto con intervalos de predicción
 all_data <- cbind (datos, predicciones)

#load ggplot2 biblioteca
 biblioteca (ggplot2)

#create plot
 ggplot (all_data, aes (x = disp, y = mpg)) + #define las variables de los ejes 
  xey geom_point () + #add scatterplot points 
  stat_smooth (método = lm) + #bandas de 
  confianza geom_line (aes (y = lwr), col = "coral2", linetype = "dashed") + #lwr pred interval 
  geom_line (aes (y = upr), col = "coral2", linetype = "dashed") #upr pred interval

Intervalo de predicción en R

Cuándo usar un intervalo de confianza frente a un intervalo de predicción

Un intervalo de predicción captura la incertidumbre en torno a un solo valor. Un intervalo de confianza captura la incertidumbre en torno a los valores medios predichos. Por tanto, un intervalo de predicción siempre será más amplio que un intervalo de confianza para el mismo valor.

Debe usar un intervalo de predicción cuando esté interesado en predicciones individuales específicas porque un intervalo de confianza producirá un rango de valores demasiado estrecho, lo que aumentará la probabilidad de que el intervalo no contenga el valor verdadero.

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

Este tutorial explica cómo ajustar una distribución gamma a un conjunto de datos en R. Ajustar una distribución gamma en…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!