Ley de Okun

Datos

La Ley de Okun relaciona el crecimiento del desempleo con el crecimiento de la producción agregada. En este caso estimaremos esta relación para España y Francia (aquí se presentan estimaciones para España y Estados Unidos y se proporcionan enlaces adicionales).

Disponemos de datos trimestrales sobre las economías española y francesa que cubren el período que va desde el primer trimestre de 1995 hasta el último trimestre de 2012 (excepto para la producción francesa que sólo llega hasta el tercer trimestre de 2012):

ues, ufr
Tasas de desempleo para España y Francia, respectivamente, estandarizadas y desestacionalizadas.
yes, yfr
Producto Interior Bruto de España y Francia a precios constantes: Índices base 2005.

Los datos provienen de Main Economics Indicators de la OCDE y se han obtenido de la sección de estadísticas internacionales del Instituto Nacional de Estadística.

Con el siguiente código cargamos en R las bibliotecas que utilizaremos en este caso y leemos la base de datos esfr:

## Cargamos las bibliotecas de funciones adicionales
library(zoo)                            # Series temporales
library(dynlm)                          # Regresión dinámica
library(sandwich)                       # Inferencia robusta

## Leemos el fichero con los datos
rawdata <- read.csv2("http://jcpernias.com/ec1027/data/esfr.csv")

## Extraemos los períodos temporales que corresponden a cada
## observación
index <- as.yearqtr(rownames(rawdata))

## Construimos la base de datos de series temporales
esfr <- zoo(rawdata, order.by = index, frequency = 4)

Desempleo

okun-u.png

Producción

okun-y.png

okun-gy.png

Regresión estática

La ley de Okun puede formularse como:

$$ du_t = \mu + \beta gy_t + e_t $$

donde \(du_t\) es el crecimiento de la tasa de desempleo en el período t:

$$ du_t = u_t - u_{t-1} $$

\(gy_t\) es la tasa de crecimiento relativo del output:

$$ gy_t = 100 \Delta \log(y_t) \approx 100 \frac{y_t - y_{t-1}}{y_{t-1}} $$

y \(e_t\) es una perturbación aleatoria. Creamos las variables en R:

## España
esfr$dues <- diff(esfr$ues)
esfr$gyes <- 100 * diff(log(esfr$yes))

## Francia
esfr$dufr <- diff(esfr$ufr)
esfr$gyfr <- 100 * diff(log(esfr$yfr))

okun-okun.png

Francia

La aplicación de MCO a los datos de Francia produce los siguientes resultados:

okfr <- dynlm(dufr ~ gyfr, data = esfr)
summary(okfr)
Time series regression with "zooreg" data:
Start = 1995 Q2, End = 2012 Q3

Call:
dynlm(formula = dufr ~ gyfr, data = esfr)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.62696 -0.11642  0.00740  0.09999  0.47918 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.11646    0.02763   4.216 7.52e-05 ***
gyfr        -0.31400    0.04329  -7.254 4.94e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.1857 on 68 degrees of freedom
Multiple R-squared:  0.4362,	Adjusted R-squared:  0.4279 
F-statistic: 52.62 on 1 and 68 DF,  p-value: 4.94e-10

Los residuos de esta regresión parecen indicar un cierto grado de autocorrelación:

okun-resid-fr.png

Podemos contrastar la hipótesis de no autocorrelación mediante la siguiente regresión auxiliar:

$$ \hat{e}_t = \alpha_0 + \alpha_1 gy_t + \rho \hat{e}_{t-1} + \text{residuos} $$

Bajo la hipótesis nula de no autocorrelación, \(\rho = 0\). El contraste de Breusch-Godfrey consiste en estimar la anterior regresión auxiliar y contrastar la significación del parámetro \(\rho\). El paquete lmtest proporciona la función bgtest para llevar a cabo este contraste:

bgtest(okfr)
    Breusch-Godfrey test for serial correlation of order up
    to 1

data:  okfr
LM test = 4.4664, df = 1, p-value = 0.03457

Los resultados del contraste implican el rechazo a un nivel de significación del 5% de la hipótesis de no autocorrelación en el término de error. La presencia de autocorrelación invalida los errores típicos y los contrastes de la regresión anterior. Newey y West proponen un método para hacer inferencia robusta a autocorrelación (y heteroscedasticidad). El paquete sandwich proporciona la función NeweyWest que permite obtener matrices de covarianzas de los estimadores robustas a autocorrelación:

coeftest(okfr, NeweyWest)
t test of coefficients:

             Estimate Std. Error t value  Pr(>|t|)    
(Intercept)  0.116462   0.032541  3.5789 0.0006419 ***
gyfr        -0.314004   0.042658 -7.3610 3.162e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

España

En el caso de España los resultados de la regresión estática son:

okes <- dynlm(dues ~ gyes, data = esfr)
summary(okes)
Time series regression with "zooreg" data:
Start = 1995 Q2, End = 2012 Q4

Call:
dynlm(formula = dues ~ gyes, data = esfr)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.87834 -0.16176  0.02393  0.18683  1.16412 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.53588    0.06036   8.877 4.99e-13 ***
gyes        -0.82543    0.07048 -11.712  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.3906 on 69 degrees of freedom
Multiple R-squared:  0.6653,	Adjusted R-squared:  0.6605 
F-statistic: 137.2 on 1 and 69 DF,  p-value: < 2.2e-16

Tanto los residuos como el contraste de Breusch-Godfrey señalan un problema de autocorrelación en el término de error:

okun-resid-es.png

bgtest(okes)
    Breusch-Godfrey test for serial correlation of order up
    to 1

data:  okes
LM test = 3.3467, df = 1, p-value = 0.06734

Estimación por MCO y errores típicos robustos a autocorrelación:

coeftest(okes, NeweyWest)
t test of coefficients:

            Estimate Std. Error t value  Pr(>|t|)    
(Intercept)  0.53588    0.10477  5.1147 2.692e-06 ***
gyes        -0.82543    0.10649 -7.7510 5.704e-11 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Regresión dinámica

La existencia de autocorrelación puede ser debida a un error en la especificación dinámica. En este apartado investigamos modelos de regresión con una estructura dinámica más rica.

Francia

Modelo autorregresivo

Añadimos un retardo de la variable dependiente a nuestro modelo estático:

$$ du_t = \mu + \beta gy_t + \rho du_{t-1} + e_t $$

El parámetro \(\rho\) mide el grado de inercia con el que variaciones en la tasa de desempleo se trasladan al período siguiente.

okfr1 <- dynlm(dufr ~ gyfr + L(dufr), data = esfr)
summary(okfr1)
Time series regression with "zooreg" data:
Start = 1995 Q3, End = 2012 Q3

Call:
dynlm(formula = dufr ~ gyfr + L(dufr), data = esfr)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.59552 -0.07973  0.00236  0.09930  0.46545 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.10070    0.02667   3.775 0.000345 ***
gyfr        -0.26666    0.04345  -6.137 5.37e-08 ***
L(dufr)      0.29175    0.09149   3.189 0.002184 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.1753 on 66 degrees of freedom
Multiple R-squared:  0.5112,	Adjusted R-squared:  0.4964 
F-statistic: 34.51 on 2 and 66 DF,  p-value: 5.526e-11

En este caso no existe fuerte evidencia de autocorrelación, aunque el p-value del contraste de Breusch-Godfrey está cerca del 10%.

okun-resid-dyn-fr.png

bgtest(okfr1)
    Breusch-Godfrey test for serial correlation of order up
    to 1

data:  okfr1
LM test = 2.5225, df = 1, p-value = 0.1122

Modelo de retardos distribuidos

Un modelo alternativo se obtiene añadiendo un retardo de la explicativa al modelo estático original:

$$ du_t = \mu + \beta_0 gy_t + \beta_1 gy_{t-1} + e_t $$

En este caso los parámetros \(\beta_0\) y \(\beta_1\) muestran como se distribuye el efecto de un cambio en la variable explicativa a lo largo del tiempo.

okfr2 <- dynlm(dufr ~ gyfr + L(gyfr), data = esfr)
summary(okfr2)
Time series regression with "zooreg" data:
Start = 1995 Q3, End = 2012 Q3

Call:
dynlm(formula = dufr ~ gyfr + L(gyfr), data = esfr)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.62003 -0.10263  0.00426  0.11135  0.49057 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.13753    0.02794   4.923 5.99e-06 ***
gyfr        -0.22616    0.05391  -4.195 8.32e-05 ***
L(gyfr)     -0.13908    0.05401  -2.575   0.0123 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.1795 on 66 degrees of freedom
Multiple R-squared:  0.4873,	Adjusted R-squared:  0.4718 
F-statistic: 31.37 on 2 and 66 DF,  p-value: 2.658e-10

Tampoco en este caso se aprecian fuertes indicios de autocorrelación:

bgtest(okfr2)
    Breusch-Godfrey test for serial correlation of order up
    to 1

data:  okfr2
LM test = 2.1954, df = 1, p-value = 0.1384

Selección de modelos

En el caso de Francia tenemos dos modelos alternativos:

okfr1
modelo autorregresivo de orden 1.
okfr2
modelo de retardos distribuidos de orden 1.

El ajuste de los dos modelos es similar, aunque el ajuste del modelo autorregresivo es marginalmente superior (\(R^2 = 0.51\) frente a un \(R^2 = 0.49\)). En ausencia de problemas de autocorrelación, los contrastes de modelos no anidados son también válidos con series temporales. El contraste J con el modelo autorregresivo como hipótesis nula se lleva a cabo mediante la siguiente regresión auxiliar:

yhat2 <- fitted(okfr2)
summary (update(okfr1, . ~ . + yhat2))
Time series regression with "zooreg" data:
Start = 1995 Q3, End = 2012 Q3

Call:
dynlm(formula = dufr ~ gyfr + L(dufr) + yhat2, data = esfr)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.59907 -0.08279  0.00263  0.09936  0.47329 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)  0.05527    0.05866   0.942   0.3495  
gyfr        -0.14569    0.14572  -1.000   0.3211  
L(dufr)      0.23032    0.11571   1.991   0.0507 .
yhat2        0.41725    0.47966   0.870   0.3876  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.1756 on 65 degrees of freedom
Multiple R-squared:  0.5168,	Adjusted R-squared:  0.4945 
F-statistic: 23.17 on 3 and 65 DF,  p-value: 2.573e-10

El término que hemos añadido no es significativo, lo que no aporta evidencia en contra del modelo autorregresivo.

Cuando añadimos las predicciones del modelo autorregresivo al modelo de retardos distribuidos:

yhat1 <- fitted(okfr1)
summary (update(okfr2, . ~ . + yhat1))
Time series regression with "zooreg" data:
Start = 1995 Q3, End = 2012 Q3

Call:
dynlm(formula = dufr ~ gyfr + L(gyfr) + yhat1, data = esfr)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.59907 -0.08279  0.00263  0.09936  0.47329 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)  0.03316    0.05913   0.561   0.5768  
gyfr        -0.02954    0.11197  -0.264   0.7927  
L(gyfr)     -0.05803    0.06671  -0.870   0.3876  
yhat1        0.78944    0.39659   1.991   0.0507 .
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.1756 on 65 degrees of freedom
Multiple R-squared:  0.5168,	Adjusted R-squared:  0.4945 
F-statistic: 23.17 on 3 and 65 DF,  p-value: 2.573e-10

En este caso las predicciones son significativas al 10% y el p-value es prácticamente igual al 5%, indicando cierta evidencia en contra del modelo de retardos distribuidos.

España

En el caso de España los modelos de retardos distribuidos no son capaces de recoger la autocorrelación en el término de error. Un modelo autorregresivo de orden 1 parece una representación adecuada de los datos:

$$ du_t = \mu + \beta gy_t + \rho du_{t-1} + e_t $$

okes1 <- dynlm(dues ~ gyes  + L(dues), data = esfr)
summary(okes1)
Time series regression with "zooreg" data:
Start = 1995 Q3, End = 2012 Q4

Call:
dynlm(formula = dues ~ gyes + L(dues), data = esfr)

Residuals:
     Min       1Q   Median       3Q      Max 
-1.21004 -0.15625  0.01352  0.14396  1.21146 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.35633    0.09584   3.718 0.000413 ***
gyes        -0.53293    0.13666  -3.900 0.000226 ***
L(dues)      0.33809    0.13511   2.502 0.014788 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.3725 on 67 degrees of freedom
Multiple R-squared:  0.7031,	Adjusted R-squared:  0.6942 
F-statistic: 79.33 on 2 and 67 DF,  p-value: < 2.2e-16

Los residuos no aportan evidencia a favor de la existencia de problemas de autocorrelación.

okun-resid-dyn-es.png

bgtest(okes1)
    Breusch-Godfrey test for serial correlation of order up
    to 1

data:  okes1
LM test = 0.213, df = 1, p-value = 0.6444

Multiplicadores dinámicos

Tanto en el caso de España como en el de Francia hemos llegado a una especificación dinámica de la ley de Okun donde la tasa de desempleo no se ajusta inmediatamente a las variaciones en la tasa de crecimiento del output:

$$ du_t = \mu + \beta gy_t + \rho du_{t-1} + e_t $$

Interpretar los parámetros de un modelo dinámico requiere de cierto cuidado. Una primera aproximación es obtener la solución de largo plazo, donde las variables han alcanzado sus niveles de equilibrio, \(du^*\) y \(gy^*\), y no hay perturbaciones de corto plazo \(e_t = 0\). En estas condiciones:

$$ du^* = \mu + \beta gy^* + \rho du^* $$

Despejando \(du^*\):

$$ du^* = \frac{\mu}{1 - \rho} + \frac{\beta}{1 - \rho} gy^* $$

El multiplicador de largo plazo, \(\beta/(1 - \rho)\), mide cual sería el efecto a largo plazo sobre \(du\) ante un cambio unitario y permanente en \(gy^*\).

## Francia
bfr <- coef(okfr1)
## Multiplicador de largo plazo
bfr["gyfr"] / (1 - bfr["L(dufr)"])
      gyfr 
-0.3765094
## España
bes <- coef(okes1)
## Multiplicador de largo plazo
bes["gyes"] / (1 - bes["L(dues)"])
      gyes 
-0.8051423

A partir de la ecuación anterior se pueden estimar cuál sería la tasa a la que debería crecer una economía a largo plazo para mantener constante la tasas de desempleo, \(du^* = 0\):

$$ gy^* \Big|_{du^* = 0} = -\frac{\mu}{\beta} $$

De acuerdo con nuestras estimaciones:

## Francia
## Multiplicamos por 4 para obtener la tasa de crecimiento anual
-4 * bfr["(Intercept)"] / bfr["gyfr"]
(Intercept) 
   1.510509
## España
## Multiplicamos por 4 para obtener la tasa de crecimiento anual
-4 * bes["(Intercept)"] / bes["gyes"]
(Intercept) 
   2.674449

Adicionalmente, podemos calcular como se ajusta conforme pasa el tiempo la tasa de desempleo a un cambio puntual de la tasa de crecimiento del output: $$\Delta gy_1 = 1, \Delta gy_2 = \Delta gy_3 = \dots = 0 $$

Los multiplicadores dinámicos de nuestro modelo autorregresivo son: $$ \Delta du_1 = \beta \Delta gy_1 = \beta $$ $$ \Delta du_2 = \rho \Delta du_1 = \rho \beta $$ $$ \Delta du_3 = \rho \Delta du_2 = \rho^2 \beta $$ $$ \Delta du_{s+1} = \rho^s \beta, \quad s = 1, 2, \dots $$

  Francia España
0  -0.267 -0.533
1  -0.078 -0.180
2  -0.023 -0.061
3  -0.007 -0.021
4  -0.002 -0.007
5  -0.001 -0.002
6   0.000 -0.001
7   0.000  0.000
8   0.000  0.000

La suma acumulada de los multiplicadores de impacto converge al multiplicador de largo plazo:

  Francia España
0  -0.267 -0.533
1  -0.344 -0.713
2  -0.367 -0.774
3  -0.374 -0.795
4  -0.376 -0.802
5  -0.376 -0.804
6  -0.376 -0.805
7  -0.376 -0.805
8  -0.377 -0.805