Comprender la banda de confianza de una regresión polinómica

14

Estoy tratando de entender el resultado que veo en mi gráfico a continuación. Por lo general, tiendo a usar Excel y obtener una línea de regresión lineal, pero en el siguiente caso estoy usando R y obtengo una regresión polinómica con el comando:

ggplot(visual1, aes(ISSUE_DATE,COUNTED)) + geom_point() + geom_smooth()

Entonces mis preguntas se reducen a esto:

  1. ¿Cuál es el área gris (flecha # 1) alrededor de la línea de regresión azul? ¿Es esta la desviación estándar de la regresión polinómica?

  2. ¿Puedo decir que lo que está fuera del área gris (flecha # 2) es un 'valor atípico' y que lo que esté dentro del área gris (flecha # 3) está dentro de la desviación estándar?

ingrese la descripción de la imagen aquí

adhg
fuente

Respuestas:

14

La banda gris es una banda de confianza para la línea de regresión. No estoy lo suficientemente familiarizado con ggplot2 para saber con certeza si es una banda de confianza 1 SE o una banda de confianza del 95%, pero creo que es la primera ( Editar: evidentemente, es un IC del 95% ). Una banda de confianza proporciona una representación de la incertidumbre sobre su línea de regresión. En cierto sentido, se podría pensar que la verdadera línea de regresión es tan alta como la parte superior de esa banda, tan baja como la parte inferior o que se mueve de manera diferente dentro de la banda. (Tenga en cuenta que esta explicación pretende ser intuitiva, y no es técnicamente correcta, pero la explicación correcta es difícil de seguir para la mayoría de las personas).

Debe usar la banda de confianza para ayudarlo a comprender / pensar sobre la línea de regresión. No debe usarlo para pensar en los puntos de datos sin procesar. Recuerde que la línea de regresión representa la media de en cada punto de X (si necesita comprender esto más completamente, puede ayudarlo a leer mi respuesta aquí: ¿Cuál es la intuición detrás de las distribuciones gaussianas condicionales? ). Por otro lado, ciertamente no espera que todos los puntos de datos observados sean iguales a la media condicional. En otras palabras, no debe usar la banda de confianza para evaluar si un punto de datos es un valor atípico. YX


( Editar: esta nota es periférica a la pregunta principal, pero busca aclarar un punto para el OP ) .

Una regresión polinómica no es una regresión no lineal, aunque lo que obtienes no parece una línea recta. El término 'lineal' tiene un significado muy específico en un contexto matemático, específicamente, que los parámetros que está estimando, las betas, son todos coeficientes. Una regresión polinómica solo significa que sus covariables son , X 2 , X 3 , etc., es decir, tienen una relación no lineal entre sí, pero sus betas siguen siendo coeficientes, por lo que sigue siendo un modelo lineal. Si sus betas fueran, por ejemplo, exponentes, entonces tendría un modelo no lineal. XX2X3

En resumen, si una línea parece recta o no tiene nada que ver con si un modelo es lineal o no. Cuando ajusta un modelo polinomial (digamos con y X 2 ), el modelo no 'sabe' que, por ejemplo, X 2 es en realidad solo el cuadrado de X 1 . "Piensa" que estas son solo dos variables (aunque puede reconocer que existe cierta multicolinealidad). Así, en verdad conviene una regresión (recto / plana) plano en un espacio de tres dimensiones en lugar de una regresión (curva) de línea en un espacio de dos dimensiones. No es útil para nosotros pensar y, de hecho, es extremadamente difícil de ver desde X 2XX2X2X1X2es una función perfecta de . Como resultado, no nos molestamos en pensarlo de esta manera y nuestras gráficas son realmente proyecciones bidimensionales en el plano ( X , Y ) . No obstante, en el espacio apropiado, la línea es en realidad "recta" en algún sentido. X(X, Y)

Desde una perspectiva matemática, un modelo es lineal si los parámetros que intenta estimar son coeficientes. Para aclarar más, considere la comparación entre el modelo de regresión lineal estándar (MCO) y un modelo de regresión logística simple presentado en dos formas diferentes:
ln ( π ( Y )

Y=β0 0+β1X+ε
En(π(Y)1-π(Y))=β0 0+β1X
π(Y)=Exp(β0 0+β1X)1+Exp(β0 0+β1X)
βββDiferencia entre modelos logit y probit .)
gung - Restablece a Monica
fuente
+1 Los ejemplos en la documentación me sugieren que la confianza es bastante alta, quizás el 95%.
whuber
@gung gracias por la respuesta detallada (¡también tienes un cheque!). Leí tu primera declaración y estoy un poco confundido. ¿Puedes por favor dar más detalles al respecto? Si la línea resultante no es recta (y = mx + b), entonces, ¿qué la hace lineal? Gracias de nuevo por la respuesta.
adhg
Los documentos en docs.ggplot2.org/0.9.3.1/stat_smooth.html afirman que es una banda de confianza del 95% para la curva de regresión.
whuber
2
Creo que el Loess más suave predeterminado está en uso aquí, en lugar de la regresión polinómica?
xan
@adhg, pensé que había cubierto lo lineal versus lo no lineal en otro lugar, pero no pude encontrarlo. Así que agregué material extra aquí. HTH
gung - Restablece a Monica
11

Para agregar a las respuestas ya existentes, la banda representa un intervalo de confianza de la media, pero a partir de su pregunta claramente está buscando un intervalo de predicción . Los intervalos de predicción son un rango que, si dibujara un nuevo punto, ese punto estaría teóricamente contenido en el rango X% del tiempo (donde puede establecer el nivel de X).

library(ggplot2)
set.seed(5)
x <- rnorm(100)
y <- 0.5*x + rt(100,1)
MyD <- data.frame(cbind(x,y))

Podemos generar el mismo tipo de gráfico que ha mostrado en su pregunta inicial con un intervalo de confianza alrededor de la media de la línea de regresión de loess suavizada (el valor predeterminado es un intervalo de confianza del 95%).

ConfiMean <- ggplot(data = MyD, aes(x,y)) + geom_point() + geom_smooth()
ConfiMean

ingrese la descripción de la imagen aquí

Para un ejemplo rápido y sucio de intervalos de predicción, aquí genero un intervalo de predicción usando regresión lineal con splines de suavizado (por lo que no es necesariamente una línea recta). Con los datos de muestra funciona bastante bien, para los 100 puntos solo 4 están fuera del rango (y especifiqué un intervalo del 90% en la función de predicción).

#Now getting prediction intervals from lm using smoothing splines
library(splines)
MyMod <- lm(y ~ ns(x,4), MyD)
MyPreds <- data.frame(predict(MyMod, interval="predict", level = 0.90))
PredInt <- ggplot(data = MyD, aes(x,y)) + geom_point() + 
           geom_ribbon(data=MyPreds, aes(x=fit,ymin=lwr, ymax=upr), alpha=0.5)
PredInt

ingrese la descripción de la imagen aquí

Ahora algunas notas más. Estoy de acuerdo con Ladislav en que debe considerar los métodos de pronóstico de series de tiempo, ya que tiene una serie regular desde algún momento en 2007 y está claro en su trama si observa con detenimiento que hay estacionalidad (conectar los puntos lo haría mucho más claro). Para esto, le sugiero que consulte la función Forecast.stl en el paquete de pronóstico donde puede elegir una ventana estacional y proporciona una descomposición robusta de la estacionalidad y tendencia usando Loess. Menciono métodos robustos porque sus datos tienen algunos picos notables.

En términos más generales para los datos de series no temporales, consideraría otros métodos robustos si tiene datos con valores atípicos ocasionales. No sé cómo generar intervalos de predicción usando Loess directamente, pero puede considerar la regresión cuantil (dependiendo de cuán extremos sean los intervalos de predicción). De lo contrario, si solo desea ajustar para ser potencialmente no lineal, puede considerar splines para permitir que la función varíe sobre x.

Andy W
fuente
4

Bueno, la línea azul es una regresión local suave . Puede controlar la ondulación de la línea mediante el spanparámetro (de 0 a 1). Pero su ejemplo es una "serie temporal", así que trate de buscar algunos métodos de análisis más adecuados que solo se ajusten a una curva suave (que debería servir solo para revelar una posible tendencia).

De acuerdo con la documentación de ggplot2(y el libro en el comentario a continuación): stat_smooth es un intervalo de confianza de la suavidad que se muestra en gris. Si desea desactivar el intervalo de confianza, use se = FALSE.

Ladislav Naďo
fuente
1
(1) No veo en su referencia dónde afirma que el área gris es el intervalo de confianza puntual. Parece bastante claro a partir de los ejemplos que el área gris es en cambio un intervalo de confianza para la curva . (2) Nadie declararía razonablemente la gran proporción de puntos más allá del área gris como "valores atípicos"; hay demasiados de ellos.
whuber
(1) mi error, aquí agrego un libro que se refiere al "intervalo de confianza puntual": Wickham H (2009) ggplot2 Gráficos elegantes para análisis de datos. Medios 212. (página 14). (2) Estoy de acuerdo.
Ladislav Naďo
¿Alguna de sus referencias indica cuál es el nivel de confianza predeterminado?
whuber
No, no puedo encontrar ninguna referencia sobre la configuración predeterminada.
Ladislav Naďo
Encontré el valor predeterminado en la primera página de su referencia: "(0,95 por defecto)". Eso significa que, o bien este suave tiene errores graves o bien su interpretación de la referencia es falso: porque una gran proporción de los puntos de datos, por lo general se encuentran más allá de la zona gris y suponiendo que el código es correcto, el área gris tiene que ser una región de confianza para la predicción (curva ajustada) y no una región de confianza para los puntos.
whuber