¿Cómo interpreto esta gráfica ajustada vs residual?


17

ingrese la descripción de la imagen aquí

Realmente no entiendo la heterocedasticidad. Me gustaría saber si mi modelo es apropiado o no de acuerdo con este argumento.


Por favor, prepare una gráfica de los residuos versus los valores observados. Si la variabilidad de los errores se puede vincular con el valor observado, esto podría sugerir un problema de heterogeneidad
IrishStat

1
@IrishState residuales vs observados mostrarán correlación. Son más difíciles de interpretar debido a esto. Residuales vs ajustados muestra la mejor aproximación que tenemos a cómo se relacionan los errores con la media de la población, y es algo útil para examinar la consideración más habitual en la regresión de si la varianza está relacionada con la media.
Glen_b -Reinstate Monica

Respuestas:


18

Como comentó @IrishStat, debe verificar sus valores observados con sus errores para ver si hay problemas con la variabilidad. Volveré a esto hacia el final.

Solo para tener una idea de lo que entendemos por heterocedasticidad: cuando ajusta un modelo lineal en una variable , esencialmente está diciendo que asume que su o en los términos simples de que se espera que su equivalga a más algunos errores que tienen varianza . Este es prácticamente su modelo lineal , donde se encuentran los errores . OK, genial hasta ahora, veamos eso en el código:y N ( X β , σ 2 ) y X β σ 2 y = X β + ϵyynorte(Xβ,σ2)yXβσ2y=Xβ+ϵϵnorte(0 0,σ2)

set.seed(1);            #set the seed for reproducability
N = 100;                #Sample size
x = runif(N)            #Independant variable
beta = 4;               #Regression coefficient
epsilon = rnorm(N);     #Error with variance 1 and mean 0
y = x * beta + epsilon  #Your generative model
lin_mod <- lm(y ~x)  #Your linear model

así que, cómo se comporta mi modelo:

x11(); par(mfrow=c(1,3));   #Make a new 1-by-3 plot
plot(residuals(lin_mod)); 
title("Simple Residual Plot - OK model")
acf(residuals(lin_mod), main = ""); 
title("Residual Autocorrelation Plot - OK model");
plot(fitted(lin_mod), residuals(lin_mod)); 
title("Residual vs Fit. value - OK model");

lo que debería darle algo como esto: lo ingrese la descripción de la imagen aquí que significa que sus residuos no parecen tener una tendencia obvia basada en su índice arbitrario (1er gráfico - realmente menos informativo), parecen no tener una correlación real entre ellos (2º gráfico - bastante importante y probablemente más importante que la homocedasticidad) y que los valores ajustados no tienen una tendencia obvia de falla, es decir. sus valores ajustados frente a sus residuos parecen bastante aleatorios. En base a esto, diríamos que no tenemos problemas de heterocedasticidad ya que nuestros residuos parecen tener la misma variación en todas partes.

De acuerdo, sin embargo, quieres heterocedasticidad. Dados los mismos supuestos de linealidad y aditividad, definamos otro modelo generativo con problemas de heteroscedasticidad "obvios". Es decir, después de algunos valores, nuestra observación será mucho más ruidosa.

epsilon_HS = epsilon;               
epsilon_HS[ x>.55  ] = epsilon_HS[x>.55 ] * 9       #Heteroskedastic errors

y2 = x * beta + epsilon_HS      #Your generative model
lin_mod2 <- lm(y2 ~x)            #Your unfortunate LM

donde las gráficas de diagnóstico simples del modelo:

 par(mfrow=c(1,3));   #Make a new 1-by-3 plot
 plot(residuals(lin_mod2)); 
 title("Simple Residual Plot - Fishy model")
 acf(residuals(lin_mod2), main = ""); 
 title("Residual Autocorrelation Plot - Fishy model");
 plot(fitted(lin_mod2), residuals(lin_mod2)); 
 title("Residual vs Fit. value - Fishy model");

debería dar algo como: ingrese la descripción de la imagen aquí Aquí la primera trama parece un poco "extraña"; parece que tenemos algunos residuos que se agrupan en pequeñas magnitudes, pero eso no siempre es un problema ... El segundo gráfico está bien, significa que no tenemos correlación entre sus residuos en diferentes rezagos, por lo que podríamos respirar por un momento. Y la tercera trama derrama los granos: está claro que a medida que alcanzamos valores más altos, nuestros residuos explotan. Definitivamente tenemos heteroscedasticidad en los residuos de este modelo y necesitamos hacer algo al respecto (p. Ej. , IRLS , regresión de Theil-Sen , etc.)

Aquí el problema era realmente obvio, pero en otros casos podríamos haber pasado por alto; Para reducir nuestras posibilidades de perderlo, otra trama perspicaz fue la mencionada por IrishStat: Residuals versus valores observados, o para nuestro problema de juguete en cuestión:

 par(mfrow=c(1,2))
 plot(y, residuals(lin_mod) ); 
 title( "Residual vs Obs. value - OK model")
 plot(y2, residuals(lin_mod2) ); 
 title( "Residual vs Obs. value - Fishy model")

que debería dar algo como:

ingrese la descripción de la imagen aquíR2R20.59890,03919 . Por lo tanto, tenemos razones para creer que la especificación errónea del modelo podría ser un problema. (Gracias a Scortchi por señalar la declaración engañosa en mi respuesta original).

Para ser justos con su situación, su gráfico de residuos versus valores ajustados parece relativamente correcto. Probablemente sería útil verificar sus residuos frente a sus valores observados para asegurarse de que está en el lado seguro. (No mencioné las parcelas QQ ni nada de eso para no dejar más perplejas las cosas, pero es posible que también desee verificarlas brevemente). Espero que esto ayude a comprender la heterocedasticidad y lo que debe tener en cuenta.


44
No debe sorprenderse ni preocuparse por ver una relación entre los residuos y los valores observados . Intente calcular el resultado teórico para un modelo especificado correctamente.
Scortchi - Restablece a Monica


+1 a sus dos comentarios. Gracias por señalar ese problema; tu comentario es / fue perfecto Edité ese pasaje para que se lea correctamente ahora.
usεr11852 dice Reinstate Monic

1
De nada. Todavía no estoy seguro de qué valor cree que agrega la gráfica de residuos versus los valores de respuesta observados; La existencia y naturaleza de la heterocedasticidad es menos evidente que en la gráfica de los residuos frente a los valores de respuesta ajustados.
Scortchi - Restablece a Monica

Estoy (mayormente) de acuerdo. Como viste, tampoco fue mi primer diagrama de diagnóstico. Sin embargo, fue sugerido por IrishStat y pensé que era necesario para una respuesta completa al OP.
usεr11852 dice Reinstate Monic el

9

Su pregunta parece ser sobre la heterocedasticidad (porque lo mencionó por su nombre y agregó la etiqueta), pero su pregunta explícita (por ejemplo, en el título y) al finalizar su publicación es más general, "si mi modelo es apropiado o no de acuerdo con esto trama". Hay más para determinar si un modelo es inapropiado que evaluar la heterocedasticidad.

Raspé sus datos usando este sitio web (ht @Alexis). Tenga en cuenta que los datos se ordenan en orden ascendente de fitted. Basado en la regresión y la gráfica superior izquierda, parece ser lo suficientemente fiel:

mod = lm(residuals~fitted)
summary(mod)
# ...
# Residuals:
#   Min       1Q   Median       3Q      Max 
# -0.78374 -0.13559  0.00928  0.19525  0.48107 
# 
# Coefficients:
#   Estimate Std. Error t value Pr(>|t|)
# (Intercept)  0.06406    0.35123   0.182    0.856
# fitted      -0.01178    0.05675  -0.208    0.836
# 
# Residual standard error: 0.2349 on 53 degrees of freedom
# Multiple R-squared:  0.0008118,  Adjusted R-squared:  -0.01804 
# F-statistic: 0.04306 on 1 and 53 DF,  p-value: 0.8364

ingrese la descripción de la imagen aquí

No veo ninguna evidencia de heterocedasticidad aquí. Desde la esquina superior derecha (qq-plot), tampoco parece haber ningún problema con el supuesto de normalidad.

Por otro lado, la curva "S" en el ajuste de lowess rojo (en la gráfica superior izquierda), y las gráficas acf y pacf (en la parte inferior) parecen problemáticas. En el extremo izquierdo, la mayoría de los residuos están por encima de la línea gris 0. A medida que se mueve hacia la derecha, la mayor parte de los residuos caen por debajo de 0, luego arriba y luego nuevamente debajo. El resultado de esto es que si te dijera que estaba mirando un residuo en particular y que tenía un valor negativo (pero no te dije cuál estaba mirando), podrías adivinar con buena precisión que los residuos cercanos También fueron valorados negativamente. En otras palabras, los residuos no son independientes. saber algo sobre uno le brinda información sobre los demás.

Además de las parcelas, esto se puede probar. Un enfoque simple es utilizar una prueba de ejecución :

library(randtests)
runs.test(residuals)
#  Runs Test
# 
# data:  residuals
# statistic = -3.2972, runs = 16, n1 = 27, n2 = 27, n = 54, p-value = 0.0009764
# alternative hypothesis: nonrandomness

X2X3

Para responder a sus preguntas explícitas: Su gráfica muestra autocorrelaciones en serie / no independencia de sus residuos. Significa que su modelo no es apropiado en su forma actual.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.