Trabajo 02 – Deteccion y Correccion de Heterocedasticidad

Carga de dataset

library(readxl)
DTA <- read_xlsx("hetero.xlsx")
DTA
## # A tibble: 935 × 8
##      obs   AGE   DAP  EDUC MARRIED SOUTH TENURE URBAN
##    <dbl> <dbl> <dbl> <dbl>   <dbl> <dbl>  <dbl> <dbl>
##  1     1    31  76.9    12       1     0      2     1
##  2     2    37  80.8    18       1     0     16     1
##  3     3    33  82.5    14       1     0      9     1
##  4     4    32  65      12       1     0      7     1
##  5     5    34  56.2    11       1     0      5     1
##  6     6    35 140      16       1     0      2     1
##  7     7    30  60      10       0     0      1     1
##  8     8    38 108.     18       1     0     14     1
##  9     9    36 115.     15       1     0      1     0
## 10    10    36 100      12       1     0     16     1
## # ℹ 925 more rows

Estimación del modelo

names(DTA)
## [1] "obs"     "AGE"     "DAP"     "EDUC"    "MARRIED" "SOUTH"   "TENURE" 
## [8] "URBAN"
attach(DTA)
mod1 <- lm(DAP ~ AGE+EDUC+MARRIED+TENURE+SOUTH+URBAN)
summary(mod1)
## 
## Call:
## lm(formula = DAP ~ AGE + EDUC + MARRIED + TENURE + SOUTH + URBAN)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -75.654 -23.760  -4.709  17.403 214.035 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -64.2099    15.1647  -4.234 2.52e-05 ***
## AGE           1.5203     0.3975   3.825 0.000140 ***
## EDUC          5.8580     0.5435  10.779  < 2e-16 ***
## MARRIED      18.9792     3.8614   4.915 1.05e-06 ***
## TENURE        0.7757     0.2454   3.160 0.001627 ** 
## SOUTH        -8.8003     2.5266  -3.483 0.000519 ***
## URBAN        15.6506     2.6518   5.902 5.04e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 36.16 on 928 degrees of freedom
## Multiple R-squared:  0.2055, Adjusted R-squared:  0.2003 
## F-statistic:    40 on 6 and 928 DF,  p-value: < 2.2e-16

El modelo presenta coeficientes altamente significativos en todas las variables incluidas, lo que indica que cada una de ellas tiene una relación estadísticamente relevante con la disposición a pagar (DAP) por proyectos de conservación. No obstante, el poder explicativo del modelo es limitado: el R² ajustado de aproximadamente 0.20 muestra que solo alrededor del 20% de la variabilidad de la DAP puede ser explicada por estas variables socioeconómicas.

En cuanto a la dirección y magnitud de los efectos estimados:

° La edad (AGE) muestra una relación positiva con la DAP: un incremento de un año en la edad se asocia con un aumento promedio de 1.52 unidades en la disposición a pagar, manteniendo constantes las demás variables.

° Un mayor nivel educativo (EDUC) incrementa significativamente la DAP; por cada nivel adicional de educación, se observa un aumento cercano a 5.86 unidades.

° Las personas casadas (MARRIED) presentan en promedio una DAP mayor que las no casadas, en aproximadamente 18.98 unidades.

° La variable TENURE, asociada a la experincia laboral, también influye de manera positiva.

° Residir en el sur (SOUTH) tiene un efecto negativo sobre la DAP, reduciéndola en torno a 8.80 unidades respecto a las demás regiones.

° La residencia en áreas urbanas (URBAN) incrementa la DAP en 15.65 unidades en promedio respecto a zonas rurales.

plot(mod1)

Se observa un patron en “C” caracteristico de un modelo con problemas de heterocedasticidad, que aunque leve plantea la posibilidad de la ruptura de dicho supuesto básico del MCO. Por lo que se realiza un analisis formal para determinar el grado de homocedasticidad presente en el modelo.

Test para Heterocedasticidad

Breusch-Pagan

library(lmtest)
library(tseries)
library(car)

bptest(mod1)
## 
##  studentized Breusch-Pagan test
## 
## data:  mod1
## BP = 25.153, df = 6, p-value = 0.0003199

El resultado del test de Breusch-Pagan aplicado muestra un estadístico de 25.153 con 6 grados de libertad y un p-value de 0.0003199. Este valor es muy pequeño, por lo que se rechaza la hipótesis de que los errores tienen varianza constante. En consecuencia, el modelo presenta heterocedasticidad. Esto significa que la variabilidad de los errores cambia según los regresores y que los errores estándar del modelo no son confiables si no se corrigen. Por lo tanto, es necesario aplicar una corrección, ya sea mediante errores estándar robustos o utilizando un modelo ponderado que ajuste adecuadamente la variación de los residuos.

Test de white

white_test <- bptest(
  mod1,
  ~ AGE + EDUC + MARRIED + SOUTH + TENURE + URBAN +
    I(AGE^2) + I(EDUC^2) + I(MARRIED^2) + I(SOUTH^2) + I(TENURE^2) + I(URBAN^2) +
    I(AGE*EDUC) + I(AGE*MARRIED) + I(AGE*SOUTH) + I(AGE*TENURE) + I(AGE*URBAN) +
    I(EDUC*MARRIED) + I(EDUC*SOUTH) + I(EDUC*TENURE) + I(EDUC*URBAN) +
    I(MARRIED*SOUTH) + I(MARRIED*TENURE) + I(MARRIED*URBAN) +
    I(SOUTH*TENURE) + I(SOUTH*URBAN) +
    I(TENURE*URBAN),
  data = DTA
)

white_test
## 
##  studentized Breusch-Pagan test
## 
## data:  mod1
## BP = 34.915, df = 24, p-value = 0.06967

El resultado del test de White aplicado al modelo mod1 muestra un estadístico de 34.915 con 24 grados de libertad y un p-value de 0.06967. Este valor es superior al 5% , por lo que se acepta la hipótesis de que los errores tienen varianza constante. Debido a que el test supera con una pequeña diferencia el 5% de considera realizar una correción.

Medidas Correctivas

Mínimos Cuadrados Ponderados (WLS)

mod1_ax <-  lm(log(residuals(mod1)^2)~ AGE+EDUC+MARRIED+TENURE+SOUTH+URBAN)
summary(mod1_ax)
## 
## Call:
## lm(formula = log(residuals(mod1)^2) ~ AGE + EDUC + MARRIED + 
##     TENURE + SOUTH + URBAN)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -9.1740 -1.0040  0.4541  1.3860  5.0327 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2.25559    0.89059   2.533   0.0115 *  
## AGE          0.02777    0.02334   1.190   0.2345    
## EDUC         0.19732    0.03192   6.182 9.45e-10 ***
## MARRIED      0.12701    0.22677   0.560   0.5756    
## TENURE      -0.05712    0.01441  -3.963 7.97e-05 ***
## SOUTH        0.11191    0.14838   0.754   0.4509    
## URBAN        0.17510    0.15574   1.124   0.2612    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.124 on 928 degrees of freedom
## Multiple R-squared:  0.05951,    Adjusted R-squared:  0.05343 
## F-statistic: 9.787 on 6 and 928 DF,  p-value: 1.774e-10
pesos <- 1 / exp(fitted(mod1_ax))
modelo_wls <- lm(DAP ~ AGE + EDUC + MARRIED + TENURE + SOUTH + URBAN,
                 data = DTA, weights = pesos)

summary(modelo_wls)
## 
## Call:
## lm(formula = DAP ~ AGE + EDUC + MARRIED + TENURE + SOUTH + URBAN, 
##     data = DTA, weights = pesos)
## 
## Weighted Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.7751 -1.3865 -0.3026  0.9931 12.3423 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -47.2991    14.4358  -3.277 0.001090 ** 
## AGE           1.1142     0.3635   3.065 0.002240 ** 
## EDUC          5.8598     0.5810  10.086  < 2e-16 ***
## MARRIED      16.8881     3.5159   4.803 1.82e-06 ***
## TENURE        0.8171     0.2146   3.808 0.000149 ***
## SOUTH        -9.4422     2.2970  -4.111 4.30e-05 ***
## URBAN        13.1301     2.2887   5.737 1.30e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.02 on 928 degrees of freedom
## Multiple R-squared:  0.1959, Adjusted R-squared:  0.1907 
## F-statistic: 37.68 on 6 and 928 DF,  p-value: < 2.2e-16
bptest(modelo_wls)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_wls
## BP = 0.39446, df = 6, p-value = 0.9989

El resultado del test de Breusch–Pagan aplicado al modelo ponderado indica que no existe evidencia estadística de heterocedasticidad. El estadístico obtenido (BP = 0.39446) presenta un p-valor de 0.9989, muy superior al umbral usual de significancia. Esto implica que no se rechaza la hipótesis nula de varianza constante de los errores. En consecuencia, el modelo WLS corrige adecuadamente los problemas detectados en la regresión original y cumple con el supuesto de homocedasticidad, mostrando que la ponderación aplicada fue efectiva para estabilizar la varianza de los residuos.

Errores estándar robustos

library(sandwich)
## Warning: package 'sandwich' was built under R version 4.4.1
coeftest(mod1, vcov = vcovHC(mod1, type = "HC1"))
## 
## t test of coefficients:
## 
##              Estimate Std. Error t value  Pr(>|t|)    
## (Intercept) -64.20990   16.19819 -3.9640 7.936e-05 ***
## AGE           1.52029    0.40645  3.7404 0.0001950 ***
## EDUC          5.85798    0.57611 10.1681 < 2.2e-16 ***
## MARRIED      18.97924    3.50301  5.4180 7.683e-08 ***
## TENURE        0.77569    0.24938  3.1105 0.0019245 ** 
## SOUTH        -8.80028    2.58154 -3.4089 0.0006803 ***
## URBAN        15.65057    2.53533  6.1730 1.000e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Conclusión

La mejor opción para este análisis es utilizar OLS con errores estándar robustos debido a la evidencia de heterocedasticidad en los datos. El test de Breusch-Pagan indicó un p-value muy bajo, lo que significa que la varianza de los errores no es constante y, por lo tanto, los errores estándar calculados por OLS tradicional no son confiables. Esto afecta directamente la inferencia, ya que los valores t y los p-values podrían subestimar o sobreestimar la significancia de las variables, llevando a conclusiones incorrectas. Por otro lado, un modelo ponderado mediante WLS solo es más eficiente si los pesos reflejan con precisión la estructura de la heterocedasticidad, y en este caso, el modelo auxiliar que se utilizó para generar los pesos tiene un R² muy bajo, lo que indica que no explica bien cómo varía la varianza de los errores. Aplicar pesos mal especificados podría introducir distorsiones y no mejorar la eficiencia del modelo. En cambio, los errores estándar robustos ajustan los cálculos de inferencia sin modificar los coeficientes del OLS, garantizando que las pruebas de significancia sean válidas independientemente de la forma de la heterocedasticidad. Esto hace que la interpretación de los efectos de las variables sea confiable y segura, sin asumir supuestos adicionales sobre la varianza, lo que convierte al OLS con errores robustos en la alternativa más sólida y recomendable para estos resultados.

Taller 03- Multicolinealidad en el consumo de agua

Carga de base de datos

library(readxl)
DTA2 <- read_excel("multi.xlsx")
DTA2
## # A tibble: 19 × 5
##     year  cagua      pib   pob  temp
##    <dbl>  <dbl>    <dbl> <dbl> <dbl>
##  1  1988  61401  7144336  704.  17.7
##  2  1989  63325  7833019  725.  16.3
##  3  1990  65479  8599862  747.  17.5
##  4  1991  68094  9441777  769.  16.8
##  5  1992  70789 10366115  792.  17.6
##  6  1993  72275 11372696  815.  17.0
##  7  1994  76404 12231148  837.  17.6
##  8  1995  80448 11849158  859.  17.0
##  9  1996  82646 12964455  881.  17.7
## 10  1997  85394 14017592  902.  17.2
## 11  1998  89534 14879652  923.  17.7
## 12  1999  95074 15422063  945.  17.3
## 13  2000  96710 17379943  968.  17.3
## 14  2001  98689 17990532  990.  16.9
## 15  2002  99463 18575599 1011.  16.8
## 16  2003 102265 19009211 1031.  17.9
## 17  2004 103782 19655803 1051.  17.6
## 18  2005 105311 20320718 1070.  17.4
## 19  2006 106443 22377765 1088.  17.5

Estimación del modelo

names(DTA2)
## [1] "year"  "cagua" "pib"   "pob"   "temp"
attach(DTA2)
mod2 <- lm(cagua ~ pib+pob+temp)
summary(mod2)
## 
## Call:
## lm(formula = cagua ~ pib + pob + temp)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2074.4  -747.3  -586.3   610.6  3400.6 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -4.216e+04  2.398e+04  -1.758 0.099140 .  
## pib         -9.677e-04  9.085e-04  -1.065 0.303648    
## pob          1.634e+02  3.440e+01   4.749 0.000258 ***
## temp        -3.280e+02  1.050e+03  -0.312 0.759049    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1731 on 15 degrees of freedom
## Multiple R-squared:  0.9896, Adjusted R-squared:  0.9875 
## F-statistic: 476.8 on 3 and 15 DF,  p-value: 4.263e-15

El modelo lineal que relaciona el consumo de agua con el PIB, la población y la temperatura promedio anual muestra que la población es el principal factor determinante del consumo, ya que su coeficiente positivo y altamente significativo indica que cada persona adicional se asocia con un aumento aproximado de 163 m³ en el consumo de agua. Por su parte, el PIB y la temperatura no resultan estadísticamente significativos, por lo que no se puede afirmar que tengan un efecto claro sobre el consumo en esta muestra. El ajuste del modelo es muy alto, con un R² ajustado de 0.9875, lo que indica que casi el 99% de la variación en el consumo de agua se explica por las variables incluidas, y el F-estadístico confirma que, en conjunto, las variables son significativas. Aunque el modelo tiene un buen ajuste global, los resultados sugieren que la población es la variable más relevante y que el PIB y la temperatura podrían reconsiderarse o complementarse con otras variables para un modelo más parsimonioso.

Diagnóstico de multicolinealidad

Diagnostico gráfico

library(DataExplorer)
## Warning: package 'DataExplorer' was built under R version 4.4.1
plot_correlation(DTA2[,3:5])

Se observa que la población y el PIB presentan un nivel de correlación elevado, mientras que la temperatura mantiene relaciones positivas pero débiles con ambas variables. Esto indica la presencia de problemas de multicolinealidad en el modelo planteado.

Correlación

cor(DTA2[, c("pib", "pob", "temp")])
##            pib       pob      temp
## pib  1.0000000 0.9951786 0.2124860
## pob  0.9951786 1.0000000 0.2221553
## temp 0.2124860 0.2221553 1.0000000

Métodos formales

library(car)
vif(mod2)
##        pib        pob       temp 
## 104.801753 105.265066   1.060488

El análisis del VIF muestra que el PIB y la población presentan valores extremadamente altos, superiores a 100, lo que indica una multicolinealidad severa entre estas variables y sugiere que aportan información redundante al modelo. En contraste, la temperatura presenta un VIF cercano a 1, lo que indica que no tiene problemas de multicolinealidad y aporta información independiente. Esto implica que las estimaciones del modelo pueden ser inestables debido a la alta correlación entre PIB y población, por lo que sería recomendable reconsiderar la inclusión simultánea de ambas variables.

Significancia individual

summary(lm(cagua ~ pib))
## 
## Call:
## lm(formula = cagua ~ pib)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5949.0 -1131.4  -231.7  1024.1  5842.1 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 3.788e+04  1.976e+03   19.17 5.97e-13 ***
## pib         3.330e-03  1.320e-04   25.23 6.53e-15 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2575 on 17 degrees of freedom
## Multiple R-squared:  0.974,  Adjusted R-squared:  0.9725 
## F-statistic: 636.4 on 1 and 17 DF,  p-value: 6.534e-15
summary(lm(cagua ~ pob))
## 
## Call:
## lm(formula = cagua ~ pob)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2841.0  -832.1  -258.1   571.7  3950.9 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -28683.164   2970.871  -9.655 2.58e-08 ***
## pob            126.760      3.271  38.748  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1689 on 17 degrees of freedom
## Multiple R-squared:  0.9888, Adjusted R-squared:  0.9881 
## F-statistic:  1501 on 1 and 17 DF,  p-value: < 2.2e-16
summary(lm(cagua ~temp))
## 
## Call:
## lm(formula = cagua ~ temp)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -26988.0 -12335.5    630.9  13957.2  19495.4 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)   -59026     158951  -0.371    0.715
## temp            8346       9180   0.909    0.376
## 
## Residual standard error: 15590 on 17 degrees of freedom
## Multiple R-squared:  0.04637,    Adjusted R-squared:  -0.009729 
## F-statistic: 0.8266 on 1 and 17 DF,  p-value: 0.376

Se puede observar que algunas variables que no resultan significativas en el modelo colectivo sí lo son en sus modelos individuales, lo que constituye un claro indicio de problemas de multicolinealidad. Esto sugiere que la correlación entre las variables independientes está afectando la estimación de sus efectos individuales en el modelo conjunto.

Medidas correctivas

Eliminación de variables redundantes

mod2_1 <- lm(cagua~ pib+ temp)
summary(mod2_1)
## 
## Call:
## lm(formula = cagua ~ pib + temp)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5955.8 -1123.4  -140.8   991.3  5854.0 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 3.399e+04  2.732e+04   1.244    0.231    
## pib         3.325e-03  1.391e-04  23.900 6.04e-14 ***
## temp        2.284e+02  1.598e+03   0.143    0.888    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2653 on 16 degrees of freedom
## Multiple R-squared:  0.974,  Adjusted R-squared:  0.9708 
## F-statistic: 299.9 on 2 and 16 DF,  p-value: 2.078e-13
vif(mod2_1)
##      pib     temp 
## 1.047285 1.047285

Tras la eliminación de una variable redundante, el problema de multicolinaliedad es superado.

mod2_2 <- lm(cagua~ pob+ temp)
summary(mod2_2)
## 
## Call:
## lm(formula = cagua ~ pob + temp)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2831.4  -820.3  -207.5   659.4  3936.4 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -24895.995  17751.154  -1.403    0.180    
## pob            126.926      3.453  36.754   <2e-16 ***
## temp          -227.419   1050.019  -0.217    0.831    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1739 on 16 degrees of freedom
## Multiple R-squared:  0.9888, Adjusted R-squared:  0.9874 
## F-statistic: 708.6 on 2 and 16 DF,  p-value: 2.412e-16
vif(lm(cagua~ pob+ temp))
##      pob     temp 
## 1.051915 1.051915

Se observa que con la eliminación de una variable redundante, el problema de multicolinaliedad es superado.

Uso de variables transformadas

Debido a que se conoce tanto el pbi y la población resulta factible transformar dos variables en una sola: PBI per capita

pbi_per <- pib/pob
print(pbi_per)
##  [1] 10153.97 10801.63 11516.54 12274.48 13089.36 13960.74 14613.60 13794.61
##  [9] 14721.29 15540.91 16116.95 16317.23 17963.21 18177.95 18371.86 18429.78
## [17] 18703.60 18994.52 20560.05

Modelo planteado con variable transformada

mod2_t <- lm(DTA2$cagua~ pbi_per+temp)
summary(mod2_t)
## 
## Call:
## lm(formula = DTA2$cagua ~ pbi_per + temp)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5523.6 -1169.6   -46.7  2069.1  5469.6 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 2.279e+03  3.125e+04   0.073    0.943    
## pbi_per     4.971e+00  2.404e-01  20.683  5.7e-13 ***
## temp        3.591e+02  1.838e+03   0.195    0.848    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3051 on 16 degrees of freedom
## Multiple R-squared:  0.9656, Adjusted R-squared:  0.9613 
## F-statistic: 224.7 on 2 and 16 DF,  p-value: 1.952e-12

Se observa que el modelo no ha perdido su capacidad predictiva y mantiene su significancia global, además de conservar coherencia económica, incluso tras la inclusión de la variable transformada.

Conclusión

compareCoefs(mod2, mod2_1, mod2_2, mod2_t)
## Calls:
## 1: lm(formula = cagua ~ pib + pob + temp)
## 2: lm(formula = cagua ~ pib + temp)
## 3: lm(formula = cagua ~ pob + temp)
## 4: lm(formula = DTA2$cagua ~ pbi_per + temp)
## 
##               Model 1   Model 2 Model 3 Model 4
## (Intercept)    -42159     33988  -24896    2279
## SE              23982     27324   17751   31250
##                                                
## pib         -0.000968  0.003325                
## SE           0.000908  0.000139                
##                                                
## pob            163.39            126.93        
## SE              34.40              3.45        
##                                                
## temp             -328       228    -227     359
## SE               1050      1598    1050    1838
##                                                
## pbi_per                                    4.97
## SE                                         0.24
## 

En el modelo original, que incluye PBI, población y temperatura, se evidencia un problema de multicolinealidad: los errores estándar de PBI y temperatura son elevados, lo que vuelve los coeficientes poco precisos e impide interpretar con claridad los efectos individuales sobre el consumo de agua. Al eliminar una de las variables correlacionadas, ya sea PBI o población, los errores estándar de la variable restante se reducen significativamente, mejorando la confiabilidad de sus coeficientes; sin embargo, se pierde la información combinada que ambas variables aportan. La solución más eficiente se logra mediante la transformación de PBI y población en PBI per cápita, lo que mantiene la información de ambas variables y elimina la multicolinealidad, generando coeficientes estables y precisos que permiten interpretar de manera directa cómo la riqueza relativa por persona influye en el consumo de agua, mientras que el efecto de la temperatura continúa siendo poco significativo.

Taller 4: Detección y Corrección de Autocorrelación

Carga de base de datos

library(readxl)
DTA3 <- read_excel("auto.xlsx")
DTA3
## # A tibble: 44 × 4
##     year     K         S        Y
##    <dbl> <dbl>     <dbl>    <dbl>
##  1  1960   667 11921758.  3310157
##  2  1961   756 16721430.  5010930
##  3  1962  1069 14858647.  6691521
##  4  1963  1655 13280715.  6634836
##  5  1964  1744 14390983.  8863367
##  6  1965  1623 13273583.  7242394
##  7  1966  1650 15520737.  8529821
##  8  1967  1569 18998077.  9824624
##  9  1968  1490 13047952. 10262661
## 10  1969  1455 13591293.  8960460
## # ℹ 34 more rows

Estimación del modelo

attach(DTA3)
## The following object is masked from DTA2:
## 
##     year
mod3 <- lm(Y~S+K)
summary(mod3)
## 
## Call:
## lm(formula = Y ~ S + K)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -3250446 -1118082  -475209   998527  6141428 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 6.540e+04  6.361e+05   0.103 0.918608    
## S           3.744e-01  8.791e-02   4.259 0.000117 ***
## K           2.282e+03  9.557e+02   2.388 0.021656 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1964000 on 41 degrees of freedom
## Multiple R-squared:  0.6676, Adjusted R-squared:  0.6514 
## F-statistic: 41.17 on 2 and 41 DF,  p-value: 1.565e-10

El modelo estima que la captura de anchoveta aumenta en promedio 0.374 toneladas por cada tonelada adicional de biomasa (S), y en 2,282 toneladas por cada embarcación industrial adicional (K), manteniendo constante la otra variable. El intercepto no es significativo y carece de relevancia práctica. La significancia individual se evidencia en los p-valores: la biomasa es altamente significativa (p < 0.001) y el número de embarcaciones también es significativo (p = 0.022). La significancia conjunta del modelo se confirma con el F-statistic = 41.17, p < 0.001, indicando que al menos una variable independiente explica la captura de anchoveta. El ajuste del modelo es moderadamente bueno, con R² = 0.6676 y R² ajustado = 0.6514, lo que implica que aproximadamente el 65% de la variabilidad en la captura se explica por la biomasa y la flota industrial.

Detección gráfica de autocorrelación

Función de autocorrelación

acf(residuals(mod3))

Función de autocorrelación Parcial

pacf(residuals(mod3))

Gráficamente no se observa una autocorrelación fuerte, ya que la mayoría de los rezagos se encuentran dentro de los límites de significancia. Sin embargo, en la función de autocorrelación se identifica un rezago que supera dichos límites.

Detección formal de autocorrelación

Test de Durbin–Watson

library(lmtest)
dwtest(mod3)
## 
##  Durbin-Watson test
## 
## data:  mod3
## DW = 1.1772, p-value = 0.0009106
## alternative hypothesis: true autocorrelation is greater than 0

El test de Durbin-Watson aplicado indica un estadístico DW de 1.1772 con un p-valor de 0.00091. Dado que el valor de DW es menor que 2 y el p-valor es muy bajo, se rechaza la hipótesis nula de ausencia de autocorrelación, lo que sugiere la presencia de autocorrelación positiva significativa en los residuos del modelo. Esto implica que los errores tienden a ser correlacionados entre periodos consecutivos, lo que puede afectar la eficiencia de los estimadores y la validez de los errores estándar calculados por Mínimos Cuadrados Ordinarios.

Test de Breusch–Godfrey

bgtest(mod3)
## 
##  Breusch-Godfrey test for serial correlation of order up to 1
## 
## data:  mod3
## LM test = 6.6983, df = 1, p-value = 0.00965

El test de Breusch–Godfrey aplicado al modelo para autocorrelación de primer orden (orden 1) arroja un estadístico LM de 6.6983 con un p-valor de 0.00965. Dado que el p-valor es menor que 0.01, se rechaza la hipótesis nula de ausencia de autocorrelación hasta el primer rezago. Esto indica que los residuos del modelo presentan autocorrelación positiva significativa, lo que sugiere que los errores están correlacionados entre periodos consecutivos. Como consecuencia, los estimadores de Mínimos Cuadrados Ordinarios pueden seguir siendo insesgados, pero los errores estándar y las pruebas de significancia podrían no ser válidas, por lo que sería recomendable aplicar correcciones como Cochrane–Orcutt o usar errores estándar robustos a autocorrelación.

Medidas correctivas

Método de Cochrane–Orcutt

library(desk)

mod3_cochr <- cochorc(mod3)
mod3_cochr$results
##                     coef     std.err.   t.value      p.value
## (Intercept) 3.583001e+05 9.326387e+05 0.3841789 0.7028312274
## S           3.524479e-01 9.016771e-02 3.9088046 0.0003405002
## K           2.084687e+03 1.139197e+03 1.8299621 0.0745326946

Tras aplicar la corrección de autocorrelación mediante el método de Cochrane–Orcutt, el modelo muestra que la captura de anchoveta depende positivamente de la biomasa y del número de embarcaciones industriales. Cada tonelada adicional de biomasa incrementa la captura en aproximadamente 0.35 toneladas, efecto altamente significativo, mientras que cada embarcación adicional aumenta la captura en alrededor de 2,085 toneladas, con significancia marginal.

Tras la corrección por Cochrane–Orcutt, los coeficientes de biomasa (S) y embarcaciones (K) disminuyen ligeramente, y los errores estándar se ajustan para corregir la autocorrelación. La biomasa sigue siendo altamente significativa, mientras que el efecto de las embarcaciones se vuelve marginal. El intercepto permanece no significativo. En comparación con el modelo original, la corrección mejora la validez de los errores estándar y confirma que la biomasa es el factor más determinante en la captura de anchoveta, mientras que la flota industrial tiene un efecto positivo pero menos robusto.

Método de Prais–Winsten

library(prais)
## Warning: package 'prais' was built under R version 4.4.3
mod_pw <- prais_winsten(Y ~ S + K, data = DTA3, index = "year")
## Iteration 0: rho = 0
## Iteration 1: rho = 0.3874
## Iteration 2: rho = 0.4021
## Iteration 3: rho = 0.4035
## Iteration 4: rho = 0.4037
## Iteration 5: rho = 0.4037
## Iteration 6: rho = 0.4037
## Iteration 7: rho = 0.4037
summary(mod_pw)
## 
## Call:
## prais_winsten(formula = Y ~ S + K, data = DTA3, index = "year")
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -3188600 -1129837  -452632  1045069  6088455 
## 
## AR(1) coefficient rho after 7 iterations: 0.4037
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 3.583e+05  9.326e+05   0.384 0.702830    
## S           3.524e-01  9.017e-02   3.909 0.000341 ***
## K           2.085e+03  1.139e+03   1.830 0.074533 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1799000 on 41 degrees of freedom
## Multiple R-squared:  0.4818, Adjusted R-squared:  0.4565 
## F-statistic: 19.06 on 2 and 41 DF,  p-value: 1.405e-06
## 
## Durbin-Watson statistic (original): 1.177 
## Durbin-Watson statistic (transformed): 2.007

Tras aplicar el método de Prais–Winsten al modelo de captura de anchoveta, los resultados muestran que la autocorrelación de primer orden ha sido corregida de manera efectiva. El coeficiente de autocorrelación estimado (ρ) es 0.404, indicando que antes existía una autocorrelación positiva moderada en los residuos.

En cuanto a los coeficientes, la biomasa de anchoveta (S) tiene un efecto positivo y altamente significativo: cada tonelada adicional de biomasa incrementa la captura en aproximadamente 0.352 toneladas. El número de embarcaciones (K) también tiene un efecto positivo, de alrededor de 2,085 toneladas por embarcación, pero su significancia es marginal (p ≈ 0.075). El intercepto no es significativo.

El error estándar de los residuos disminuyó a 1,799,000, mostrando que la eficiencia del modelo ha mejorado respecto al modelo original. Además, el Durbin–Watson transformado es 2.007, muy cercano a 2, confirmando que la autocorrelación de primer orden ha sido eliminada, mientras que el DW original era 1.177, indicando autocorrelación positiva significativa antes de la corrección.

Errores estándar robustos HAC (Newey–West)

library(sandwich)
library(lmtest)
coeftest(mod3, vcov = NeweyWest(mod3, prewhite = FALSE, lag = 1))
## 
## t test of coefficients:
## 
##               Estimate Std. Error t value Pr(>|t|)   
## (Intercept) 6.5403e+04 5.8447e+05  0.1119  0.91145   
## S           3.7437e-01 1.1053e-01  3.3870  0.00157 **
## K           2.2817e+03 1.0836e+03  2.1056  0.04140 * 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Al comparar el modelo original con los errores estándar robustos HAC (Newey–West), se observa que los coeficientes de las variables (S y K) permanecen prácticamente iguales, pero los errores estándar se ajustan para corregir heterocedasticidad y autocorrelación. Como resultado, las pruebas de significancia son más confiables: la biomasa (S) sigue siendo altamente significativa y el número de embarcaciones (K) permanece significativo al 5%, aunque con un error estándar ligeramente mayor que en el modelo original. El intercepto continúa sin ser significativo. En resumen, Newey–West no modifica los coeficientes, pero proporciona errores estándar y p-valores más robustos, garantizando inferencias estadísticas más válidas.

Conclusiones

Al comparar las tres formas de corrección para autocorrelación y heterocedasticidad, cada una presenta ventajas según el contexto de los datos y el objetivo del análisis. El modelo original sin corrección es simple y rápido, pero sus errores estándar y pruebas de significancia pueden estar sesgados si existen problemas de autocorrelación o heterocedasticidad, lo que afecta la validez de las inferencias estadísticas. Los métodos Cochrane–Orcutt y Prais–Winsten son eficaces para corregir la autocorrelación de primer orden transformando las variables, aunque Prais–Winsten es preferible ya que conserva la primera observación y es más eficiente en términos de uso de los datos. Sin embargo, estos métodos requieren asumir que la autocorrelación es el principal problema y que el modelo no está especificado incorrectamente. En cambio, los errores estándar robustos HAC (Newey–West) ajustan los errores estándar sin modificar las variables, proporcionando una solución más flexible. Este método es ideal cuando se sospecha de autocorrelación y heterocedasticidad, pero no se quiere transformar el modelo. Newey–West mantiene los coeficientes intactos y mejora la confiabilidad de las pruebas de significancia.

La elección del método depende de la naturaleza de los problemas que se enfrenten: si la autocorrelación de primer orden es el principal problema, Cochrane–Orcutt o Prais–Winsten son más adecuados, siendo Prais–Winsten la opción preferible por su eficiencia al conservar más datos. Por otro lado, si se busca un ajuste más flexible para autocorrelación y heterocedasticidad sin transformar los datos, Newey–West es la opción más apropiada.