library('foreign')
library('ggplot2')Cambio Estructural
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
\(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\).
Los dos términos de error \((e_{1t}\) y \(e_{2t})\) están independientemente distribuidos.
Procedimiento
- 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.
- Se estima el primer modelo y se obtiene \(SSE_1\), con \(gl = (n_1 − p)\).
- Se estime el segundo modelo y se obtiene \(SSE_2\) con \(gl = (n_2 − p)\).
- 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)]} \]
- 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.
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