Cambio Estructural

Autor

Dr. Víctor Chung

Estabilidad de los Parámetros Estimados

Una pregunta importante que los analistas suelen hacerse es si los parámetros estimados son estables en el tiempo. Es decir, que si se re estiman los parámetros después de cierto tiempo, ¿serán estos los mismos o habrán cambiado considerablemente?

Por lo general, no se espera que los coeficientes sean exactamente los mismos, pero se espera que estadísticamente sean iguales. Las pruebas se basan en dividir la muestra en dos y analizar los cambios en los valores de los coeficientes. A continuación se presentan dos métodos: El test de estabilidad de Chow y el test de errores de predicción. Ambos tienen la misma lógica, pero con ciertas diferencias que luego se describirán.

Prueba de Chow

Supuestos

  1. \(e_{1t} \sim N(0, \sigma^2)\) y \(e_{2t}\sim N(0, \sigma^2)\). Es decir, los términos de error en las regresiones de los subperiodos están normalmente distribuidos con la misma varianza (homoscedástica) \(\sigma^2\).

  2. Los dos términos de error \((e_{1t}\) y \(e_{2t})\) están independientemente distribuidos.

Procedimiento

  1. Se estima la regresión total, que resulta apropiada si no hay inestabilidad en los parámetros, y se obtiene SSE con \(gl = (n_1 + n_2 − p)\), donde \(p\) es el número de parámetros estimado.
  2. Se estima el primer modelo y se obtiene \(SSE_1\), con \(gl = (n_1 − p)\).
  3. Se estime el segundo modelo y se obtiene \(SSE_2\) con \(gl = (n_2 − p)\).
  4. Como los dos conjuntos de muestras se consideran independientes, se pueden sumar \(SSE_1\) y \(SSE_2\) para obtener lo que se puede llamar suma de cuadrados residual no restringida (\(SSE_{NR}\)), es decir:

\[SSE_{NR} = SSE_1 + SSE_2 \space con \space gl = (n1 + n2 − 2p)\] 5. Se Calcual el estadístico F

\[ F=\frac{(SSE−SSE_{NR})/p}{SSE_{NR}/(n_1 + n_2 − 2p)} \sim F_{[p,(n_1+n_2−2p)]} \]

  1. Si \(F > F_t\) se concluye que no existe estabilidad paramétrica.

Ejemplo

Suponga que deseamos estimar una sencilla función relacione el ahorro (Y) con el ingreso personal disponible (X). Se sabe muy bien que en 1982 Estados Unidos experimentó su peor recesión en tiempos de paz. La tasa de desempleo civil alcanzó 9.7%, la más alta desde 1948. Un suceso como éste pudo perturbar la relación entre el ahorro y el ingreso. Evaluar la existencia de una cambio estructural en la función.

library('foreign')
library('ggplot2')
quiebre_ejem <- read.dta('Datos/quiebre-ejemplo.dta')
head(quiebre_ejem)
  periodo Ahorro Ingreso
1    1970   61.0   727.1
2    1971   68.6   790.2
3    1972   63.6   855.3
4    1973   89.6   965.0
5    1974   97.6  1054.2
6    1975  104.4  1159.2
ggplot(data=quiebre_ejem,aes(Ingreso,Ahorro)) + geom_point()

ggplot(data=quiebre_ejem,aes(Ingreso,Ahorro)) + geom_point() + geom_vline(xintercept
                                                                     =2500,colour = '#660000')

Ejemplo - Modelo de Regresión

modelo <- lm(Ahorro ~ Ingreso, data=quiebre_ejem)
summary(modelo)

Call:
lm(formula = Ahorro ~ Ingreso, data = quiebre_ejem)

Residuals:
    Min      1Q  Median      3Q     Max 
-62.236 -21.208  -9.271  18.726  67.399 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 62.422674  12.760749   4.892 5.47e-05 ***
Ingreso      0.037679   0.004237   8.894 4.61e-09 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 31.12 on 24 degrees of freedom
Multiple R-squared:  0.7672,    Adjusted R-squared:  0.7575 
F-statistic:  79.1 on 1 and 24 DF,  p-value: 4.607e-09

\[Ahorro = 62.423 + 0.038*Ingreso\]

library('ggpubr')

g1 <- ggplot(data=quiebre_ejem[1:13,],aes(Ingreso,Ahorro)) + geom_point() + 
  ggtitle("Diagrama de Dispersión \n Ingreso vs Ahorro, 1970 - 1982") + 
  theme(plot.title = element_text(size=10,hjust = 0.5))

g2 <- ggplot(data=quiebre_ejem[14:26,],aes(Ingreso,Ahorro)) + geom_point() + 
  ggtitle("Diagrama de Dispersión \n Ingreso vs Ahorro, 1983 - 1995") + 
  theme(plot.title = element_text(size=10,hjust = 0.5))

ggarrange(g1,g2)

Modelo de Regresión Lineal 1970 -1982

modelo1 <- lm(Ahorro ~ Ingreso, data=quiebre_ejem[1:13,])
summary(modelo1)

Call:
lm(formula = Ahorro ~ Ingreso, data = quiebre_ejem[1:13, ])

Residuals:
    Min      1Q  Median      3Q     Max 
-22.358  -7.592   3.208  10.590  16.639 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -3.741880  10.531242  -0.355    0.729    
Ingreso      0.084630   0.007084  11.946 1.22e-07 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 13.33 on 11 degrees of freedom
Multiple R-squared:  0.9284,    Adjusted R-squared:  0.9219 
F-statistic: 142.7 on 1 and 11 DF,  p-value: 1.218e-07

\[Ahorro = -3.742+ 0.085*Ingreso\]

Modelo de Regresión Lineal 1983 -1995

modelo2 <- lm(Ahorro ~ Ingreso, data=quiebre_ejem[14:26,])
summary(modelo2)

Call:
lm(formula = Ahorro ~ Ingreso, data = quiebre_ejem[14:26, ])

Residuals:
    Min      1Q  Median      3Q     Max 
-40.519 -18.862  -6.149  14.109  49.873 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)   
(Intercept) 1.414e+02  3.809e+01   3.712  0.00343 **
Ingreso     1.763e-02  9.542e-03   1.847  0.09173 . 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 29.57 on 11 degrees of freedom
Multiple R-squared:  0.2368,    Adjusted R-squared:  0.1674 
F-statistic: 3.413 on 1 and 11 DF,  p-value: 0.09173

\[Ahorro = 141.399+ 0.018*Ingreso\]

Prueba de Chow - Ejemplo

1. Planteamiento de Hipótesis

\(H_0:\) Existe Estabilidad Paramétrica

\(H_1:\) No Existe Estabilidad Paramétrica

2. Nivel de Significancia

\(\alpha = 0.05\)

3. Estadístico de Prueba

\(SSE = 23248.298\) , \(SSE_1 = 1953.639\), \(SSE_2 = 9616.213\)

\(SSE_{NR} = 1953.639 + 9616.213 = 11569.852\)

\[F = \frac{(23248.298-11569.852)/2}{11569.852/(13+13-2(2))}= 11.103\]

4. Regla de Decisión

\(F = 11.103\) es mayor al valor crítico \(F_{0.05,(2,22)}=3.44\), entonces la hipótesis nula rechaza

5. Conclusión

Se concluye que no existe estabilidad paramétrica en la relación entre ingreso y ahorro.

Prueba de Chow en R

Obtención de los SSE

datos1 <- quiebre_ejem[1:13,]
datos2 <- quiebre_ejem[14:26,]
modelo <- lm(Ahorro ~ Ingreso, data=quiebre_ejem)
modelo1 <- lm(Ahorro ~ Ingreso, data=datos1)
modelo2 <- lm(Ahorro ~ Ingreso, data=datos2)
SSE <- sum((fitted(modelo) - quiebre_ejem$Ahorro)^2)
SSE1 <- sum((fitted(modelo1) - datos1$Ahorro)^2)
SSE2 <- sum((fitted(modelo2) - datos2$Ahorro)^2)
SSENR <- SSE1 + SSE2

cat('SSE = ', SSE, 'SSE1 = ', SSE1, 'SSE2 = ', SSE2, 'SSENR = ',SSENR)
SSE =  23248.3 SSE1 =  1953.639 SSE2 =  9616.214 SSENR =  11569.85

Calculo de F

F <- ((SSE-SSENR)/2)/(SSENR/(nrow(datos1)+nrow(datos2)-2*2))
Ft <- qf(0.95,2,nrow(datos1)+nrow(datos2)-2*2)
p <-  df(F,2,nrow(datos1)+nrow(datos2)-2*2)*2

cat('F = ', F, 'Ft = ', Ft, 'Valor p = ', p)
F =  11.10325 Ft =  3.443357 Valor p =  0.0004616039

Uso de Package

library('strucchange')
sctest(quiebre_ejem$Ahorro ~ quiebre_ejem$Ingreso, type = "Chow", point = 13)

    Chow test

data:  quiebre_ejem$Ahorro ~ quiebre_ejem$Ingreso
F = 11.103, p-value = 0.0004638

Pruebas Recursivas: CUSUM y CUSUMQ

  • Sea: \(e_t = Y_t - X'_t \hat \beta_{t-1}\)

  • Varianza de \(e_t\) \[var(e_t) = var(Y_t - X'_t \hat \beta_{t-1}) = \sigma^2(1+X'_t(X'_{t-1}X_{t-1})^{-1}X_t) \]

  • Los Residuos Recursivos se definen como: \[w_t = \frac{e_t}{\sqrt{1+X'_t(X'_{t-1}X_{t-1})^{-1}X_t}}\]

  • Bajo la hipótesis habituales \(w_t \approx N(0, \sigma^2)\) y se demuestra, además que los residuos recursivos reescalados se hallan incorrelacionados dos a dos. Por lo tanto, \(w_t \approx N(0, \sigma^2 I_{n-p})\).

  • El estadístico CUSUM se define mediante la expresión: \[W_t = \sum_{j=k+1}^t \frac{w_t}{\hat \sigma} \ \ t=k+1,\dots,n \ \ con \ \ \hat \sigma^2 = \frac{SSE_n}{n-p}\]

  • El estadístico CUSUMQ se basa en las sumatorias acumuladas de los cuadrados de los residuos y tiene la expresión: \[S_t = \frac{\sum_{j=k+1}^t w_j^2}{\sum_{j=k+1}^n w_j^2} \ \ t=k+1, \dots, n\]

Análisis Recursivo

cusum <- efp(Ahorro ~ Ingreso, data=quiebre_ejem, type = "Rec-CUSUM")
sctest(cusum)

    Recursive CUSUM test

data:  cusum
S = 0.90316, p-value = 0.06927

Análisis Recursivo - Gráfico CUSUM

plot(cusum)

Análisis Recursivo - Coeficientes Recursivos

coeficientes <- efp(Ahorro ~ Ingreso, data=quiebre_ejem, type="ME", h=0.2)
plot(coeficientes, functional = NULL)

Análisis Recursivo - Resdiuales

resid <-recresid(Ahorro ~ Ingreso, data=quiebre_ejem)
plot(cumsum(resid))

Ejercicio

El archivo quiebre.dta contiene datos para la economía española correspondientes a los ejercicios 1964-1998. relativos al consumo privado nacional (X1), renta neta disponible familiar (X2), tipo de interés real a corto plazo (X3) e impuesto inflacionario (X4).

Se trata de ajustar un modelo adecuado que explique el consumo privado nacional en función de la renta disponible familiar, el tipo de interés a corto plazo y el impuesto inflacionario, teniendo presente la posible existencia de un cambio estructural en 1986 como consecuencia de la entrada de España en la Comunidad Económica Europea. Analizar la estabilidad estructural (constancia en el tiempo de los parámetros estimados) y su utilidad para la predicción.

quiebre <- read.dta('quiebre/quiebre.dta')
head(quiebre)
    dateid01      x1 ficticia       x2           x3      x4
1 1964-01-01 4865674        0 131.7770 -0.001279521 5333231
2 1965-01-01 5186961        0 461.6022 -0.068827367 5926445
3 1966-01-01 5545924        0 362.6417 -0.042423697 6420995
4 1967-01-01 5883482        0 307.4191 -0.026934074 6624996
5 1968-01-01 6248897        0 289.8119 -0.008907631 6987164
6 1969-01-01 6674633        0 215.0557  0.010367105 7464291