La estimación de un modelo de regresión lineal múltiple no termina al obtener los coeficientes, el coeficiente de determinación \(R^2\) o los valores p.
Antes de utilizar el modelo para realizar inferencias, explicar relaciones entre variables o efectuar predicciones, es necesario evaluar si se cumplen razonablemente los principales supuestos asociados con la regresión lineal.
En esta clase estudiaremos:
Utilizaremos paquetes especializados para los diferentes diagnósticos.
Los principales paquetes serán:
car: VIF, gráficos de componentes y residuos,
Durbin-Watson y análisis de influencia.olsrr: VIF, tolerancia, índice de condición y otros
diagnósticos de regresión.performance: diagnóstico alternativo de
multicolinealidad.lmtest: Breusch-Pagan, Goldfeld-Quandt, Durbin-Watson,
RESET y Rainbow.skedastic: prueba de White.tseries: Jarque-Bera.moments: implementación alternativa de
Jarque-Bera.nortest: Lilliefors y Anderson-Darling.paquetes <- c(
"car",
"olsrr",
"performance",
"lmtest",
"skedastic",
"tseries",
"moments",
"nortest"
)
faltantes <- paquetes[
!vapply(
paquetes,
requireNamespace,
quietly = TRUE,
FUN.VALUE = logical(1)
)
]
if (length(faltantes) > 0) {
install.packages(
faltantes,
dependencies = TRUE
)
}
invisible(
lapply(
paquetes,
library,
character.only = TRUE
)
).
Un modelo de regresión lineal múltiple puede expresarse como:
\[ Y_i = \beta_0+ \beta_1X_{1i}+ \beta_2X_{2i}+ \cdots+ \beta_kX_{ki}+ \varepsilon_i \]
donde:
Una vez estimado el modelo tenemos:
\[ \widehat{Y}_i = \widehat{\beta}_0+ \widehat{\beta}_1X_{1i}+ \cdots+ \widehat{\beta}_kX_{ki} \]
y el residuo correspondiente a cada observación es:
\[ e_i = Y_i-\widehat{Y}_i \]
Los errores \(\varepsilon_i\) no son observables directamente.
Por ello utilizaremos los residuos \(e_i\) para estudiar varias de las características que deberían presentar los errores del modelo.
Un modelo puede presentar:
y, aun así, presentar problemas importantes.
Por ejemplo:
Por ello el análisis de supuestos debe considerarse parte integral de la construcción del modelo.
Existe multicolinealidad cuando dos o más variables explicativas presentan relaciones lineales importantes entre sí.
En el caso extremo de multicolinealidad perfecta, alguna variable explicativa puede escribirse exactamente como combinación lineal de otras variables.
Esto provoca problemas en la estimación del modelo.
En aplicaciones reales es más frecuente encontrar multicolinealidad alta pero no perfecta.
En ciencias actuariales esto puede ocurrir, por ejemplo, al incluir simultáneamente:
o:
o:
Estas variables pueden contener información muy similar.
La varianza del estimador de un coeficiente puede expresarse como:
\[ Var(\widehat{\beta}_j) = \frac{\sigma^2} {n(1-R_j^2)S_j^2} \]
donde \(R_j^2\) corresponde al coeficiente de determinación obtenido al explicar \(X_j\) utilizando los demás predictores.
Cuando:
\[ R_j^2 \rightarrow 1 \]
entonces:
\[ 1-R_j^2 \rightarrow 0 \]
y la varianza de \(\widehat{\beta}_j\) aumenta.
Por ello la multicolinealidad puede provocar:
Importante:
La multicolinealidad no necesariamente impide que el modelo tenga buena capacidad predictiva. El problema puede ser especialmente importante cuando el objetivo es interpretar individualmente los coeficientes.
La tolerancia del predictor \(X_j\) se define como:
\[ TOL_j=1-R_j^2 \]
Una tolerancia cercana a cero indica que gran parte de la variabilidad de \(X_j\) puede ser explicada mediante los demás predictores.
El factor de inflación de la varianza se define como:
\[ VIF_j= \frac{1}{1-R_j^2} \]
Por tanto:
\[ VIF_j= \frac{1}{TOL_j} \]
Interpretación general:
Estos puntos de corte deben interpretarse como referencias y no como reglas absolutas.
Supongamos que una compañía de seguros desea explicar la prima anual de una póliza de automóvil mediante:
Es razonable esperar una relación muy fuerte entre:
set.seed(101)
n <- 500
edad <- round(
runif(n, 18, 75)
)
antiguedad_vehiculo <- round(
runif(n, 0, 15),
1
)
valor_comercial <- round(
rlnorm(
n,
meanlog = log(120000),
sdlog = 0.35
),
2
)
# Construimos deliberadamente una fuerte relación
# entre suma asegurada y valor comercial.
suma_asegurada <-
valor_comercial *
runif(n, 0.92, 1.02)
siniestros_previos <- rpois(
n,
lambda = 0.6
)
prima_anual <-
1200 +
8 * edad -
35 * antiguedad_vehiculo +
0.012 * valor_comercial +
0.004 * suma_asegurada +
450 * siniestros_previos +
rnorm(n, 0, 700)
datos_multi <- data.frame(
prima_anual,
edad,
antiguedad_vehiculo,
valor_comercial,
suma_asegurada,
siniestros_previos
)
head(datos_multi)## prima_anual edad antiguedad_vehiculo valor_comercial
## Min. : 798.3 Min. :18.00 Min. : 0.000 Min. : 40176
## 1st Qu.:2850.7 1st Qu.:32.00 1st Qu.: 3.275 1st Qu.: 95631
## Median :3524.6 Median :46.50 Median : 6.800 Median :118771
## Mean :3572.6 Mean :46.84 Mean : 7.175 Mean :126568
## 3rd Qu.:4238.1 3rd Qu.:61.00 3rd Qu.:11.000 3rd Qu.:148110
## Max. :7229.9 Max. :75.00 Max. :15.000 Max. :365024
## suma_asegurada siniestros_previos
## Min. : 39612 Min. :0.000
## 1st Qu.: 92558 1st Qu.:0.000
## Median :116436 Median :0.000
## Mean :122589 Mean :0.632
## 3rd Qu.:144940 3rd Qu.:1.000
## Max. :353254 Max. :4.000
round(
cor(
datos_multi[
c(
"edad",
"antiguedad_vehiculo",
"valor_comercial",
"suma_asegurada",
"siniestros_previos"
)
]
),
3
)## edad antiguedad_vehiculo valor_comercial suma_asegurada
## edad 1.000 0.013 0.034 0.033
## antiguedad_vehiculo 0.013 1.000 0.091 0.092
## valor_comercial 0.034 0.091 1.000 0.996
## suma_asegurada 0.033 0.092 0.996 1.000
## siniestros_previos -0.111 0.037 -0.023 -0.022
## siniestros_previos
## edad -0.111
## antiguedad_vehiculo 0.037
## valor_comercial -0.023
## suma_asegurada -0.022
## siniestros_previos 1.000
Observe particularmente:
## [1] 0.9958587
La correlación debería ser extremadamente elevada.
Sin embargo, la correlación solamente analiza relaciones entre pares de variables.
La multicolinealidad también puede producirse debido a combinaciones de varios predictores.
Por ello utilizaremos VIF.
modelo_multi <- lm(
prima_anual ~
edad +
antiguedad_vehiculo +
valor_comercial +
suma_asegurada +
siniestros_previos,
data = datos_multi
)
summary(modelo_multi)##
## Call:
## lm(formula = prima_anual ~ edad + antiguedad_vehiculo + valor_comercial +
## suma_asegurada + siniestros_previos, data = datos_multi)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2213.64 -490.24 25.87 489.78 2106.76
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 904.376331 144.889924 6.242 9.32e-10 ***
## edad 11.160767 1.979882 5.637 2.91e-08 ***
## antiguedad_vehiculo -29.309072 7.412570 -3.954 8.81e-05 ***
## valor_comercial 0.018558 0.008154 2.276 0.0233 *
## suma_asegurada -0.002288 0.008375 -0.273 0.7849
## siniestros_previos 454.712406 41.498459 10.957 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 723.4 on 494 degrees of freedom
## Multiple R-squared: 0.5565, Adjusted R-squared: 0.552
## F-statistic: 124 on 5 and 494 DF, p-value: < 2.2e-16
Observe:
La primera alternativa es:
Aplicamos:
## edad antiguedad_vehiculo valor_comercial suma_asegurada
## 1.013981 1.010379 121.079482 121.085443
## siniestros_previos
## 1.014639
Una ventaja de olsrr es que presenta
simultáneamente:
El paquete performance proporciona otra forma de revisar
multicolinealidad.
Por tanto, tenemos tres alternativas:
car::vif(modelo_multi)
olsrr::ols_vif_tol(modelo_multi)
performance::check_collinearity(modelo_multi)No es necesario utilizar las tres en un análisis real.
Se presentan para conocer distintas implementaciones disponibles en R.
Además del VIF, puede utilizarse el índice de condición.
Se define a partir de los autovalores como:
\[ IC_j= \sqrt{ \frac{\lambda_{\max}} {\lambda_j} } \]
Un índice elevado indica que existe una combinación de variables explicativas cercana a una dependencia lineal.
Como referencia general:
olsrr también permite obtener VIF, tolerancia,
autovalores e índice de condición mediante una sola instrucción.
## Tolerance and Variance Inflation Factor
## ---------------------------------------
## Variables Tolerance VIF
## 1 edad 0.986212237 1.013981
## 2 antiguedad_vehiculo 0.989727151 1.010379
## 3 valor_comercial 0.008259038 121.079482
## 4 suma_asegurada 0.008258631 121.085443
## 5 siniestros_previos 0.985572338 1.014639
##
##
## Eigenvalue and Condition Index
## ------------------------------
## Eigenvalue Condition Index intercept edad antiguedad_vehiculo
## 1 5.0008252790 1.000000 0.0019102180 0.0038450317 0.0085730958
## 2 0.5772581242 2.943309 0.0007142025 0.0052386937 0.0064659253
## 3 0.2402540573 4.562317 0.0018079263 0.0113515167 0.9039050421
## 4 0.1432147439 5.909177 0.0157175046 0.4385347468 0.0232033688
## 5 0.0380058117 11.470856 0.9787701016 0.5406946215 0.0576795977
## 6 0.0004419839 106.369623 0.0010800470 0.0003353896 0.0001729703
## valor_comercial suma_asegurada siniestros_previos
## 1 3.298744e-05 3.327803e-05 1.148405e-02
## 2 3.797940e-05 3.816476e-05 9.326424e-01
## 3 2.910842e-04 2.937752e-04 9.324174e-04
## 4 1.100921e-03 1.133722e-03 4.511054e-06
## 5 5.914640e-04 6.265924e-04 5.474547e-02
## 6 9.979456e-01 9.978745e-01 1.911947e-04
No existe una solución automática.
Algunas alternativas son:
La variable no debe eliminarse únicamente porque su VIF sea elevado.
La decisión debe considerar su significado actuarial.
Supongamos que después del análisis técnico decidimos mantener
valor_comercial y retirar suma_asegurada.
modelo_multi_reducido <- lm(
prima_anual ~
edad +
antiguedad_vehiculo +
valor_comercial +
siniestros_previos,
data = datos_multi
)
summary(
modelo_multi_reducido
)##
## Call:
## lm(formula = prima_anual ~ edad + antiguedad_vehiculo + valor_comercial +
## siniestros_previos, data = datos_multi)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2218.93 -493.87 19.87 486.60 2107.55
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 904.573781 144.752624 6.249 8.91e-10 ***
## edad 11.169979 1.977744 5.648 2.74e-08 ***
## antiguedad_vehiculo -29.344022 7.404534 -3.963 8.49e-05 ***
## valor_comercial 0.016340 0.000744 21.961 < 2e-16 ***
## siniestros_previos 454.568352 41.456302 10.965 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 722.7 on 495 degrees of freedom
## Multiple R-squared: 0.5564, Adjusted R-squared: 0.5528
## F-statistic: 155.2 on 4 and 495 DF, p-value: < 2.2e-16
Volvemos a evaluar VIF.
## edad antiguedad_vehiculo valor_comercial siniestros_previos
## 1.013686 1.010078 1.010011 1.014475
Alternativamente:
Compare los resultados antes y después de retirar la variable.
El supuesto de normalidad establece que los errores siguen aproximadamente una distribución normal:
\[ \varepsilon_i \sim N(0,\sigma^2) \]
Es fundamental distinguir tres afirmaciones:
Como los errores no son observables, analizamos los residuos.
La normalidad es especialmente importante para justificar determinados resultados inferenciales, entre ellos:
En muestras grandes, pequeñas desviaciones de normalidad pueden tener poca importancia práctica.
Por ello una prueba formal debe acompañarse con análisis gráfico.
Supongamos que deseamos explicar la severidad de los siniestros mediante:
set.seed(202)
n <- 400
edad_asegurado <- runif(
n,
20,
75
)
valor_vehiculo <- runif(
n,
50000,
300000
)
siniestros_previos <- rpois(
n,
lambda = 0.5
)
severidad <-
3000 +
35 * edad_asegurado +
0.06 * valor_vehiculo +
1200 * siniestros_previos +
rnorm(
n,
mean = 0,
sd = 4500
)
datos_normalidad <- data.frame(
severidad,
edad_asegurado,
valor_vehiculo,
siniestros_previos
)
head(datos_normalidad)modelo_normalidad <- lm(
severidad ~
edad_asegurado +
valor_vehiculo +
siniestros_previos,
data = datos_normalidad
)
summary(
modelo_normalidad
)##
## Call:
## lm(formula = severidad ~ edad_asegurado + valor_vehiculo + siniestros_previos,
## data = datos_normalidad)
##
## Residuals:
## Min 1Q Median 3Q Max
## -10486.7 -2914.3 -109.6 3233.4 17341.3
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.068e+03 8.742e+02 3.510 0.0005 ***
## edad_asegurado 2.978e+01 1.385e+01 2.150 0.0321 *
## valor_vehiculo 6.222e-02 3.030e-03 20.531 < 2e-16 ***
## siniestros_previos 1.421e+03 3.205e+02 4.433 1.21e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4448 on 396 degrees of freedom
## Multiple R-squared: 0.5261, Adjusted R-squared: 0.5226
## F-statistic: 146.6 on 3 and 396 DF, p-value: < 2.2e-16
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -10486.7 -2914.3 -109.6 0.0 3233.4 17341.3
En un modelo con intercepto, la media de los residuos será aproximadamente cero.
## [1] 9.635515e-14
hist(
residuos_normalidad,
breaks = 25,
main = "Histograma de los residuos",
xlab = "Residuos",
ylab = "Frecuencia"
)Alternativamente, olsrr incorpora un gráfico
específico:
Si los residuos se aproximan a una distribución normal, los puntos deberían ubicarse aproximadamente sobre una línea recta.
qqnorm(
residuos_normalidad,
main = "Gráfico Q-Q de los residuos"
)
qqline(
residuos_normalidad,
lwd = 2
)También podemos utilizar:
No se espera que todos los puntos se encuentren exactamente sobre la línea.
Debemos buscar desviaciones sistemáticas, particularmente:
La prueba de Jarque-Bera utiliza conjuntamente:
En una distribución normal:
\[ Asimetría=0 \]
y la curtosis de Pearson es:
\[ Curtosis=3 \]
El estadístico puede expresarse como:
\[ JB= \frac{n}{6} \left[ S^2+ \frac{(K-3)^2}{4} \right] \]
donde:
Las hipótesis son:
\[ H_0: \text{los residuos son compatibles con una distribución normal} \]
\[ H_1: \text{los residuos no son compatibles con una distribución normal} \]
La primera alternativa será:
##
## Jarque Bera Test
##
## data: residuos_normalidad
## X-squared = 1.1555, df = 2, p-value = 0.5612
El paquete moments contiene otra implementación.
##
## Jarque-Bera Normality Test
##
## data: residuos_normalidad
## JB = 1.1555, p-value = 0.5612
## alternative hypothesis: greater
Por tanto, dos alternativas son:
En general, no es necesario ejecutar ambas.
La segunda se presenta como alternativa de implementación.
El paquete moments permite calcularlas directamente.
## [1] 0.1174748
## [1] 2.881139
En una distribución aproximadamente normal esperamos:
\[ S\approx0 \]
y:
\[ K\approx3 \]
R incluye directamente la prueba Shapiro-Wilk.
Las hipótesis son:
\[ H_0: \text{los residuos proceden de una distribución normal} \]
\[ H_1: \text{los residuos no proceden de una distribución normal} \]
##
## Shapiro-Wilk normality test
##
## data: residuos_normalidad
## W = 0.99398, p-value = 0.1143
Utilizando:
\[ \alpha=0.05 \]
la regla es:
No debemos afirmar que \(H_0\) fue demostrada cuando el valor p es mayor que 0.05.
El test de Lilliefors es una modificación del procedimiento Kolmogorov-Smirnov para el caso en que los parámetros de la distribución normal son estimados a partir de los datos.
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: residuos_normalidad
## D = 0.026832, p-value = 0.6904
Sus hipótesis son igualmente:
\[ H_0: \text{normalidad} \]
\[ H_1: \text{no normalidad} \]
Como diagnóstico adicional podemos utilizar:
##
## Anderson-Darling normality test
##
## data: residuos_normalidad
## A = 0.36054, p-value = 0.4457
Anderson-Darling es particularmente sensible a discrepancias en las colas.
olsrr también incorpora una función que reúne varios
contrastes de normalidad.
## -----------------------------------------------
## Test Statistic pvalue
## -----------------------------------------------
## Shapiro-Wilk 0.994 0.1143
## Kolmogorov-Smirnov 0.0268 0.9356
## Cramer-von Mises 33.3958 0.0000
## Anderson-Darling 0.3605 0.4457
## -----------------------------------------------
No es necesario utilizar simultáneamente todas las pruebas.
En una aplicación práctica podría ser suficiente combinar, por ejemplo:
Ahora generaremos una distribución asimétrica para observar cómo cambia el diagnóstico.
set.seed(203)
error_asimetrico <-
rexp(
n,
rate = 1 / 4000
) -
4000
severidad_asimetrica <-
3000 +
35 * edad_asegurado +
0.06 * valor_vehiculo +
1200 * siniestros_previos +
error_asimetrico
datos_no_normal <- data.frame(
severidad_asimetrica,
edad_asegurado,
valor_vehiculo,
siniestros_previos
)
modelo_no_normal <- lm(
severidad_asimetrica ~
edad_asegurado +
valor_vehiculo +
siniestros_previos,
data = datos_no_normal
)
residuos_no_normales <- residuals(
modelo_no_normal
)qqnorm(
residuos_no_normales,
main = "Q-Q plot: residuos no normales"
)
qqline(
residuos_no_normales,
lwd = 2
)##
## Jarque Bera Test
##
## data: residuos_no_normales
## X-squared = 852.46, df = 2, p-value < 2.2e-16
Alternativa:
##
## Jarque-Bera Normality Test
##
## data: residuos_no_normales
## JB = 852.46, p-value < 2.2e-16
## alternative hypothesis: greater
Las variables monetarias asociadas con seguros frecuentemente presentan:
Por ello, si la estructura de la variable dependiente es marcadamente asimétrica, puede ser necesario considerar:
El objetivo no debe ser obligar a todos los problemas a cumplir los supuestos de una regresión normal.
El diagnóstico también sirve para determinar cuándo otro modelo puede ser más adecuado.
El supuesto de homocedasticidad establece que la varianza de los errores es constante:
\[ Var(\varepsilon_i\mid X) = \sigma^2 \]
para todas las observaciones.
Cuando la varianza depende de los niveles de las variables explicativas tenemos:
\[ Var(\varepsilon_i\mid X) \neq \sigma^2 \]
y hablamos de heterocedasticidad.
Ante heterocedasticidad, los estimadores de mínimos cuadrados ordinarios pueden continuar siendo insesgados bajo determinadas condiciones.
Sin embargo, sus errores estándar tradicionales pueden dejar de ser adecuados.
Como consecuencia pueden afectarse:
En ciencias actuariales la heterocedasticidad es especialmente plausible.
Por ejemplo, el costo de los siniestros de pólizas con valores asegurados elevados puede presentar una dispersión mucho mayor que el correspondiente a pólizas pequeñas.
set.seed(303)
n <- 500
valor_asegurado <- runif(
n,
50000,
500000
)
edad <- runif(
n,
20,
75
)
# Hacemos que la desviación estándar
# aumente con el valor asegurado.
desviacion_error <-
1000 +
0.025 * valor_asegurado
error_hetero <- rnorm(
n,
mean = 0,
sd = desviacion_error
)
costo_anual <-
1500 +
20 * edad +
0.08 * valor_asegurado +
error_hetero
datos_hetero <- data.frame(
costo_anual,
edad,
valor_asegurado
)
head(datos_hetero)modelo_hetero <- lm(
costo_anual ~
edad +
valor_asegurado,
data = datos_hetero
)
summary(
modelo_hetero
)##
## Call:
## lm(formula = costo_anual ~ edad + valor_asegurado, data = datos_hetero)
##
## Residuals:
## Min 1Q Median 3Q Max
## -22794.3 -4569.2 104.2 4052.7 29716.3
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.022e+03 1.472e+03 0.694 0.488
## edad 1.008e+01 2.277e+01 0.443 0.658
## valor_asegurado 8.533e-02 2.857e-03 29.871 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 8137 on 497 degrees of freedom
## Multiple R-squared: 0.6436, Adjusted R-squared: 0.6422
## F-statistic: 448.8 on 2 and 497 DF, p-value: < 2.2e-16
plot(
fitted(modelo_hetero),
residuals(modelo_hetero),
xlab = "Valores ajustados",
ylab = "Residuos",
main = "Residuos frente a valores ajustados"
)
abline(
h = 0,
lty = 2
)En condiciones de homocedasticidad esperamos observar una nube:
Patrones como:
pueden indicar heterocedasticidad.
R también incorpora el gráfico Scale-Location dentro de los diagnósticos estándar.
Un patrón creciente puede sugerir que la variabilidad aumenta con los valores predichos.
Las hipótesis son:
\[ H_0: Var(\varepsilon_i)=\sigma^2 \]
es decir, homocedasticidad.
Frente a:
\[ H_1: Var(\varepsilon_i) \text{ no es constante} \]
##
## studentized Breusch-Pagan test
##
## data: modelo_hetero
## BP = 70.454, df = 2, p-value = 5.025e-16
bptest() utiliza por defecto la versión studentizada de
Koenker.
Si queremos la versión original de Breusch-Pagan:
##
## Breusch-Pagan test
##
## data: modelo_hetero
## BP = 107.37, df = 2, p-value < 2.2e-16
##
## Breusch Pagan Test for Heteroskedasticity
## -----------------------------------------
## Ho: the variance is constant
## Ha: the variance is not constant
##
## Data
## ---------------------------------------
## Response : costo_anual
## Variables: fitted values of costo_anual
##
## Test Summary
## -------------------------------
## DF = 1
## Chi2 = 107.3604
## Prob > Chi2 = 3.711416e-25
Otra opción consiste en evaluar explícitamente los predictores del lado derecho:
##
## Breusch Pagan Test for Heteroskedasticity
## -----------------------------------------
## Ho: the variance is constant
## Ha: the variance is not constant
##
## Data
## -------------------------------
## Response : costo_anual
## Variables: edad valor_asegurado
##
## Test Summary
## -------------------------------
## DF = 2
## Chi2 = 107.3656
## Prob > Chi2 = 4.851367e-24
De esta forma tenemos dos implementaciones principales:
La prueba de White permite detectar estructuras de heterocedasticidad más generales.
Su lógica consiste en explicar los residuos al cuadrado utilizando:
Las hipótesis son:
\[ H_0: \text{homocedasticidad} \]
\[ H_1: \text{heterocedasticidad} \]
El paquete skedastic contiene una implementación
directa.
Si queremos incluir también interacciones entre los predictores:
No debe confundirse esta prueba con otras funciones denominadas
white.testque pueden implementar procedimientos distintos.
El procedimiento de Goldfeld-Quandt divide las observaciones después de ordenarlas según una variable y compara la variabilidad entre grupos.
Las hipótesis son:
\[ H_0: \text{varianza constante} \]
\[ H_1: \text{varianza creciente o diferente entre grupos} \]
En nuestro ejemplo tiene sentido ordenar por
valor_asegurado.
lmtest::gqtest(
costo_anual ~
edad +
valor_asegurado,
order.by = ~ valor_asegurado,
data = datos_hetero
)##
## Goldfeld-Quandt test
##
## data: costo_anual ~ edad + valor_asegurado
## GQ = 4.23, df1 = 247, df2 = 247, p-value < 2.2e-16
## alternative hypothesis: variance increases from segment 1 to 2
Podemos ejecutar:
##
## studentized Breusch-Pagan test
##
## data: modelo_hetero
## BP = 70.454, df = 2, p-value = 5.025e-16
lmtest::gqtest(
costo_anual ~
edad +
valor_asegurado,
order.by = ~ valor_asegurado,
data = datos_hetero
)##
## Goldfeld-Quandt test
##
## data: costo_anual ~ edad + valor_asegurado
## GQ = 4.23, df1 = 247, df2 = 247, p-value < 2.2e-16
## alternative hypothesis: variance increases from segment 1 to 2
No deben interpretarse como tres votos independientes.
Cada prueba tiene una lógica diferente.
El diagnóstico debe combinar:
Las posibles alternativas incluyen:
En aplicaciones actuariales esta última posibilidad es particularmente importante.
El supuesto de linealidad implica que la media condicional de la respuesta se encuentra correctamente representada mediante la forma funcional especificada.
En el modelo:
\[ E(Y\mid X) = \beta_0+ \beta_1X_1+ \cdots+ \beta_kX_k \]
la expresión es lineal en los parámetros.
Es importante comprender que un modelo que contiene:
\[ X^2 \]
puede seguir siendo una regresión lineal.
Por ejemplo:
\[ Y= \beta_0+ \beta_1X+ \beta_2X^2+ \varepsilon \]
continúa siendo lineal respecto de:
\[ \beta_0,\beta_1,\beta_2 \]
Supongamos que analizamos el costo esperado de siniestros según:
Es posible que la edad tenga una relación curva con el riesgo.
Por ejemplo:
set.seed(404)
n <- 500
edad_conductor <- runif(
n,
18,
80
)
kilometros_anuales <- runif(
n,
5000,
30000
)
costo <-
2500 +
0.025 * kilometros_anuales +
4.5 * (edad_conductor - 45)^2 +
rnorm(
n,
0,
1800
)
datos_linealidad <- data.frame(
costo,
edad_conductor,
kilometros_anuales
)
head(datos_linealidad)Supongamos que inicialmente especificamos:
\[ Costo= \beta_0+ \beta_1Edad+ \beta_2Kilometros+ \varepsilon \]
modelo_lineal_simple <- lm(
costo ~
edad_conductor +
kilometros_anuales,
data = datos_linealidad
)
summary(
modelo_lineal_simple
)##
## Call:
## lm(formula = costo ~ edad_conductor + kilometros_anuales, data = datos_linealidad)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6239 -1424 72 1341 6761
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.468e+03 3.818e+02 6.462 2.46e-10 ***
## edad_conductor 3.430e+01 5.494e+00 6.244 9.18e-10 ***
## kilometros_anuales 1.305e-02 1.349e-02 0.967 0.334
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2160 on 497 degrees of freedom
## Multiple R-squared: 0.07357, Adjusted R-squared: 0.06984
## F-statistic: 19.73 on 2 and 497 DF, p-value: 5.665e-09
plot(
fitted(modelo_lineal_simple),
residuals(modelo_lineal_simple),
xlab = "Valores ajustados",
ylab = "Residuos",
main = "Residuos frente a valores ajustados"
)
abline(
h = 0,
lty = 2
)
lines(
lowess(
fitted(modelo_lineal_simple),
residuals(modelo_lineal_simple)
),
lwd = 2
)Una curva sistemática en los residuos puede indicar que la forma funcional utilizada es inadecuada.
Una herramienta especialmente útil es el gráfico de componentes más residuos.
También se conoce como:
El paquete car permite obtenerlo directamente.
Este gráfico permite estudiar la forma de la relación entre cada predictor y la respuesta después de controlar estadísticamente los demás predictores.
Como complemento del diagnóstico gráfico puede utilizarse la prueba RESET.
Sus hipótesis pueden interpretarse aproximadamente como:
\[ H_0: \text{la especificación funcional es adecuada} \]
\[ H_1: \text{existe evidencia de mala especificación} \]
##
## RESET test
##
## data: modelo_lineal_simple
## RESET = 124.52, df1 = 2, df2 = 495, p-value < 2.2e-16
Otra alternativa disponible en lmtest es la prueba
Rainbow.
##
## Rainbow test
##
## data: modelo_lineal_simple
## Rain = 1.0298, df1 = 250, df2 = 247, p-value = 0.4086
Estas pruebas son complementarias al análisis gráfico.
No sustituyen la necesidad de comprender la forma funcional del problema.
Después del diagnóstico podemos plantear:
\[ Costo= \beta_0+ \beta_1Edad+ \beta_2Edad^2+ \beta_3Kilometros+ \varepsilon \]
En R:
modelo_cuadratico <- lm(
costo ~
edad_conductor +
I(edad_conductor^2) +
kilometros_anuales,
data = datos_linealidad
)
summary(
modelo_cuadratico
)##
## Call:
## lm(formula = costo ~ edad_conductor + I(edad_conductor^2) + kilometros_anuales,
## data = datos_linealidad)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5506.5 -1189.3 92.1 1227.2 4598.8
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.195e+04 6.605e+02 18.096 <2e-16 ***
## edad_conductor -4.145e+02 2.798e+01 -14.813 <2e-16 ***
## I(edad_conductor^2) 4.586e+00 2.823e-01 16.245 <2e-16 ***
## kilometros_anuales 1.715e-02 1.091e-02 1.571 0.117
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1747 on 496 degrees of freedom
## Multiple R-squared: 0.3953, Adjusted R-squared: 0.3916
## F-statistic: 108.1 on 3 and 496 DF, p-value: < 2.2e-16
plot(
fitted(modelo_cuadratico),
residuals(modelo_cuadratico),
xlab = "Valores ajustados",
ylab = "Residuos",
main = "Modelo con término cuadrático"
)
abline(
h = 0,
lty = 2
)
lines(
lowess(
fitted(modelo_cuadratico),
residuals(modelo_cuadratico)
),
lwd = 2
)Compare este gráfico con el obtenido para el modelo inicial.
Un valor menor de AIC o BIC representa un mejor equilibrio entre ajuste y complejidad según el criterio correspondiente.
Como el modelo lineal simple se encuentra contenido dentro del modelo cuadrático, también podemos comparar los modelos mediante:
Las hipótesis pueden conceptualizarse como:
\[ H_0: \beta_2=0 \]
frente a:
\[ H_1: \beta_2\neq0 \]
donde \(\beta_2\) corresponde al término cuadrático.
El supuesto de independencia establece que los errores de distintas observaciones no deben presentar una relación sistemática.
En datos temporales puede existir:
\[ Corr(\varepsilon_t,\varepsilon_{t-1}) \neq0 \]
A este fenómeno se le denomina autocorrelación.
La dependencia temporal puede aparecer al analizar:
En estos casos el orden de las observaciones contiene información.
Generaremos información de 120 meses.
set.seed(505)
n <- 120
mes <- 1:n
exposicion <-
10000 +
45 * mes +
rnorm(
n,
0,
300
)
rho <- 0.75
error_auto <- arima.sim(
model = list(
ar = rho
),
n = n,
sd = 250
)
siniestros_mensuales <-
500 +
0.07 * exposicion +
2.5 * mes +
as.numeric(error_auto)
datos_auto <- data.frame(
mes,
exposicion,
siniestros_mensuales
)
head(datos_auto)modelo_auto <- lm(
siniestros_mensuales ~
exposicion +
mes,
data = datos_auto
)
summary(
modelo_auto
)##
## Call:
## lm(formula = siniestros_mensuales ~ exposicion + mes, data = datos_auto)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1050.21 -239.69 -27.32 209.11 902.30
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -938.7148 1083.3677 -0.866 0.3880
## exposicion 0.2027 0.1089 1.861 0.0653 .
## mes -1.4707 5.0949 -0.289 0.7734
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 363.2 on 117 degrees of freedom
## Multiple R-squared: 0.3763, Adjusted R-squared: 0.3656
## F-statistic: 35.29 on 2 and 117 DF, p-value: 1.015e-12
plot(
datos_auto$mes,
residuals(modelo_auto),
type = "l",
xlab = "Mes",
ylab = "Residuo",
main = "Residuos a través del tiempo"
)
abline(
h = 0,
lty = 2
)En ausencia de autocorrelación se espera una sucesión relativamente aleatoria alrededor de cero.
En presencia de autocorrelación positiva pueden observarse:
La barra correspondiente al rezago 1 es especialmente importante para estudiar autocorrelación de primer orden.
El estadístico Durbin-Watson puede expresarse como:
\[ DW= \frac{ \sum_{t=2}^{n}(e_t-e_{t-1})^2 }{ \sum_{t=1}^{n}e_t^2 } \]
De manera aproximada:
\[ DW\approx2 \]
sugiere ausencia de autocorrelación de primer orden.
\[ DW<2 \]
es consistente con autocorrelación positiva.
\[ DW>2 \]
es consistente con autocorrelación negativa.
##
## Durbin-Watson test
##
## data: modelo_auto
## DW = 0.57668, p-value = 1.654e-15
## alternative hypothesis: true autocorrelation is not 0
Las hipótesis son:
\[ H_0: \rho=0 \]
frente a:
\[ H_1: \rho\neq0 \]
El paquete car también incorpora Durbin-Watson.
## lag Autocorrelation D-W Statistic p-value
## 1 0.7089551 0.5766766 0
## Alternative hypothesis: rho != 0
Esta implementación utiliza simulación para obtener el valor p.
Por tanto, tenemos como alternativas:
Durbin-Watson se centra principalmente en autocorrelación de primer orden.
Una alternativa más general es Breusch-Godfrey.
Por ejemplo, para estudiar hasta cuatro rezagos:
##
## Breusch-Godfrey test for serial correlation of order up to 4
##
## data: modelo_auto
## LM test = 60.49, df = 4, p-value = 2.289e-12
Las hipótesis son:
\[ H_0: \text{no existe autocorrelación hasta el orden evaluado} \]
frente a:
\[ H_1: \text{existe autocorrelación} \]
Dependiendo del problema pueden considerarse:
El punto fundamental es que una regresión ordinaria puede no ser suficiente si las observaciones presentan una estructura temporal importante.
Aunque el análisis de valores atípicos no siempre se formula como un supuesto clásico, constituye una etapa esencial del diagnóstico.
Debemos distinguir:
Un outlier es una observación cuyo valor de la variable dependiente es mal explicado por el modelo.
Por ello suele presentar un residuo grande.
Una observación posee alto leverage cuando presenta valores inusuales en las variables explicativas.
Es decir, se encuentra alejada del centro de la nube multivariada de predictores.
Una observación es influyente cuando su presencia afecta sustancialmente:
Una observación puede ser:
set.seed(606)
n <- 300
edad <- runif(
n,
20,
75
)
valor_vehiculo <- runif(
n,
50000,
250000
)
siniestros_previos <- rpois(
n,
lambda = 0.6
)
costo <-
1000 +
20 * edad +
0.07 * valor_vehiculo +
900 * siniestros_previos +
rnorm(
n,
0,
3000
)
datos_atipicos <- data.frame(
costo,
edad,
valor_vehiculo,
siniestros_previos
)
# Introducimos tres siniestros extraordinarios.
datos_atipicos$costo[
c(25, 120, 250)
] <-
datos_atipicos$costo[
c(25, 120, 250)
] +
c(
30000,
45000,
55000
)
# Introducimos un asegurado con un vehículo
# extraordinariamente costoso.
datos_atipicos$valor_vehiculo[300] <-
900000
datos_atipicos$costo[300] <-
85000modelo_atipicos <- lm(
costo ~
edad +
valor_vehiculo +
siniestros_previos,
data = datos_atipicos
)
summary(
modelo_atipicos
)##
## Call:
## lm(formula = costo ~ edad + valor_vehiculo + siniestros_previos,
## data = datos_atipicos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -10500 -2456 -221 1726 59977
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.643e+03 1.242e+03 1.323 0.1868
## edad 2.159e+00 1.943e+01 0.111 0.9116
## valor_vehiculo 7.376e-02 4.488e-03 16.435 <2e-16 ***
## siniestros_previos 8.769e+02 4.138e+02 2.119 0.0349 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5663 on 296 degrees of freedom
## Multiple R-squared: 0.4866, Adjusted R-squared: 0.4814
## F-statistic: 93.52 on 3 and 296 DF, p-value: < 2.2e-16
Los residuos estudentizados permiten comparar mejor observaciones que los residuos ordinarios.
R los calcula directamente mediante:
## 1 2 3 4 5 6
## 0.909681097 0.250543854 0.902549431 0.113934631 -0.497591616 0.002627843
Como criterio exploratorio pueden revisarse observaciones con:
\[ |r_i|>2 \]
## 25 120 250 300
## 25 120 250 300
Un criterio más estricto sería:
\[ |r_i|>3 \]
## 25 120 250 300
## 25 120 250 300
El paquete car incorpora una prueba Bonferroni para
detectar observaciones atípicas.
## rstudent unadjusted p-value Bonferroni p
## 250 13.517540 9.8439e-33 2.9532e-30
## 120 8.665099 3.0334e-16 9.1003e-14
## 25 5.477132 9.2651e-08 2.7795e-05
Por tanto podemos complementar:
Los valores de leverage corresponden a los elementos diagonales de la matriz:
\[ H= X(X'X)^{-1}X' \]
En R:
## 1 2 3 4 5 6
## 0.019861152 0.010067968 0.012723879 0.008980309 0.017179051 0.015684090
Una regla exploratoria es:
\[ h_i> \frac{2p}{n} \]
donde \(p\) representa el número de parámetros del modelo, incluyendo el intercepto.
p <- length(
coef(modelo_atipicos)
)
n_obs <- nobs(
modelo_atipicos
)
umbral_leverage <-
2 * p / n_obs
umbral_leverage## [1] 0.02666667
Identificamos:
## 30 44 61 99 125 134 180 226 238 239 300
## 30 44 61 99 125 134 180 226 238 239 300
La distancia de Cook mide cuánto pueden cambiar los resultados del modelo debido a una observación.
## 1 2 3 4 5 6
## 4.194578e-03 1.601110e-04 2.626244e-03 2.950605e-05 1.084716e-03 2.760154e-08
Una regla exploratoria frecuente es:
\[ D_i>\frac{4}{n} \]
## [1] 0.01333333
Observaciones potencialmente influyentes:
## 12 25 120 250 300
## 12 25 120 250 300
Otra presentación:
Este gráfico permite visualizar simultáneamente dos características importantes:
Una herramienta muy útil integra:
En este gráfico:
La distancia de Mahalanobis permite analizar qué tan inusual es una observación considerando simultáneamente varias variables explicativas.
Se define como:
\[ D_i^2= (x_i-\bar{x})' S^{-1} (x_i-\bar{x}) \]
R posee directamente la función mahalanobis().
X_atipicos <- datos_atipicos[
c(
"edad",
"valor_vehiculo",
"siniestros_previos"
)
]
distancia_mahalanobis <- stats::mahalanobis(
X_atipicos,
center = colMeans(X_atipicos),
cov = cov(X_atipicos)
)
head(
distancia_mahalanobis
)## [1] 4.941818 2.013656 2.807773 1.688446 4.139870 3.692876
Un criterio exploratorio puede obtenerse mediante una distribución chi-cuadrado.
## [1] 11.34487
Identificamos observaciones:
## [1] 300
No automáticamente.
Antes de eliminarla debemos investigar:
En ciencias actuariales esta última pregunta es fundamental.
Un siniestro extremadamente grande puede ser precisamente la observación que contiene información importante sobre la cola de la distribución.
Ahora construiremos un modelo actuarial y realizaremos el diagnóstico completo.
Una aseguradora desea explicar el costo anual de siniestros mediante:
set.seed(707)
n <- 600
edad <- runif(
n,
18,
75
)
antiguedad <- runif(
n,
0,
18
)
kilometros <- runif(
n,
5000,
35000
)
valor_asegurado <- runif(
n,
50000,
400000
)
siniestros_previos <- rpois(
n,
lambda = 0.7
)
# Construimos deliberadamente
# cierta heterocedasticidad.
sigma <-
1800 +
0.01 * valor_asegurado
costo_siniestros <-
800 +
25 * edad -
40 * antiguedad +
0.035 * kilometros +
0.065 * valor_asegurado +
1000 * siniestros_previos +
rnorm(
n,
mean = 0,
sd = sigma
)
cartera <- data.frame(
costo_siniestros,
edad,
antiguedad,
kilometros,
valor_asegurado,
siniestros_previos
)
head(
cartera
)## costo_siniestros edad antiguedad kilometros
## Min. :-2602 Min. :18.15 Min. : 0.05606 Min. : 5035
## 1st Qu.:10950 1st Qu.:32.83 1st Qu.: 4.66395 1st Qu.:12474
## Median :16697 Median :45.30 Median : 8.97847 Median :20165
## Mean :17652 Mean :46.07 Mean : 9.12721 Mean :20045
## 3rd Qu.:23315 3rd Qu.:60.06 3rd Qu.:13.59833 3rd Qu.:27832
## Max. :43692 Max. :74.91 Max. :17.96471 Max. :34994
## valor_asegurado siniestros_previos
## Min. : 50279 Min. :0.000
## 1st Qu.:130338 1st Qu.:0.000
## Median :223452 Median :1.000
## Mean :221905 Mean :0.725
## 3rd Qu.:313408 3rd Qu.:1.000
## Max. :399968 Max. :5.000
## costo_siniestros edad antiguedad kilometros
## costo_siniestros 1.000 0.075 0.011 0.091
## edad 0.075 1.000 0.026 0.054
## antiguedad 0.011 0.026 1.000 0.031
## kilometros 0.091 0.054 0.031 1.000
## valor_asegurado 0.857 0.017 0.022 0.097
## siniestros_previos 0.084 -0.022 -0.024 -0.028
## valor_asegurado siniestros_previos
## costo_siniestros 0.857 0.084
## edad 0.017 -0.022
## antiguedad 0.022 -0.024
## kilometros 0.097 -0.028
## valor_asegurado 1.000 -0.009
## siniestros_previos -0.009 1.000
modelo_final <- lm(
costo_siniestros ~
edad +
antiguedad +
kilometros +
valor_asegurado +
siniestros_previos,
data = cartera
)
summary(
modelo_final
)##
## Call:
## lm(formula = costo_siniestros ~ edad + antiguedad + kilometros +
## valor_asegurado + siniestros_previos, data = cartera)
##
## Residuals:
## Min 1Q Median 3Q Max
## -13446.8 -2654.7 -110.8 2591.2 15699.1
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 49.793872 795.115941 0.063 0.95009
## edad 32.889533 10.779745 3.051 0.00238 **
## antiguedad -11.679962 34.056292 -0.343 0.73175
## kilometros 0.006551 0.019956 0.328 0.74282
## valor_asegurado 0.069327 0.001676 41.362 < 2e-16 ***
## siniestros_previos 935.253423 207.986552 4.497 8.3e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4287 on 594 degrees of freedom
## Multiple R-squared: 0.7477, Adjusted R-squared: 0.7456
## F-statistic: 352.1 on 5 and 594 DF, p-value: < 2.2e-16
Los coeficientes estimados son:
## (Intercept) edad antiguedad kilometros
## 49.793871877 32.889532944 -11.679962356 0.006551215
## valor_asegurado siniestros_previos
## 0.069326830 935.253423163
Cada coeficiente se interpreta manteniendo constantes los demás predictores.
Por ejemplo:
## siniestros_previos
## 935.2534
Si el coeficiente estimado fuera aproximadamente 1,000, la interpretación sería:
Manteniendo constantes las demás variables incluidas en el modelo, un siniestro previo adicional se asocia con aproximadamente 1,000 unidades monetarias adicionales en el costo anual esperado de siniestros.
Observe que hablamos de asociación.
Un coeficiente de regresión obtenido con datos observacionales no implica automáticamente causalidad.
## edad antiguedad kilometros valor_asegurado
## 1.004071 1.002420 1.013796 1.010001
## siniestros_previos
## 1.001707
Obtenemos los residuos:
##
## Jarque Bera Test
##
## data: res_final
## X-squared = 14.082, df = 2, p-value = 0.0008754
##
## Jarque-Bera Normality Test
##
## data: res_final
## JB = 14.082, p-value = 0.0008754
## alternative hypothesis: greater
##
## Shapiro-Wilk normality test
##
## data: res_final
## W = 0.99391, p-value = 0.01634
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: res_final
## D = 0.031526, p-value = 0.157
## -----------------------------------------------
## Test Statistic pvalue
## -----------------------------------------------
## Shapiro-Wilk 0.9939 0.0163
## Kolmogorov-Smirnov 0.0315 0.5899
## Cramer-von Mises 50.0267 0.0000
## Anderson-Darling 0.7862 0.0412
## -----------------------------------------------
plot(
fitted(modelo_final),
residuals(modelo_final),
xlab = "Valores ajustados",
ylab = "Residuos",
main = "Residuos frente a valores ajustados"
)
abline(
h = 0,
lty = 2
)
lines(
lowess(
fitted(modelo_final),
residuals(modelo_final)
),
lwd = 2
)##
## studentized Breusch-Pagan test
##
## data: modelo_final
## BP = 73.199, df = 5, p-value = 2.209e-14
##
## Breusch Pagan Test for Heteroskedasticity
## -----------------------------------------
## Ho: the variance is constant
## Ha: the variance is not constant
##
## Data
## --------------------------------------------
## Response : costo_siniestros
## Variables: fitted values of costo_siniestros
##
## Test Summary
## -------------------------------
## DF = 1
## Chi2 = 87.30031
## Prob > Chi2 = 9.323329e-21
##
## RESET test
##
## data: modelo_final
## RESET = 1.4575, df1 = 2, df2 = 592, p-value = 0.2336
Este conjunto de datos es de corte transversal.
Por ello el orden de las observaciones no posee necesariamente interpretación temporal.
En consecuencia, Durbin-Watson no sería indispensable en este ejemplo.
Sin embargo, para observar su sintaxis:
##
## Durbin-Watson test
##
## data: modelo_final
## DW = 2.0563, p-value = 0.755
## alternative hypothesis: true autocorrelation is greater than 0
Este resultado no debe interpretarse mecánicamente porque el orden de las pólizas no representa necesariamente tiempo.
## 1 2 3 4 5
## -0.7652724719 -0.8700587055 1.0583519273 -0.4938952177 -0.2437067599
## 6 7 8 9 10
## 1.2662671444 1.4059618626 -0.4393942982 -0.2361708626 0.8704671189
## 11 12 13 14 15
## -0.0362732317 2.2547698854 0.1157669947 -0.7649717240 -0.1831588824
## 16 17 18 19 20
## 0.0354096445 0.9543553637 0.0651390909 -0.6203468185 1.3517008350
## 21 22 23 24 25
## 0.2545824274 -1.1806310166 0.1561508761 0.3777955970 1.2028908324
## 26 27 28 29 30
## -2.0743467342 -0.7543862756 0.9339878669 0.1624425397 0.8508886069
## 31 32 33 34 35
## -0.1648285163 -1.0710158442 0.7794220821 -1.7812213528 1.1349100744
## 36 37 38 39 40
## 0.6085541402 -1.3323382909 -0.8462486402 -0.7440279594 -0.5120375734
## 41 42 43 44 45
## -0.1772742622 -0.3274816036 -0.4336029737 -0.9844961366 0.7314861460
## 46 47 48 49 50
## 0.0317932049 -0.8684657334 -0.1402141834 0.6724995621 -1.1185420878
## 51 52 53 54 55
## -0.6129380857 1.0176937716 -1.5159315589 0.4611492207 1.6528796409
## 56 57 58 59 60
## -0.0702606763 -0.5047998222 -1.3741154610 -0.2985074198 -0.7027839058
## 61 62 63 64 65
## 0.0256762174 -2.0058469801 0.3960625561 0.8574141403 -1.2966600702
## 66 67 68 69 70
## -0.1787559458 -0.0240539194 1.4897596958 -0.1570652738 0.2995077177
## 71 72 73 74 75
## -0.6194121007 0.0746662026 0.6901562512 1.7428512267 0.4154055953
## 76 77 78 79 80
## -0.4897841086 -1.1398566055 -1.1790680535 0.1132278126 0.0312709079
## 81 82 83 84 85
## 0.6837747678 0.2192303976 -0.2687716986 -0.0094645419 -0.9756731998
## 86 87 88 89 90
## 1.5854957620 -1.2092367319 1.2478755870 -1.1189569480 -0.9965448074
## 91 92 93 94 95
## -0.2790217995 -0.9911945742 -0.5289195680 -0.6197239693 0.5055788253
## 96 97 98 99 100
## 0.4659322738 -0.5766331703 -0.1542074604 0.1059264667 1.5524401104
## 101 102 103 104 105
## -1.0779198237 -0.6123038439 -0.8225762461 -0.2428339771 0.7363035410
## 106 107 108 109 110
## 1.8001383402 1.2128721813 -0.7658761969 0.3806689529 -0.1859917611
## 111 112 113 114 115
## -0.3022645148 -0.9638138009 1.5630478041 -0.3233829619 -1.2251696336
## 116 117 118 119 120
## -0.0406224336 -0.9581432419 0.5744299740 0.3714835557 0.2805421513
## 121 122 123 124 125
## -0.7666577334 2.3138491847 0.0571417767 0.1776178962 -0.9067728187
## 126 127 128 129 130
## 0.8619494231 -1.6073503555 -0.2735125436 -1.1328721568 0.6442778898
## 131 132 133 134 135
## 0.0015594313 0.1454985048 0.8901786256 -0.4079687067 0.4364798474
## 136 137 138 139 140
## -0.6270403721 0.3905879982 -0.4443540644 1.1518507031 0.6490707956
## 141 142 143 144 145
## 1.5026349731 2.2969989405 -0.6291985310 0.0294315879 -0.9488266345
## 146 147 148 149 150
## 0.2318167045 1.8583506343 1.6099682749 0.3426733373 -1.4887374235
## 151 152 153 154 155
## -0.3496075929 -1.1386995795 -0.1333179480 -1.8218174814 0.4687328039
## 156 157 158 159 160
## 1.6884407582 -1.5515060641 1.2945486148 -0.8692415420 2.4112599880
## 161 162 163 164 165
## 0.2849359475 -0.5302851975 -0.0339968611 -0.6902789844 -0.3511143883
## 166 167 168 169 170
## 1.7983434393 0.2170234176 -0.8647395885 -1.9635588471 0.1367938009
## 171 172 173 174 175
## 0.1254487118 -0.0390142745 0.8539044562 1.2846342963 -0.6304235903
## 176 177 178 179 180
## 1.8883797522 1.4329784743 -0.5400557205 0.0575154681 1.5484041719
## 181 182 183 184 185
## -0.7263428958 -1.3477480480 0.4089329305 1.3341400124 0.8492559402
## 186 187 188 189 190
## -0.9866775482 0.3748896371 0.6667022417 1.3531068380 0.8301948883
## 191 192 193 194 195
## -0.2155221209 0.0434593137 -0.0003538672 -0.2258844685 -0.0816588508
## 196 197 198 199 200
## -0.1276067559 1.7572996224 1.1462680811 0.8080983745 -1.4725108964
## 201 202 203 204 205
## 0.7274650884 -0.7376268644 0.5003220967 -3.0356853300 -0.4868398840
## 206 207 208 209 210
## -1.9425286315 -0.4271026243 -0.9867495640 1.1005635365 -2.9271121555
## 211 212 213 214 215
## -0.2671301263 -1.2212068331 -0.4174596377 -0.5479895946 -0.3825724761
## 216 217 218 219 220
## 0.9209525629 0.9084913479 -0.6174854551 1.5362585900 0.4375820491
## 221 222 223 224 225
## -1.1003262812 -0.2546041598 0.3311289171 -0.6071659739 -0.6391747214
## 226 227 228 229 230
## 0.2125822643 0.7607693999 0.3737220965 0.5474754856 -0.1135339527
## 231 232 233 234 235
## 0.3832178824 0.2013787626 -0.0968933820 0.1871788491 -0.7380481718
## 236 237 238 239 240
## -0.8026818823 0.9273174739 -1.5576940576 -0.4233524842 0.5647149919
## 241 242 243 244 245
## -0.6626297118 0.3529884625 0.1835652881 0.3252786013 -0.3860113924
## 246 247 248 249 250
## 1.1054416851 -0.5875141020 -0.7885808461 -1.1062135540 0.0998533513
## 251 252 253 254 255
## 0.4645894153 -0.5338452804 -1.7029121725 0.5274369903 0.2350729844
## 256 257 258 259 260
## 0.2577287062 0.1619844529 -0.0309038980 0.9455993621 0.8823851109
## 261 262 263 264 265
## -0.8392486430 -1.0155707891 -0.3111419782 -0.9668096728 -2.3289676443
## 266 267 268 269 270
## -0.6069983440 -1.4612539765 0.4049735970 -0.5122988172 0.2515945125
## 271 272 273 274 275
## 0.0503419183 0.2927330007 0.7068445528 -0.9104022236 1.1267571680
## 276 277 278 279 280
## -1.9952811015 0.3416745451 2.6095590418 0.8640259024 1.2998466039
## 281 282 283 284 285
## 0.5016673659 -0.3309167055 0.5659270603 -0.1117857753 0.8224031514
## 286 287 288 289 290
## -1.0796397005 -0.4623166901 0.2666116164 -0.3037515936 -0.3862538017
## 291 292 293 294 295
## -0.5639551842 -0.9110930165 -0.9402276383 1.4869268157 0.6081161966
## 296 297 298 299 300
## 0.0257307355 0.4953153541 0.0884681084 -1.3329332724 -0.6884361484
## 301 302 303 304 305
## -0.0649724868 0.8556830360 -0.1480326613 -2.7506918546 -0.3349139964
## 306 307 308 309 310
## 0.2423190841 0.8349274580 0.6116154357 -0.6414680706 1.0570026323
## 311 312 313 314 315
## -0.5957536592 0.4958795083 -0.8140869353 0.3050476834 0.5171907957
## 316 317 318 319 320
## -1.0032343918 -0.3379138769 0.1193058423 0.1733158732 0.4092038206
## 321 322 323 324 325
## 2.0357892566 0.7216884183 1.0546493539 -0.2279104872 1.1412060335
## 326 327 328 329 330
## 0.5910966638 -0.9291820360 1.3191390507 -0.7686259456 1.7148608710
## 331 332 333 334 335
## -0.4838217101 -0.3352063705 -1.1988596401 -1.5957149387 -2.3024279385
## 336 337 338 339 340
## 1.0249549763 0.7943939699 1.3526135320 2.4904678779 1.2169972329
## 341 342 343 344 345
## 0.7307212148 -0.5664917844 -0.1674696950 0.3323378419 -0.4110152596
## 346 347 348 349 350
## 0.0166100546 3.6400204783 -0.6115272405 0.6204763572 -0.3181563837
## 351 352 353 354 355
## -1.4063305810 0.4019978612 -0.8723045129 -0.3675472575 -0.2011694116
## 356 357 358 359 360
## 0.0485147780 1.0408819389 -0.3948375552 0.7985273459 -1.5852228909
## 361 362 363 364 365
## -0.3265893509 -0.5308465107 -0.2404364887 1.3365559811 0.6074193874
## 366 367 368 369 370
## -1.1381299132 0.9748459409 -0.5759766130 -0.2007166389 -0.9958673006
## 371 372 373 374 375
## -1.6409478447 -1.4338393289 1.5740451587 -1.1033338540 -0.7227634749
## 376 377 378 379 380
## 1.7467715005 0.3831228430 -1.9792428622 -0.2406931525 0.3165272115
## 381 382 383 384 385
## 0.8092687438 -0.9042422943 -1.6954851168 -0.4811917512 -1.6315118076
## 386 387 388 389 390
## -0.3845392566 -0.2637538434 -0.1635574824 -1.3357062255 0.1509951263
## 391 392 393 394 395
## 0.2589739928 0.3597232270 -0.2645340420 -0.2657510424 0.3445981525
## 396 397 398 399 400
## -0.1020909874 1.6627109140 -1.9160769160 -0.4894949826 1.3035313710
## 401 402 403 404 405
## -0.3347140171 -0.7795845636 0.1491994665 -0.4680004429 0.1853237571
## 406 407 408 409 410
## 0.4711675260 0.2133571277 -0.6822420637 -2.1264324042 2.8951445717
## 411 412 413 414 415
## 0.2721205047 -1.3315069149 1.4268304995 -0.6473549421 0.4115662148
## 416 417 418 419 420
## 2.3715021807 0.7291779069 0.1399955484 -1.8481115588 0.2373514358
## 421 422 423 424 425
## -0.4920828828 0.5098369857 -0.4315812693 0.0744326207 -0.7021027325
## 426 427 428 429 430
## 2.2967834238 -0.3297542465 0.8691940321 -1.1391760656 -0.0355115019
## 431 432 433 434 435
## -0.2339510160 -0.2823966471 -2.0603153476 3.0977069655 -0.2930540966
## 436 437 438 439 440
## 0.2111380965 0.3337406063 -0.7413134213 -0.0277980052 -1.4387890535
## 441 442 443 444 445
## -0.0579685810 -0.0706003866 0.4643899304 0.6145353103 0.9959624795
## 446 447 448 449 450
## 0.1102959812 0.4961753113 0.6224796000 -0.1154350553 -0.2256047757
## 451 452 453 454 455
## 0.8494842635 0.5336928041 2.0170115536 0.1416120469 -0.0077311409
## 456 457 458 459 460
## -0.1065439349 0.0337446321 1.3455893588 0.5149619307 -1.8207357787
## 461 462 463 464 465
## -2.0090646509 1.3483513858 0.6465909952 0.7766464926 0.1640142189
## 466 467 468 469 470
## -0.3350874655 0.2465806181 0.4628699134 1.1873418922 1.3588375991
## 471 472 473 474 475
## -0.5868963017 -0.7045807925 -0.2159976001 -0.4628580646 -0.6441622531
## 476 477 478 479 480
## -0.3573353179 0.3254384354 -0.1169747067 -0.7160772143 1.7083905842
## 481 482 483 484 485
## -1.2224570777 0.5710195627 0.5113629271 1.6247761116 0.7407393473
## 486 487 488 489 490
## 0.3500573244 -0.5863126791 0.2342665371 -0.5512637712 0.3933481373
## 491 492 493 494 495
## 1.6497732374 -0.0501430035 -1.1027428431 0.0434125779 2.1189013225
## 496 497 498 499 500
## -0.7593533901 1.0251773461 -0.5355366239 -1.5082332611 -0.2367377577
## 501 502 503 504 505
## 1.1375004755 1.2415156820 -0.4123259727 2.1447244030 -1.0132266983
## 506 507 508 509 510
## -0.5918630579 1.4829785759 -0.3341336681 0.0528748291 -2.5945591500
## 511 512 513 514 515
## -0.5357141752 0.3527255627 -0.3098069105 0.7548105286 0.3988138619
## 516 517 518 519 520
## -1.0888656041 -0.6818505688 1.0312275334 1.0089563656 -0.7469462279
## 521 522 523 524 525
## 0.0669717431 0.1980944070 -0.3944243887 1.0068582650 -0.1424915532
## 526 527 528 529 530
## 0.2526293833 2.1534540637 -1.3731397585 0.8157278098 0.1085998072
## 531 532 533 534 535
## -0.2086720462 0.8237434207 0.2297498063 -0.7518508581 -1.1993494326
## 536 537 538 539 540
## -0.1718960700 0.5475278048 0.5664253615 -3.1713849642 0.2995646632
## 541 542 543 544 545
## -0.8253757805 0.9144870863 -0.7818726873 1.9567608376 -0.1446173272
## 546 547 548 549 550
## 0.8434336462 0.5187699060 -0.3029303236 -1.0219541348 0.5170454261
## 551 552 553 554 555
## -2.1844095670 -0.3554596720 0.7579413134 0.3011816330 0.7770252378
## 556 557 558 559 560
## 0.6844834925 -0.9654705949 0.2593093854 0.6372871389 -0.2706673567
## 561 562 563 564 565
## -0.1392611841 0.4545170848 -0.4067597334 -0.0887358682 -1.2935707935
## 566 567 568 569 570
## -1.1716674027 1.4359247377 0.6553226293 2.8046921645 0.2195467230
## 571 572 573 574 575
## -0.2442997499 -0.0974909183 -1.2560306457 -1.9263999139 -0.6150716058
## 576 577 578 579 580
## 3.7180049528 -0.9626171062 -0.8178164870 -1.1638014758 -0.3262101369
## 581 582 583 584 585
## -1.4110424356 1.2670040484 -0.9527971880 -1.1379603129 0.0837021628
## 586 587 588 589 590
## 0.5948452156 0.0728472909 -3.0501110961 -1.1148358873 0.3716729468
## 591 592 593 594 595
## 1.1709723760 0.1681261741 0.1207020950 0.1270985676 1.1465629758
## 596 597 598 599 600
## -0.5681623629 -0.6685503324 -0.2963544058 0.4513188161 0.2504380299
Observaciones con:
\[ |r_i|>2 \]
## 12 26 62 122 142 160 204 210 265 278 304 321 335 339 347 409 410 416 426 433
## 12 26 62 122 142 160 204 210 265 278 304 321 335 339 347 409 410 416 426 433
## 434 453 461 495 504 510 527 539 551 569 576 588
## 434 453 461 495 504 510 527 539 551 569 576 588
## 1 2 3 4 5 6
## 0.010341299 0.008219393 0.007078211 0.004774700 0.006716056 0.008308819
## 7 8 9 10 11 12
## 0.011607048 0.013031440 0.009310485 0.005029197 0.008195828 0.009176992
## 13 14 15 16 17 18
## 0.009298063 0.012469883 0.004389717 0.007252448 0.010469550 0.011048427
## 19 20 21 22 23 24
## 0.011714582 0.009314860 0.010870029 0.007553305 0.009793996 0.008657276
## 25 26 27 28 29 30
## 0.003624276 0.015531636 0.005521708 0.015879480 0.006765747 0.011848084
## 31 32 33 34 35 36
## 0.010719688 0.008998006 0.014990840 0.010264040 0.006013938 0.009676623
## 37 38 39 40 41 42
## 0.011353067 0.009179363 0.011448897 0.006059534 0.011590485 0.012314063
## 43 44 45 46 47 48
## 0.014426963 0.006404358 0.005645564 0.004323381 0.053516005 0.011351898
## 49 50 51 52 53 54
## 0.011819533 0.010926138 0.007234683 0.006044898 0.010878139 0.005766697
## 55 56 57 58 59 60
## 0.013656220 0.007782807 0.011047987 0.009485355 0.017194774 0.012598865
## 61 62 63 64 65 66
## 0.008997535 0.015226980 0.006692929 0.035411333 0.007148534 0.012729896
## 67 68 69 70 71 72
## 0.011760737 0.014006447 0.006350429 0.011788823 0.009627454 0.011282759
## 73 74 75 76 77 78
## 0.011015170 0.006386245 0.008463044 0.012857921 0.008592540 0.003212275
## 79 80 81 82 83 84
## 0.010271746 0.013276245 0.008445859 0.008435990 0.008357479 0.008699770
## 85 86 87 88 89 90
## 0.005630015 0.012684610 0.005918923 0.010018995 0.009638249 0.015840862
## 91 92 93 94 95 96
## 0.002698963 0.011642786 0.013988526 0.006378246 0.008393997 0.006788376
## 97 98 99 100 101 102
## 0.010553454 0.010589220 0.007392149 0.010300711 0.012039979 0.007793241
## 103 104 105 106 107 108
## 0.007306507 0.010542638 0.012903206 0.013430807 0.004248361 0.022402275
## 109 110 111 112 113 114
## 0.005593574 0.007889116 0.008281265 0.007852253 0.005780372 0.008233504
## 115 116 117 118 119 120
## 0.011251805 0.003303941 0.015936895 0.010883715 0.005003826 0.009532019
## 121 122 123 124 125 126
## 0.012956111 0.012179130 0.012753830 0.012717403 0.004663849 0.008434128
## 127 128 129 130 131 132
## 0.012019556 0.010082617 0.007219526 0.005021413 0.007835197 0.011772032
## 133 134 135 136 137 138
## 0.016563672 0.007079547 0.007305612 0.014973917 0.009498655 0.006724023
## 139 140 141 142 143 144
## 0.008250787 0.007722071 0.007083381 0.009981240 0.010313686 0.013172941
## 145 146 147 148 149 150
## 0.011748717 0.015783400 0.004637737 0.011435246 0.007571012 0.009988244
## 151 152 153 154 155 156
## 0.010103983 0.005503322 0.005339492 0.006136593 0.017466947 0.008387613
## 157 158 159 160 161 162
## 0.012025110 0.008864103 0.006130016 0.010652163 0.006772741 0.015266389
## 163 164 165 166 167 168
## 0.006151922 0.006733005 0.009642222 0.012870583 0.008676380 0.009003681
## 169 170 171 172 173 174
## 0.003825119 0.006063614 0.011760045 0.008655732 0.009749286 0.008558172
## 175 176 177 178 179 180
## 0.007152323 0.014412167 0.011969417 0.020452717 0.016290806 0.011117596
## 181 182 183 184 185 186
## 0.009293279 0.005169513 0.009652876 0.006537752 0.006745526 0.007929197
## 187 188 189 190 191 192
## 0.006625057 0.006563919 0.010037347 0.009101592 0.014297570 0.016967661
## 193 194 195 196 197 198
## 0.010039644 0.008150421 0.008859171 0.004430491 0.014950360 0.007021115
## 199 200 201 202 203 204
## 0.007381017 0.011870838 0.007308364 0.008137355 0.009618862 0.012443480
## 205 206 207 208 209 210
## 0.021075020 0.010876785 0.007942785 0.007733229 0.006107080 0.010072627
## 211 212 213 214 215 216
## 0.013838512 0.012783733 0.005812995 0.006064405 0.007089362 0.012294520
## 217 218 219 220 221 222
## 0.012933528 0.012369128 0.013839704 0.012395092 0.008787410 0.009245228
## 223 224 225 226 227 228
## 0.011486401 0.006114663 0.013873772 0.012234321 0.008416764 0.004774930
## 229 230 231 232 233 234
## 0.010315568 0.006422718 0.009575961 0.011034033 0.012012862 0.009343690
## 235 236 237 238 239 240
## 0.004321273 0.010005198 0.012498041 0.008030221 0.010473334 0.007411512
## 241 242 243 244 245 246
## 0.008294122 0.003345254 0.008755735 0.008213431 0.008391260 0.005053827
## 247 248 249 250 251 252
## 0.007979939 0.006556254 0.010825615 0.009508152 0.004455384 0.010489684
## 253 254 255 256 257 258
## 0.013762412 0.003900623 0.008082886 0.007455145 0.004471296 0.010153379
## 259 260 261 262 263 264
## 0.008690774 0.023995468 0.014523089 0.015137190 0.015056789 0.008491421
## 265 266 267 268 269 270
## 0.020719414 0.012826951 0.008148664 0.011232951 0.015072947 0.008681550
## 271 272 273 274 275 276
## 0.007094845 0.020029068 0.010099962 0.006515066 0.012889545 0.008745684
## 277 278 279 280 281 282
## 0.011451991 0.014178265 0.015814221 0.006895948 0.005497954 0.010948442
## 283 284 285 286 287 288
## 0.011041673 0.007482215 0.011694684 0.013413401 0.010221806 0.013024732
## 289 290 291 292 293 294
## 0.004317708 0.011311378 0.007336288 0.009616852 0.009284369 0.008927753
## 295 296 297 298 299 300
## 0.010343621 0.007135325 0.011469279 0.014451979 0.006147605 0.008431963
## 301 302 303 304 305 306
## 0.004963071 0.008610667 0.014439799 0.012166975 0.008255850 0.013089672
## 307 308 309 310 311 312
## 0.009064806 0.008788214 0.012876609 0.007401757 0.003799340 0.008884151
## 313 314 315 316 317 318
## 0.008198079 0.012221783 0.011771006 0.010816903 0.011373477 0.016308288
## 319 320 321 322 323 324
## 0.008789094 0.010549244 0.009311223 0.007635273 0.005351347 0.005498161
## 325 326 327 328 329 330
## 0.007376810 0.010808678 0.007570567 0.016057855 0.009950979 0.006630638
## 331 332 333 334 335 336
## 0.011865849 0.008317635 0.006414457 0.014507116 0.009068223 0.007930534
## 337 338 339 340 341 342
## 0.013946926 0.011593947 0.007664127 0.005803822 0.013538378 0.010040596
## 343 344 345 346 347 348
## 0.028459378 0.005018581 0.012845906 0.023115182 0.009533704 0.007450657
## 349 350 351 352 353 354
## 0.008124627 0.014370144 0.005330070 0.004544480 0.008550994 0.013377635
## 355 356 357 358 359 360
## 0.009674188 0.009876164 0.012614071 0.007883471 0.022079205 0.007580180
## 361 362 363 364 365 366
## 0.012938351 0.004679024 0.008786671 0.020833318 0.011919510 0.007211068
## 367 368 369 370 371 372
## 0.005904412 0.006335073 0.006297239 0.011553400 0.006388945 0.008089142
## 373 374 375 376 377 378
## 0.010715453 0.009328171 0.012277785 0.004330626 0.008465956 0.012881976
## 379 380 381 382 383 384
## 0.007211689 0.009595586 0.015307813 0.005887222 0.007259299 0.007138036
## 385 386 387 388 389 390
## 0.006760569 0.006597084 0.011300444 0.006981083 0.011776416 0.006337141
## 391 392 393 394 395 396
## 0.013736943 0.022377885 0.007788377 0.007083571 0.008843056 0.008547713
## 397 398 399 400 401 402
## 0.011600440 0.008384617 0.008978140 0.008413081 0.007876946 0.015886967
## 403 404 405 406 407 408
## 0.004152306 0.006449119 0.005799188 0.010229916 0.014593403 0.005187768
## 409 410 411 412 413 414
## 0.011962625 0.011104915 0.013918394 0.013256467 0.006937863 0.011935492
## 415 416 417 418 419 420
## 0.008735200 0.010731022 0.004799985 0.011521985 0.007476999 0.012428590
## 421 422 423 424 425 426
## 0.010750352 0.009203686 0.017917450 0.007226152 0.013415584 0.009103666
## 427 428 429 430 431 432
## 0.008596377 0.008522361 0.005219479 0.017843363 0.013415808 0.010563076
## 433 434 435 436 437 438
## 0.017255331 0.008992676 0.011996822 0.012111894 0.010922370 0.006881525
## 439 440 441 442 443 444
## 0.006139613 0.005008034 0.013519751 0.006913408 0.012103490 0.004678709
## 445 446 447 448 449 450
## 0.006409321 0.009852268 0.002235322 0.019054217 0.004567955 0.010677467
## 451 452 453 454 455 456
## 0.008640766 0.009173290 0.006462372 0.009627562 0.008748541 0.007305209
## 457 458 459 460 461 462
## 0.014571001 0.008691479 0.009567606 0.010459821 0.013000816 0.004011949
## 463 464 465 466 467 468
## 0.007331960 0.021861417 0.006548454 0.014276089 0.004755303 0.008098559
## 469 470 471 472 473 474
## 0.018682329 0.005746649 0.009948719 0.009001034 0.011800847 0.019283889
## 475 476 477 478 479 480
## 0.007032655 0.007657559 0.019210671 0.011837368 0.013078785 0.009584079
## 481 482 483 484 485 486
## 0.005228614 0.013069859 0.011801479 0.011608329 0.011765416 0.013846255
## 487 488 489 490 491 492
## 0.012151526 0.010979949 0.004275508 0.014043603 0.011266968 0.009442329
## 493 494 495 496 497 498
## 0.010211152 0.004827802 0.010869733 0.012127679 0.023307466 0.007453991
## 499 500 501 502 503 504
## 0.012680588 0.006789367 0.008822586 0.012770795 0.011628895 0.028785696
## 505 506 507 508 509 510
## 0.015202620 0.008350024 0.007876051 0.009111257 0.010332347 0.005139181
## 511 512 513 514 515 516
## 0.008149415 0.010296827 0.005701674 0.008466103 0.007686839 0.010326368
## 517 518 519 520 521 522
## 0.008597846 0.007188769 0.011332771 0.007750745 0.010948800 0.015007389
## 523 524 525 526 527 528
## 0.004128440 0.010364633 0.008567545 0.010414624 0.016947885 0.008219925
## 529 530 531 532 533 534
## 0.006663683 0.009677092 0.008845058 0.008673042 0.005492481 0.012762284
## 535 536 537 538 539 540
## 0.011124612 0.006689973 0.008659474 0.013198025 0.006985683 0.010362200
## 541 542 543 544 545 546
## 0.019822261 0.008932272 0.018944014 0.009820815 0.010520977 0.009287515
## 547 548 549 550 551 552
## 0.004797820 0.006437960 0.015582354 0.007373007 0.005667997 0.008417693
## 553 554 555 556 557 558
## 0.004277759 0.012914072 0.008293681 0.008294132 0.012853181 0.012967619
## 559 560 561 562 563 564
## 0.008441638 0.013712074 0.013461131 0.009096795 0.005256302 0.007423221
## 565 566 567 568 569 570
## 0.010777542 0.010828378 0.011761410 0.010556761 0.009636976 0.012208288
## 571 572 573 574 575 576
## 0.010915327 0.006984966 0.014904412 0.012961150 0.009313178 0.009052949
## 577 578 579 580 581 582
## 0.008646182 0.003635166 0.009419889 0.008943063 0.007077851 0.007256580
## 583 584 585 586 587 588
## 0.009903874 0.008440538 0.009678476 0.014908046 0.006594403 0.004056550
## 589 590 591 592 593 594
## 0.017297949 0.007578818 0.010336459 0.006664019 0.006838076 0.009699211
## 595 596 597 598 599 600
## 0.014703350 0.012293375 0.008423129 0.007026947 0.003393571 0.006830394
Definimos:
n_final <- nobs(
modelo_final
)
p_final <- length(
coef(modelo_final)
)
umbral_leverage_final <-
2 * p_final / n_final
umbral_leverage_final## [1] 0.02
Identificamos:
## 47 64 108 178 205 260 265 272 343 346 359 364 392 464 497 504
## 47 64 108 178 205 260 265 272 343 346 359 364 392 464 497 504
## 1 2 3 4 5 6
## 1.020642e-03 1.046039e-03 1.330545e-03 1.952973e-04 6.703677e-05 2.236770e-03
## 7 8 9 10 11 12
## 3.862553e-03 4.254388e-04 8.750382e-05 6.385854e-04 1.815177e-06 7.794383e-03
## 13 14 15 16 17 18
## 2.099857e-05 1.232409e-03 2.469216e-05 1.529215e-06 1.606324e-03 7.913820e-06
## 19 20 21 22 23 24
## 7.610484e-04 2.859212e-03 1.188960e-04 1.766929e-03 4.026112e-05 2.080402e-04
## 25 26 27 28 29 30
## 8.765418e-04 1.125171e-02 5.270231e-04 2.346457e-03 3.000715e-05 1.447506e-03
## 31 32 33 34 35 36
## 4.914599e-05 1.735421e-03 1.541938e-03 5.463839e-03 1.298195e-03 6.037464e-04
## 37 38 39 40 41 42
## 3.392996e-03 1.106292e-03 1.069346e-03 2.667295e-04 6.151961e-05 2.231816e-04
## 43 44 45 46 47 48
## 4.593180e-04 1.041274e-03 5.067190e-04 7.327463e-07 7.110567e-03 3.768571e-05
## 49 50 51 52 53 54
## 9.023967e-04 2.302543e-03 4.567847e-04 1.049734e-03 4.203052e-03 2.058480e-04
## 55 56 57 58 59 60
## 6.285921e-03 6.464442e-06 4.750510e-04 3.009116e-03 2.602283e-04 1.051236e-03
## 61 62 63 64 65 66
## 9.992885e-07 1.031614e-02 1.764111e-04 4.500117e-03 2.015282e-03 6.878076e-05
## 67 68 69 70 71 72
## 1.149540e-06 5.243780e-03 2.632041e-05 1.786288e-04 6.222599e-04 1.062106e-05
## 73 74 75 76 77 78
## 8.849694e-04 3.242726e-03 2.458196e-04 5.214412e-04 1.875857e-03 7.461933e-04
## 79 80 81 82 83 84
## 2.221292e-05 2.196547e-06 6.643421e-04 6.825935e-05 1.016283e-04 1.312448e-07
## 85 86 87 88 89 90
## 8.983679e-04 5.369017e-03 1.449955e-03 2.624106e-03 2.029998e-03 2.664164e-03
## 91 92 93 94 95 96
## 3.516984e-05 1.928956e-03 6.622850e-04 4.113164e-04 3.610778e-04 2.476231e-04
## 97 98 99 100 101 102
## 5.917505e-04 4.248750e-05 1.395000e-05 4.170736e-03 2.359335e-03 4.913103e-04
## 103 104 105 106 107 108
## 8.304858e-04 1.048838e-04 1.182049e-03 7.324872e-03 1.045213e-03 2.241817e-03
## 109 110 111 112 113 114
## 1.360488e-04 4.592093e-05 1.273492e-04 1.225476e-03 2.361636e-03 1.449150e-04
## 115 116 117 118 119 120
## 2.844537e-03 9.132310e-07 2.478280e-03 6.058190e-04 1.158349e-04 1.264339e-04
## 121 122 123 124 125 126
## 1.286742e-03 1.092157e-02 7.042077e-06 6.784030e-05 6.423185e-04 1.053705e-03
## 127 128 129 130 131 132
## 5.224607e-03 1.271905e-04 1.554744e-03 3.494904e-04 3.206115e-09 4.209944e-05
## 133 134 135 136 137 138
## 2.225180e-03 1.980630e-04 2.339971e-04 9.971749e-04 2.441820e-04 2.230763e-04
## 139 140 141 142 143 144
## 1.838636e-03 5.469614e-04 2.678951e-03 8.802300e-03 6.883073e-04 1.930407e-06
## 145 146 147 148 149 150
## 1.784097e-03 1.438601e-04 2.670785e-03 4.983809e-03 1.495236e-04 3.719164e-03
## 151 152 153 154 155 156
## 2.082360e-04 1.195286e-03 1.592831e-05 3.402255e-03 6.518387e-04 4.006505e-03
## 157 158 159 160 161 162
## 4.871596e-03 2.495130e-03 7.770347e-04 1.034952e-02 9.241264e-05 7.274635e-04
## 163 164 165 166 167 168
## 1.194395e-06 5.387955e-04 2.003422e-04 7.001447e-03 6.881488e-05 1.132797e-03
## 169 170 171 172 173 174
## 2.455631e-03 1.905779e-05 3.126425e-05 2.218737e-06 1.196997e-03 2.371627e-03
## 175 176 177 178 179 180
## 4.776601e-04 8.653451e-03 4.138674e-03 1.016178e-03 9.145832e-06 4.481909e-03
## 181 182 183 184 185 186
## 8.254705e-04 1.570978e-03 2.720392e-04 1.949659e-03 8.167424e-04 1.296896e-03
## 187 188 189 190 191 192
## 1.564447e-04 4.899392e-04 3.089626e-03 1.055661e-03 1.124726e-04 5.442507e-06
## 193 194 195 196 197 198
## 2.120126e-10 6.999227e-05 9.950384e-06 1.209752e-05 7.784127e-03 1.547596e-03
## 199 200 201 202 203 204
## 8.097755e-04 4.332914e-03 6.498651e-04 7.445389e-04 4.057120e-04 1.908872e-02
## 205 206 207 208 209 210
## 8.515259e-04 6.883522e-03 2.437516e-04 1.264778e-03 1.239991e-03 1.434725e-02
## 211 212 213 214 215 216
## 1.671534e-04 3.215981e-03 1.700645e-04 3.057280e-04 1.744206e-04 1.760023e-03
## 217 218 219 220 221 222
## 1.802971e-03 7.967081e-04 5.507613e-03 4.010752e-04 1.788265e-03 1.009754e-04
## 223 224 225 226 227 228
## 2.126649e-04 3.784092e-04 9.589205e-04 9.343883e-05 8.193678e-04 1.118463e-04
## 229 230 231 232 233 234
## 5.212989e-04 1.391041e-05 2.369876e-04 7.553202e-05 1.905711e-05 5.516502e-05
## 235 236 237 238 239 240
## 3.943153e-04 1.085897e-03 1.814312e-03 3.265882e-03 3.166000e-04 3.973226e-04
## 241 242 243 244 245 246
## 6.126161e-04 6.980631e-05 4.968770e-05 1.462583e-04 2.104546e-04 1.034139e-03
## 247 248 249 250 251 252
## 4.632799e-04 6.844319e-04 2.231223e-03 1.597878e-05 1.612076e-04 5.041325e-04
## 253 254 255 256 257 258
## 6.722942e-03 1.817813e-04 7.516862e-05 8.328435e-05 1.967377e-05 1.635494e-06
## 259 260 261 262 263 264
## 1.306742e-03 3.191570e-03 1.730847e-03 2.641896e-03 2.470290e-04 1.334327e-03
## 265 266 267 268 269 270
## 1.898556e-02 7.987593e-04 2.918171e-03 3.109666e-04 6.702382e-04 9.253809e-05
## 271 272 273 274 275 276
## 3.023245e-06 2.923537e-04 8.503368e-04 9.061458e-04 2.761749e-03 5.824940e-03
## 277 278 279 280 281 282
## 2.257374e-04 1.616518e-02 2.000131e-03 1.953117e-03 2.321792e-04 2.023350e-04
## 283 284 285 286 287 288
## 5.966557e-04 1.572665e-05 1.334604e-03 2.640518e-03 3.683773e-04 1.565846e-04
## 289 290 291 292 293 294
## 6.678556e-05 2.848871e-04 3.922031e-04 1.343780e-03 1.381030e-03 3.312686e-03
## 295 296 297 298 299 300
## 6.448684e-04 7.943430e-07 4.750184e-04 1.916010e-05 1.829288e-03 6.723061e-04
## 301 302 303 304 305 306
## 3.515181e-06 1.060384e-03 5.359910e-05 1.536233e-02 1.558573e-04 1.300061e-04
## 307 308 309 310 311 312
## 1.063362e-03 5.533472e-04 8.954872e-04 1.388278e-03 2.258476e-04 3.678276e-04
## 313 314 315 316 317 318
## 9.135327e-04 1.921865e-04 5.316701e-04 1.834320e-03 2.192653e-04 3.939516e-05
## 319 320 321 322 323 324
## 4.446448e-05 2.979644e-04 6.457894e-03 6.684238e-04 9.971862e-04 4.793834e-05
## 325 326 327 328 329 330
## 1.612278e-03 6.369920e-04 1.097941e-03 4.727234e-03 9.903467e-04 3.260877e-03
## 331 332 333 334 335 336
## 4.690971e-04 1.573077e-04 1.545327e-03 6.231002e-03 8.027233e-03 1.399528e-03
## 337 338 339 340 341 342
## 1.488568e-03 3.571791e-03 7.914574e-03 1.439854e-03 1.222305e-03 5.430939e-04
## 343 344 345 346 347 348
## 1.371503e-04 9.298762e-05 3.669040e-04 1.089874e-06 2.082635e-02 4.683611e-04
## 349 350 351 352 353 354
## 5.261329e-04 2.463400e-04 1.763450e-03 1.231323e-04 1.094224e-03 3.057288e-04
## 355 356 357 358 359 360
## 6.599502e-05 3.919455e-06 2.306530e-03 2.067560e-04 2.400895e-03 3.190867e-03
## 361 362 363 364 365 366
## 2.333679e-04 2.210570e-04 8.554530e-05 6.326308e-03 7.425979e-04 1.567325e-03
## 367 368 369 370 371 372
## 9.408178e-04 3.529059e-04 4.261980e-05 1.932032e-03 2.877499e-03 2.789383e-03
## 373 374 375 376 377 378
## 4.461629e-03 1.909723e-03 1.083118e-03 2.204242e-03 2.091787e-04 8.478764e-03
## 379 380 381 382 383 384
## 7.024993e-05 1.620273e-04 1.697850e-03 8.072843e-04 3.492425e-03 2.778031e-04
## 385 386 387 388 389 390
## 3.011239e-03 1.639005e-04 1.327267e-04 3.139547e-05 3.538797e-03 2.427415e-05
## 391 392 393 394 395 396
## 1.559341e-04 4.943912e-04 9.169276e-05 8.410431e-05 1.768395e-04 1.500119e-05
## 397 398 399 400 401 402
## 5.391827e-03 5.150695e-03 3.622469e-04 2.399966e-03 1.484700e-04 1.636282e-03
## 403 404 405 406 407 408
## 1.549513e-05 2.372591e-04 3.344341e-05 3.829185e-04 1.125389e-04 4.049078e-04
## 409 410 411 412 413 414
## 9.070637e-03 1.549496e-02 1.744717e-04 3.964554e-03 2.366389e-03 8.445273e-04
## 415 416 417 418 419 420
## 2.491260e-04 1.008916e-02 4.277478e-04 3.813774e-05 4.270998e-03 1.183522e-04
## 421 422 423 424 425 426
## 4.391334e-04 4.029306e-04 5.671494e-04 6.732244e-06 1.118140e-03 8.019778e-03
## 427 428 429 430 431 432
## 1.573789e-04 1.082774e-03 1.134260e-03 3.824843e-06 1.242433e-04 1.421162e-04
## 433 434 435 436 437 438
## 1.235471e-02 1.430546e-02 1.740689e-04 9.124002e-05 2.053069e-04 6.351343e-04
## 439 440 441 442 443 444
## 7.969349e-07 1.733441e-03 7.688537e-06 5.792900e-06 4.409480e-04 2.961832e-04
## 445 446 447 448 449 450
## 1.066461e-03 2.020818e-05 9.204126e-05 1.255721e-03 1.020837e-05 9.170017e-05
## 451 452 453 454 455 456
## 1.048779e-03 4.400298e-04 4.387686e-03 3.254498e-05 8.806826e-08 1.394590e-05
## 457 458 459 460 461 462
## 2.810950e-06 2.642204e-03 4.274792e-04 5.817603e-03 8.816091e-03 1.218873e-03
## 463 464 465 466 467 468
## 5.151691e-04 2.248349e-03 2.960165e-05 2.714367e-04 4.849558e-05 2.919314e-04
## 469 470 471 472 473 474
## 4.470151e-03 1.776164e-03 5.775114e-04 7.521386e-04 9.300641e-05 7.030247e-04
## 475 476 477 478 479 480
## 4.902884e-04 1.644628e-04 3.462641e-04 2.736410e-05 1.133469e-03 4.691971e-03
## 481 482 483 484 485 486
## 1.308031e-03 7.204905e-04 5.211224e-04 5.153225e-03 1.089574e-03 2.871817e-04
## 487 488 489 490 491 492
## 7.055501e-04 1.017082e-04 2.177336e-04 3.678258e-04 5.154283e-03 4.001278e-06
## 493 494 495 496 497 498
## 2.090121e-03 1.526376e-06 8.175072e-03 1.180655e-03 4.179715e-03 3.594074e-04
## 499 500 501 502 503 504
## 4.858883e-03 6.395322e-05 1.918588e-03 3.320148e-03 3.338534e-04 2.258548e-02
## 505 506 507 508 509 510
## 2.641278e-03 4.921481e-04 2.903924e-03 1.713534e-04 4.872883e-06 5.740330e-03
## 511 512 513 514 515 516
## 3.934747e-04 2.160537e-04 9.187093e-05 8.113632e-04 2.056381e-04 2.061186e-03
## 517 518 519 520 521 522
## 6.726023e-04 1.283214e-03 1.944761e-03 7.268980e-04 8.289115e-06 9.980869e-05
## 523 524 525 526 527 528
## 1.076408e-04 1.769514e-03 2.929120e-05 1.121222e-04 1.324365e-02 2.600661e-03
## 529 530 531 532 533 534
## 7.443925e-04 1.923969e-05 6.486886e-05 9.899706e-04 4.866454e-05 1.218812e-03
## 535 536 537 538 539 540
## 2.695027e-03 3.322234e-05 4.369603e-04 7.159949e-04 1.161523e-02 1.568453e-04
## 541 542 543 544 545 546
## 2.297384e-03 1.256557e-03 1.968717e-03 6.299333e-03 3.712405e-05 1.112022e-03
## 547 548 549 550 551 552
## 2.165039e-04 9.925493e-05 2.755071e-03 3.313605e-04 4.504703e-03 1.790329e-04
## 553 554 555 556 557 558
## 4.116321e-04 1.980976e-04 8.421182e-04 6.536595e-04 2.023044e-03 1.474676e-04
## 559 560 561 562 563 564
## 5.768487e-04 1.700192e-04 4.417676e-05 3.165096e-04 1.459165e-04 9.831084e-06
## 565 566 567 568 569 570
## 3.035029e-03 2.503091e-03 4.082573e-03 7.643922e-04 1.261171e-02 9.944627e-05
## 571 572 573 574 575 576
## 1.099477e-04 1.116119e-05 3.974327e-03 8.084875e-03 5.933574e-04 2.060309e-02
## 577 578 579 580 581 582
## 1.347117e-03 4.069196e-04 2.145377e-03 1.602821e-04 2.361517e-03 1.953698e-03
## 583 584 585 586 587 588
## 1.513718e-03 1.836279e-03 1.143088e-05 8.934564e-04 5.881015e-06 6.228358e-03
## 589 590 591 592 593 594
## 3.644734e-03 1.760787e-04 2.385366e-03 3.165706e-05 1.674609e-05 2.641309e-05
## 595 596 597 598 599 600
## 3.267864e-03 6.703973e-04 6.333861e-04 1.037452e-04 1.157528e-04 7.200414e-05
Umbral exploratorio:
## [1] 0.006666667
Identificamos:
## 12 26 47 62 106 122 142 160 166 176 197 204 206 210 253 265 278 304 335 339
## 12 26 47 62 106 122 142 160 166 176 197 204 206 210 253 265 278 304 335 339
## 347 378 409 410 416 426 433 434 461 495 504 527 539 569 574 576
## 347 378 409 410 416 426 433 434 461 495 504 527 539 569 574 576
Gráfico mediante olsrr:
El paquete olsrr permite visualizar varios diagnósticos
conjuntamente.
R también genera cuatro gráficos clásicos de diagnóstico.
Los gráficos corresponden principalmente a:
| Supuesto o problema | Método | Paquete | Función |
|---|---|---|---|
| Multicolinealidad | VIF | car |
vif() |
| Multicolinealidad | VIF y tolerancia | olsrr |
ols_vif_tol() |
| Multicolinealidad | VIF | performance |
check_collinearity() |
| Multicolinealidad | Índice de condición | olsrr |
ols_eigen_cindex() |
| Normalidad | Jarque-Bera | tseries |
jarque.bera.test() |
| Normalidad | Jarque-Bera | moments |
jarque.test() |
| Normalidad | Shapiro-Wilk | stats |
shapiro.test() |
| Normalidad | Lilliefors | nortest |
lillie.test() |
| Normalidad | Anderson-Darling | nortest |
ad.test() |
| Normalidad | Conjunto de pruebas | olsrr |
ols_test_normality() |
| Homocedasticidad | Breusch-Pagan | lmtest |
bptest() |
| Homocedasticidad | Breusch-Pagan | olsrr |
ols_test_breusch_pagan() |
| Homocedasticidad | White | skedastic |
white() |
| Homocedasticidad | Goldfeld-Quandt | lmtest |
gqtest() |
| Linealidad | Component + Residual | car |
crPlots() |
| Linealidad | RESET | lmtest |
resettest() |
| Linealidad | Rainbow | lmtest |
raintest() |
| Independencia | Durbin-Watson | lmtest |
dwtest() |
| Independencia | Durbin-Watson | car |
durbinWatsonTest() |
| Independencia | Breusch-Godfrey | lmtest |
bgtest() |
| Atípicos | Residuos estudentizados | stats |
rstudent() |
| Atípicos | Bonferroni | car |
outlierTest() |
| Atípicos | Bonferroni | olsrr |
ols_test_outlier() |
| Leverage | Hat values | stats |
hatvalues() |
| Influencia | Cook | stats |
cooks.distance() |
| Influencia | Cook | olsrr |
ols_plot_cooksd_chart() |
| Influencia | Gráfico integrado | car |
influencePlot() |
Durante toda la clase utilizamos:
\[ \alpha=0.05 \]
La regla general es:
\[ p\leq\alpha \Rightarrow \text{rechazar }H_0 \]
mientras que:
\[ p>\alpha \Rightarrow \text{no rechazar }H_0 \]
Debe evitarse escribir:
Se acepta \(H_0\).
Es preferible expresar:
No existe evidencia estadística suficiente para rechazar la hipótesis nula al nivel de significancia establecido.
| Aspecto | Pregunta fundamental | Evidencia principal |
|---|---|---|
| Multicolinealidad | ¿Los predictores contienen información redundante? | VIF, tolerancia, índice de condición |
| Normalidad | ¿Los residuos son aproximadamente normales? | Q-Q plot, Jarque-Bera, Shapiro-Wilk |
| Homocedasticidad | ¿La varianza de los errores es constante? | Residuos vs ajustados, Breusch-Pagan, White |
| Linealidad | ¿La forma funcional del modelo es adecuada? | Residuos, C+R plots, RESET |
| Independencia | ¿Los errores se encuentran correlacionados? | Gráfico temporal, ACF, Durbin-Watson |
| Atípicos | ¿Existen observaciones mal explicadas? | Residuos estudentizados |
| Leverage | ¿Existen valores inusuales de los predictores? | Hat values |
| Influencia | ¿Una observación cambia sustancialmente el modelo? | Cook, influence plot |
Supongamos que un modelo produce:
Una posible interpretación sería:
Los factores de inflación de la varianza no evidencian problemas relevantes de multicolinealidad. Asimismo, al nivel de significancia de 0.05 no existe evidencia estadística suficiente para rechazar la normalidad de los residuos. Sin embargo, la prueba de Breusch-Pagan resulta estadísticamente significativa, por lo que se rechaza la hipótesis de homocedasticidad y se concluye que existe evidencia de varianza no constante. En consecuencia, antes de realizar inferencias definitivas sobre los coeficientes debe analizarse la estructura de la heterocedasticidad y considerar una especificación o procedimiento de estimación adecuado.
Observe que una buena conclusión:
El supuesto se refiere fundamentalmente a los errores del modelo y, operacionalmente, analizamos los residuos.
No se requiere que todos los predictores tengan distribución normal.
Una prueba formal debe complementarse con diagnóstico gráfico.
Con tamaños de muestra grandes, desviaciones pequeñas pueden producir valores p reducidos.
Una observación extrema puede ser completamente válida.
En un problema actuarial puede representar precisamente un siniestro extremo que forma parte de la naturaleza del riesgo.
Debe analizarse primero:
Durbin-Watson tiene sentido particularmente cuando el orden de las observaciones posee significado.
Un valor p superior a 0.05 indica que no existe evidencia suficiente para rechazar \(H_0\).
No demuestra que \(H_0\) sea verdadera.
Un modelo puede tener:
\[ R^2=0.95 \]
y presentar simultáneamente:
Una posible secuencia de trabajo es:
\[ \text{Comprender el problema} \]
\[ \downarrow \]
\[ \text{Realizar análisis descriptivo} \]
\[ \downarrow \]
\[ \text{Especificar el modelo} \]
\[ \downarrow \]
\[ \text{Estimar el modelo} \]
\[ \downarrow \]
\[ \text{Evaluar multicolinealidad} \]
\[ \downarrow \]
\[ \text{Analizar residuos} \]
\[ \downarrow \]
\[ \text{Evaluar normalidad} \]
\[ \downarrow \]
\[ \text{Evaluar homocedasticidad} \]
\[ \downarrow \]
\[ \text{Evaluar linealidad} \]
\[ \downarrow \]
\[ \text{Evaluar independencia si corresponde} \]
\[ \downarrow \]
\[ \text{Analizar observaciones atípicas e influyentes} \]
\[ \downarrow \]
\[ \text{Reespecificar el modelo si es necesario} \]
\[ \downarrow \]
\[ \text{Interpretar actuarialmente} \]
Una vez comprendida la teoría, un diagnóstico básico podría ejecutarse utilizando directamente las funciones de los paquetes.
# MODELO
modelo <- lm(
y ~ x1 + x2 + x3,
data = datos
)
# RESUMEN
summary(modelo)
# -----------------------------------------
# MULTICOLINEALIDAD
# -----------------------------------------
car::vif(modelo)
olsrr::ols_vif_tol(modelo)
olsrr::ols_eigen_cindex(modelo)
# -----------------------------------------
# NORMALIDAD
# -----------------------------------------
qqnorm(residuals(modelo))
qqline(residuals(modelo))
tseries::jarque.bera.test(
residuals(modelo)
)
stats::shapiro.test(
residuals(modelo)
)
nortest::lillie.test(
residuals(modelo)
)
# -----------------------------------------
# HOMOCEDASTICIDAD
# -----------------------------------------
plot(
fitted(modelo),
residuals(modelo)
)
lmtest::bptest(modelo)
skedastic::white(modelo)
# -----------------------------------------
# LINEALIDAD
# -----------------------------------------
car::crPlots(modelo)
lmtest::resettest(modelo)
# -----------------------------------------
# INDEPENDENCIA
# Solo cuando el orden tenga significado
# -----------------------------------------
lmtest::dwtest(modelo)
car::durbinWatsonTest(modelo)
# -----------------------------------------
# OUTLIERS
# -----------------------------------------
rstudent(modelo)
car::outlierTest(modelo)
# -----------------------------------------
# LEVERAGE
# -----------------------------------------
hatvalues(modelo)
# -----------------------------------------
# INFLUENCIA
# -----------------------------------------
cooks.distance(modelo)
car::influencePlot(modelo)
olsrr::ols_plot_cooksd_chart(modelo)La construcción de un modelo no finaliza con
lm().
El diagnóstico de supuestos forma parte de la construcción del modelo.
La multicolinealidad se refiere a relaciones lineales entre los predictores.
El VIF indica cuánto se incrementa la varianza de un coeficiente debido a la relación del predictor con los demás.
Tolerancia y VIF contienen esencialmente la misma información desde perspectivas inversas.
El índice de condición permite estudiar dependencias lineales desde una perspectiva matricial.
La normalidad se analiza principalmente utilizando los residuos.
Jarque-Bera utiliza información de asimetría y curtosis.
Una prueba formal de normalidad debe complementarse con un Q-Q plot.
Homocedasticidad significa varianza constante de los errores.
Breusch-Pagan, White y Goldfeld-Quandt estudian la heterocedasticidad desde enfoques diferentes.
Una curva en los residuos puede indicar que la forma funcional es incorrecta.
Los gráficos de componentes más residuos son especialmente útiles para estudiar linealidad.
Durbin-Watson es particularmente relevante cuando las observaciones poseen un orden temporal.
Un outlier no necesariamente posee alto leverage.
Un punto de alto leverage no necesariamente es influyente.
La distancia de Cook combina información relacionada con residuo e influencia.
Ninguna observación debe eliminarse exclusivamente porque un indicador estadístico la identifica como inusual.
Los diagnósticos gráficos y las pruebas estadísticas son complementarios.
La interpretación final siempre debe tener sentido dentro del problema actuarial.
El diagnóstico de los supuestos de regresión lineal múltiple no debe entenderse como una lista de pruebas que el modelo debe “aprobar”.
El objetivo es determinar si la estructura matemática y probabilística asumida por el modelo representa razonablemente el fenómeno que estamos analizando.
En ciencias actuariales esta evaluación es especialmente importante porque es frecuente encontrar:
Estas características no necesariamente representan errores en la información.
Pueden ser propiedades naturales del riesgo analizado.
Por ello, cuando un supuesto no se cumple, la pregunta no debe ser únicamente:
¿Cómo hago para que el supuesto se cumpla?
También debemos preguntarnos:
¿La regresión lineal es realmente el modelo apropiado para este fenómeno?