El presente texto tiene como propósito mostrar el proceso y los resultados con los cuales se basan las reglas de decisión establecidas en la evidencia final. La estructura de la presente documentación se divide en dos: una para el modelo restringido con base en la teoría económica (especificada por la misma evidencia) y la otra correspondiente al modelo formulado de manera propia. Para ambos modelos se estima si hay errores de especificación en el modelo, aunado a si se cumplen los supuestos de homoscedasticidad, la no autocorrelación contemporánea, la no multicolinealidad perfecta o elevada y, por último, una resolución por mínimos cuadrados en 3 etapas (MC3E) que incorporen la simultaneidad de las ecuaciones en cuestión.

Modelo 1

El siguiente modelo se basa en lo reportado por la teoría económica respecto a la tasa de desempleo. Matemáticamente este queda fromulado de la siguiente manera:

\[\begin{align*} T_d = \beta_0 + \beta_1P_c + G_c + C + e \\ C = \alpha_0 + \alpha_1 I_d + u \end{align*}\]

Regresiones individuales por mínimos cuadrados ordinarios

# Tasa de desempleo

modelo.td.ols = lm(base$Unemployment ~ base$`Population growth` + base$Escolaridad + 
                  base$`Total consumer spending`, data = base)
summary(modelo.td.ols)

Call:
lm(formula = base$Unemployment ~ base$`Population growth` + base$Escolaridad + 
    base$`Total consumer spending`, data = base)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.3227 -0.5074 -0.1094  0.4241  1.7743 

Coefficients:
                                 Estimate Std. Error t value Pr(>|t|)  
(Intercept)                    -1.273e+01  7.148e+00  -1.780   0.0929 .
base$`Population growth`        3.188e+00  1.977e+00   1.612   0.1253  
base$Escolaridad                1.749e+00  6.367e-01   2.747   0.0138 *
base$`Total consumer spending` -1.862e-07  3.386e-07  -0.550   0.5896  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.7556 on 17 degrees of freedom
Multiple R-squared:  0.359, Adjusted R-squared:  0.2459 
F-statistic: 3.174 on 3 and 17 DF,  p-value: 0.05103
# Consumo
modelo.consumo.ols = lm(base$`Total consumer spending` ~ base$`Household personal disposable income`, data = base)
summary(modelo.consumo.ols)

Call:
lm(formula = base$`Total consumer spending` ~ base$`Household personal disposable income`, 
    data = base)

Residuals:
    Min      1Q  Median      3Q     Max 
-906138 -141420   -6312  118708  728223 

Coefficients:
                                             Estimate Std. Error t value Pr(>|t|)    
(Intercept)                                 1.978e+06  6.508e+05    3.04  0.00674 ** 
base$`Household personal disposable income` 7.070e-01  4.982e-02   14.19 1.45e-11 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 396000 on 19 degrees of freedom
Multiple R-squared:  0.9138,    Adjusted R-squared:  0.9093 
F-statistic: 201.4 on 1 and 19 DF,  p-value: 1.453e-11

Al 5% de significancia, sólo la escolaridad resulta significativa para la primera ecuación. Y el p-value del modelo conjunto es ligeramente mayor a la regla de decisión. Para la segunda ecuación, resulta ser que la inversión es significativa.

Multicolinealidad

vif(modelo.td.ols)
      base$`Population growth`               base$Escolaridad base$`Total consumer spending` 
                      6.778899                       7.037493                       6.939632 

Tomando como regla de decisión un VIF mayor o igual a 7 para determinar la sospecha de tener presencia de multicolineadidad, sólo 1 factor resulta sospechoso, mas como los otros dos cuentan con valores cercanos a la regla de decisión, se concluye que efectifamente existen sospechas de multicolinealidad.

Heteroscedasticidad

Las pruenas de hipótesis para las pruebas, en teoría se recuperan los residuales al cuadrado y se hacen pruebas para determinar si los parámetros están asociados al error:

\[\begin{align*} \hat{\epsilon^2} = \gamma_0 + \gamma_1 P_c + \gamma_2 G_c + \gamma_3C + v \\ \hat{\epsilon^2} = \delta_0 + \delta_1 I_d + z \end{align*}\]

se espera que para que sea homoscedastico los parámetros sean 0.

White:

Los residuales también incluyen los factores cuadráticos y las interacciones entre variables

\[\begin{align*} H_0: \textrm{El modelo no tiene heteroscedasticidad (depende de los parámetros)} \\ H_a: \textrm{El modelo tiene heteroscedasticidad (Al menos un parámetro es distinto de 0)} \end{align*}\]

Breusch Pagan:

Para la primera ecuación: \[\begin{align*} H_0: \gamma_0 = \gamma_1 = \gamma_2 = \gamma_3 = 0\\ H_a: \textrm{Al menos un parámetro es distinto de 0} \end{align*}\]

Y para la segunda: \[\begin{align*} H_0: \delta_1 = 0\\ H_a: \delta_1 \neq 0 \end{align*}\]

#Desempleo
## White
base$res.sq.td = modelo.td.ols$residuals^2

white.aux.td = lm(base$res.sq.td ~ base$`Population growth` + base$Escolaridad + 
                    base$`Total consumer spending` + I(base$`Population growth`^2) + I(base$Escolaridad^2)+
                    I(base$`Total consumer spending`^2) + base$`Population growth`* base$Escolaridad+ 
                    base$`Population growth`*base$`Total consumer spending` + base$Escolaridad*base$`Total consumer spending`, data = base) 

summary(white.aux.td) 

Call:
lm(formula = base$res.sq.td ~ base$`Population growth` + base$Escolaridad + 
    base$`Total consumer spending` + I(base$`Population growth`^2) + 
    I(base$Escolaridad^2) + I(base$`Total consumer spending`^2) + 
    base$`Population growth` * base$Escolaridad + base$`Population growth` * 
    base$`Total consumer spending` + base$Escolaridad * base$`Total consumer spending`, 
    data = base)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.85790 -0.13769 -0.06002  0.19002  0.73393 

Coefficients:
                                                          Estimate Std. Error t value Pr(>|t|)   
(Intercept)                                              8.215e+02  2.960e+02   2.775  0.01807 * 
base$`Population growth`                                -3.913e+02  1.474e+02  -2.656  0.02237 * 
base$Escolaridad                                        -3.461e+01  3.959e+01  -0.874  0.40072   
base$`Total consumer spending`                          -7.377e-05  2.046e-05  -3.605  0.00413 **
I(base$`Population growth`^2)                            3.645e+01  1.926e+01   1.893  0.08500 . 
I(base$Escolaridad^2)                                    9.777e-01  2.759e+00   0.354  0.72972   
I(base$`Total consumer spending`^2)                      2.298e-12  1.186e-12   1.937  0.07883 . 
base$`Population growth`:base$Escolaridad                1.357e+01  9.696e+00   1.399  0.18927   
base$`Population growth`:base$`Total consumer spending`  1.570e-05  5.209e-06   3.014  0.01178 * 
base$Escolaridad:base$`Total consumer spending`          9.138e-08  2.790e-06   0.033  0.97446   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.4954 on 11 degrees of freedom
Multiple R-squared:  0.7455,    Adjusted R-squared:  0.5373 
F-statistic: 3.581 on 9 and 11 DF,  p-value: 0.02516
## Bresuch Pagan

bptest(modelo.td.ols)

    studentized Breusch-Pagan test

data:  modelo.td.ols
BP = 3.5092, df = 3, p-value = 0.3196
#Consumo

## White
base$res.sq.consumo = modelo.consumo.ols$residuals^2

white.aux.consumo= lm(base$res.sq.consumo ~ base$`Household personal disposable income` + I(base$`Household personal disposable income`^2), data = base) 

summary(white.aux.consumo)

Call:
lm(formula = base$res.sq.consumo ~ base$`Household personal disposable income` + 
    I(base$`Household personal disposable income`^2), data = base)

Residuals:
       Min         1Q     Median         3Q        Max 
-4.129e+11 -8.201e+10 -4.076e+10  5.511e+10  5.070e+11 

Coefficients:
                                                   Estimate Std. Error t value Pr(>|t|)
(Intercept)                                       1.810e+12  2.229e+12   0.812    0.427
base$`Household personal disposable income`      -3.249e+05  3.543e+05  -0.917    0.371
I(base$`Household personal disposable income`^2)  1.487e-02  1.391e-02   1.069    0.299

Residual standard error: 2.217e+11 on 18 degrees of freedom
Multiple R-squared:  0.2077,    Adjusted R-squared:  0.1197 
F-statistic: 2.359 on 2 and 18 DF,  p-value: 0.123
## Bresuch Pagan
bptest(modelo.consumo.ols) 

    studentized Breusch-Pagan test

data:  modelo.consumo.ols
BP = 3.3053, df = 1, p-value = 0.06906

Con la prueba de White, la primera ecuación, se rechaza la nula, lo cual indica heteroscedasticidad. A pesar de que en la Breusch Pagan se encuentra un resultado contrario, la de White resulta contener mayores términos a evaluar, por lo que se concluye lo referente a esta prueba. Ambas pruebas coinciden que no hay heteroscedasticidad.

Reset de Ramsey

La prueba de Reset de Ramsey, como es trabajada en este trabajo, formula que los fitted values elevados al cuadrado y al cubo del modelo no se relacionan con el modelo en sí. Esto determina si hay problemas de especificación en el modelo. Las hipótesis, por tanto son:

\[\begin{align*} H_0: \textrm{Hay problemas de especificación en el modelo}\\ H_a: \textrm{No hay problemas de especificación en el modelo} \end{align*}\]

# Para el consumo
modelo.ramsey.consumo = lm(base$`Total consumer spending` ~ base$`Household personal disposable income` + I(modelo.consumo.ols$fitted.values^2) + 
                        I(modelo.consumo.ols$fitted.values^3), data = base) 

summary(modelo.ramsey.consumo) 

Call:
lm(formula = base$`Total consumer spending` ~ base$`Household personal disposable income` + 
    I(modelo.consumo.ols$fitted.values^2) + I(modelo.consumo.ols$fitted.values^3), 
    data = base)

Residuals:
    Min      1Q  Median      3Q     Max 
-992211  -70234   40459  135437  610552 

Coefficients:
                                              Estimate Std. Error t value Pr(>|t|)
(Intercept)                                  3.610e+07  2.278e+07   1.585    0.131
base$`Household personal disposable income` -1.341e+01  9.927e+00  -1.351    0.194
I(modelo.consumo.ols$fitted.values^2)        1.785e-06  1.290e-06   1.384    0.184
I(modelo.consumo.ols$fitted.values^3)       -5.266e-14  3.915e-14  -1.345    0.196

Residual standard error: 386400 on 17 degrees of freedom
Multiple R-squared:  0.9265,    Adjusted R-squared:  0.9136 
F-statistic: 71.48 on 3 and 17 DF,  p-value: 7.624e-10
#Para la tasa de desempleo
modelo.ramsey.td = lm(base$Unemployment ~ base$`Population growth` + base$Escolaridad + 
                     base$`Total consumer spending` + I(modelo.td.ols$fitted.values^2) + 
                     I(modelo.td.ols$fitted.values^3), data = base) 

summary(modelo.ramsey.td) 

Call:
lm(formula = base$Unemployment ~ base$`Population growth` + base$Escolaridad + 
    base$`Total consumer spending` + I(modelo.td.ols$fitted.values^2) + 
    I(modelo.td.ols$fitted.values^3), data = base)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.0063 -0.4094 -0.1530  0.2984  1.9727 

Coefficients:
                                   Estimate Std. Error t value Pr(>|t|)
(Intercept)                       1.060e+03  1.032e+03   1.027    0.321
base$`Population growth`         -2.397e+02  2.350e+02  -1.020    0.324
base$Escolaridad                 -1.314e+02  1.286e+02  -1.021    0.323
base$`Total consumer spending`    1.398e-05  1.360e-05   1.028    0.320
I(modelo.td.ols$fitted.values^2)  1.850e+01  1.891e+01   0.978    0.343
I(modelo.td.ols$fitted.values^3) -1.485e+00  1.607e+00  -0.924    0.370

Residual standard error: 0.7411 on 15 degrees of freedom
Multiple R-squared:  0.456, Adjusted R-squared:  0.2746 
F-statistic: 2.514 on 5 and 15 DF,  p-value: 0.07622

Con los valores de los coeficientes de los fitted values, ninguno resulta significante en ambos modelos, por lo que se concluye que no hay problemas de especificiación.

Modelo MC3E restringido

Bajo las restricciones de que los coeficientes del consumo y el grado promedio de escolaridad son iguales a 1, se trabaja el modelo por MC3E:

regresion_td = base$Unemployment ~ base$`Population growth` + base$Escolaridad + 
  base$`Total consumer spending`
regresion_c = base$`Total consumer spending` ~ base$`Household personal disposable income`

instr = ~ base$`Population growth` + base$Escolaridad + base$`Household personal disposable income`

restricciones = matrix(c(0,0,0,0,1,0,0,1,0,0,0,0), ncol = 6, nrow = 2)
resultados = matrix(c(1,1),ncol = 1, nrow = 2)

modelo.r = systemfit(list(regresion_td, regresion_c), "3SLS", inst = instr, restrict.matrix = restricciones,
          restrict.rhs = resultados, data = base)
summary(modelo.r)

systemfit results 
method: 3SLS 

        N DF         SSR     detRCov   OLS-R2 McElroy-R2
system 42 38 9.90562e+12 3.15323e+22 0.713362   0.902162

     N DF         SSR         MSE   RMSE           R2       Adj R2
eq1 21 17 6.73347e+12 3.54393e+11 595309 -4.44696e+11 -4.68102e+11
eq2 21 19 3.17215e+12 1.66955e+11 408601  9.08208e-01  9.03377e-01

The covariance matrix of the residuals used for estimation
             eq1          eq2
eq1  3.45157e+11 -1.39834e+11
eq2 -1.39834e+11  1.56802e+11

The covariance matrix of the residuals
             eq1          eq2
eq1  3.54393e+11 -1.66239e+11
eq2 -1.66239e+11  1.66955e+11

The correlations of the residuals
          eq1       eq2
eq1  1.000000 -0.683425
eq2 -0.683425  1.000000


3SLS estimates for 'eq1' (equation 1)
Model Formula: base$Unemployment ~ base$`Population growth` + base$Escolaridad + 
    base$`Total consumer spending`
Instruments: ~base$`Population growth` + base$Escolaridad + base$`Household personal disposable income`

                                Estimate Std. Error  t value   Pr(>|t|)    
(Intercept)                    -17412142     741257 -23.4900 < 2.22e-16 ***
base$`Population growth`         4896955     569314   8.6015 1.8861e-10 ***
base$Escolaridad                       1          0      Inf < 2.22e-16 ***
base$`Total consumer spending`         1          0      Inf < 2.22e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 595309.453582 on 17 degrees of freedom
Number of observations: 21 Degrees of Freedom: 17 
SSR: 6733473564949.52 MSE: 354393345523.659 Root MSE: 595309.453582 
Multiple R-Squared: -444696446928.036 Adjusted R-Squared: -468101523082.196 


3SLS estimates for 'eq2' (equation 2)
Model Formula: base$`Total consumer spending` ~ base$`Household personal disposable income`
Instruments: ~base$`Population growth` + base$Escolaridad + base$`Household personal disposable income`

                                               Estimate  Std. Error t value   Pr(>|t|)    
(Intercept)                                 2.69389e+06 6.27932e+05  4.2901 0.00011833 ***
base$`Household personal disposable income` 6.51705e-01 4.80342e-02 13.5675 4.4409e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 408601.418805 on 19 degrees of freedom
Number of observations: 21 Degrees of Freedom: 19 
SSR: 3172147269535.12 MSE: 166955119449.217 Root MSE: 408601.418805 
Multiple R-Squared: 0.908208 Adjusted R-Squared: 0.903377 

Los resultados muestran valores “elevados” en los coeficientes, pero esto se puede deber a las restricciones impuestas y al tamaño de muestra. Sin m¿embargo, basado en los p-values registrados, todas las variables resultan significativas. El modelo se limita a no poder evaluar una prueba de Hausman, debido a las limitaciones impuestas por la paquetería estadística.

Modelo 2

El segundo modelo toma la siguiente estructura:

\[\begin{align*} T_d = \beta_0 + \beta_1 i_d + \beta_2 workingagepop_d + \beta_3 C + e \\ C = \alpha_0 + \alpha_1 I_d + u \end{align*}\]

donde las variables \(workingagepop\) e \(i\) hacen referencia a la población de entre 15 y 65 años de edad y a la tasa de interés determinada por el banco central, respectivamente. Las demás con notación idéntica al modelo anterior representan lo mismo, empero ahora el consumo se asume con un parámetro diferente a 1.

Regresiones individuales por mínimos cuadrados ordinarios

# Tasa de desempleo
modelo2.td.ols = lm(Unemployment ~ base$working_age + base$`Total consumer spending`+ base$`Interest rate`  , data = base)
summary(modelo2.td.ols)

Call:
lm(formula = Unemployment ~ base$working_age + base$`Total consumer spending` + 
    base$`Interest rate`, data = base)

Residuals:
    Min      1Q  Median      3Q     Max 
-0.8811 -0.2290  0.0308  0.3041  0.6974 

Coefficients:
                                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)                     5.462e+00  1.513e+00   3.610 0.002163 ** 
base$working_age                1.142e-01  4.876e-02   2.342 0.031590 *  
base$`Total consumer spending` -7.476e-07  2.649e-07  -2.822 0.011750 *  
base$`Interest rate`           -1.982e-01  4.141e-02  -4.786 0.000172 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.4634 on 17 degrees of freedom
Multiple R-squared:  0.7589,    Adjusted R-squared:  0.7164 
F-statistic: 17.84 on 3 and 17 DF,  p-value: 1.703e-05
# Consumo
modelo.consumo.ols = lm(base$`Total consumer spending` ~ base$`Household personal disposable income`, data = base)
summary(modelo.consumo.ols)

Call:
lm(formula = base$`Total consumer spending` ~ base$`Household personal disposable income`, 
    data = base)

Residuals:
    Min      1Q  Median      3Q     Max 
-906138 -141420   -6312  118708  728223 

Coefficients:
                                             Estimate Std. Error t value Pr(>|t|)    
(Intercept)                                 1.978e+06  6.508e+05    3.04  0.00674 ** 
base$`Household personal disposable income` 7.070e-01  4.982e-02   14.19 1.45e-11 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 396000 on 19 degrees of freedom
Multiple R-squared:  0.9138,    Adjusted R-squared:  0.9093 
F-statistic: 201.4 on 1 and 19 DF,  p-value: 1.453e-11

Al 5% de significancia, tosas las variables resultan significativa para la primera ecuación. Y el p-value del modelo conjunto es ligeramente menor a la regla de decisión, lo que resulta una mejora al anterior. Para la segunda ecuación, resulta ser que la inversión es significativa.

Multicolinealidad modelo 2

vif(modelo2.td.ols)
              base$working_age base$`Total consumer spending`           base$`Interest rate` 
                     13.350846                      11.296061                       1.812061 

Tomando como regla de decisión un VIF mayor o igual a 7 para determinar la sospecha de tener presencia de multicolineadidad, sólo 1 factor no resulta sospechoso - la tasa de interés -, se concluye que efectivamente existen sospechas de multicolinealidad.

Heteroscedasticidad modelo 2

Al igual que en el modelo pasado, se plantea que:

\[\begin{align*} \hat{\epsilon^2} = \gamma_0 + \gamma_1 i_d + \gamma_2 workingagepop_d + \gamma_3 C + v \\ \hat{\epsilon^2} = \delta_0 + \delta_1 I_d + z \end{align*}\]

se espera que para que sea homoscedastico los parámetros sean 0.

White:

Los residuales también incluyen los factores cuadráticos y las interacciones entre variables

\[\begin{align*} H_0: \textrm{El modelo no tiene heteroscedasticidad (depende de los parámetros)} \\ H_a: \textrm{El modelo tiene heteroscedasticidad (Al menos un parámetro es distinto de 0)} \end{align*}\]

Breusch Pagan:

Para la primera ecuación: \[\begin{align*} H_0: \gamma_0 = \gamma_1 = \gamma_2 = \gamma_3 = 0\\ H_a: \textrm{Al menos un parámetro es distinto de 0} \end{align*}\]

Y para la segunda: \[\begin{align*} H_0: \delta_1 = 0\\ H_a: \delta_1 \neq 0 \end{align*}\]

bptest(modelo2.td.ols)

    studentized Breusch-Pagan test

data:  modelo2.td.ols
BP = 7.2842, df = 3, p-value = 0.06337

En lo que respecta a la primera prueba de White, se obtiene un p value menor al 0.05, por lo que se rechaza la nula y se concluye que hay heteroscedasticidad; al igual que en la prubea anterior, la prueba Breusch Pagan difiere de la de White, mas por las razones estipuladas anteriormente, se concluye que sí hay heteroscedasticidad. Las conclusiones para el consumo y su variable instrumental permanecen igual.

Reset de Ramsey para el modelo 2

Las hiótesis son, por los motivos expuestos anteriormente, las siguientes:

\[\begin{align*} H_0: \textrm{Hay problemas de especificación en el modelo}\\ H_a: \textrm{No hay problemas de especificación en el modelo} \end{align*}\]

modelo.ramsey.consumo = lm(base$`Total consumer spending` ~ base$`Household personal disposable income` + I(modelo.consumo.ols$fitted.values^2) + 
                        I(modelo.consumo.ols$fitted.values^3), data = base) 

summary(modelo.ramsey.consumo) # hay problema de especificación

Call:
lm(formula = base$`Total consumer spending` ~ base$`Household personal disposable income` + 
    I(modelo.consumo.ols$fitted.values^2) + I(modelo.consumo.ols$fitted.values^3), 
    data = base)

Residuals:
    Min      1Q  Median      3Q     Max 
-992211  -70234   40459  135437  610552 

Coefficients:
                                              Estimate Std. Error t value Pr(>|t|)
(Intercept)                                  3.610e+07  2.278e+07   1.585    0.131
base$`Household personal disposable income` -1.341e+01  9.927e+00  -1.351    0.194
I(modelo.consumo.ols$fitted.values^2)        1.785e-06  1.290e-06   1.384    0.184
I(modelo.consumo.ols$fitted.values^3)       -5.266e-14  3.915e-14  -1.345    0.196

Residual standard error: 386400 on 17 degrees of freedom
Multiple R-squared:  0.9265,    Adjusted R-squared:  0.9136 
F-statistic: 71.48 on 3 and 17 DF,  p-value: 7.624e-10
modelo2.ramsey.td = lm(base$Unemployment ~ base$working_age + base$`Total consumer spending`+ base$`Interest rate`  + I(modelo2.td.ols$fitted.values^2) + I(modelo2.td.ols$fitted.values^3), data = base) 

summary(modelo2.ramsey.td)  #hay problema de especificación

Call:
lm(formula = base$Unemployment ~ base$working_age + base$`Total consumer spending` + 
    base$`Interest rate` + I(modelo2.td.ols$fitted.values^2) + 
    I(modelo2.td.ols$fitted.values^3), data = base)

Residuals:
    Min      1Q  Median      3Q     Max 
-0.7112 -0.2908 -0.0183  0.2847  0.8049 

Coefficients:
                                    Estimate Std. Error t value Pr(>|t|)
(Intercept)                        1.770e+01  4.436e+01   0.399    0.695
base$working_age                   2.177e-01  1.089e+00   0.200    0.844
base$`Total consumer spending`    -1.576e-06  7.203e-06  -0.219    0.830
base$`Interest rate`              -6.186e-01  1.965e+00  -0.315    0.757
I(modelo2.td.ols$fitted.values^2) -1.031e+00  2.955e+00  -0.349    0.732
I(modelo2.td.ols$fitted.values^3)  1.352e-01  2.859e-01   0.473    0.643

Residual standard error: 0.4579 on 15 degrees of freedom
Multiple R-squared:  0.7923,    Adjusted R-squared:  0.7231 
F-statistic: 11.45 on 5 and 15 DF,  p-value: 0.000109

En las regresiones, tanto la del consumo, como la de desempleo, con un p value menor al 5% se concluye que existe problema de especificación en el modelo.

Modelo MC3E modelo 2

regresion_td.modelo2 = base$Unemployment ~ base$working_age + base$`Total consumer spending`+ base$`Interest rate`
regresion_c = base$`Total consumer spending` ~ base$`Household personal disposable income`

instr = ~ base$`Interest rate` + base$working_age + base$`Household personal disposable income`


modelo2.nr = systemfit(list(regresion_td, regresion_c), "3SLS", inst = instr, data = base)
summary(modelo2.nr)

systemfit results 
method: 3SLS 

        N DF         SSR    detRCov  OLS-R2 McElroy-R2
system 42 36 2.97923e+12 1.8478e+12 0.91379   0.886788

     N DF         SSR         MSE        RMSE        R2     Adj R2
eq1 21 17 2.93596e+02 1.72704e+01 4.15576e+00 -18.38987 -21.811607
eq2 21 19 2.97923e+12 1.56802e+11 3.95982e+05   0.91379   0.909253

The covariance matrix of the residuals used for estimation
             eq1          eq2
eq1  1.07158e+01     -1053041
eq2 -1.05304e+06 156801815156

The covariance matrix of the residuals
            eq1         eq2
eq1     17.2704 9.27482e+05
eq2 927482.0126 1.56802e+11

The correlations of the residuals
         eq1      eq2
eq1 1.000000 0.563611
eq2 0.563611 1.000000


3SLS estimates for 'eq1' (equation 1)
Model Formula: base$Unemployment ~ base$`Population growth` + base$Escolaridad + 
    base$`Total consumer spending`
Instruments: ~base$`Interest rate` + base$working_age + base$`Household personal disposable income`

                                   Estimate   Std. Error  t value Pr(>|t|)
(Intercept)                     4.92097e+01  4.89865e+01  1.00456  0.32920
base$`Population growth`       -2.20763e+01  1.75726e+01 -1.25629  0.22600
base$Escolaridad                7.95018e+00  4.87447e+00  1.63098  0.12128
base$`Total consumer spending` -7.51982e-06  5.18425e-06 -1.45051  0.16512

Residual standard error: 4.155762 on 17 degrees of freedom
Number of observations: 21 Degrees of Freedom: 17 
SSR: 293.596114 MSE: 17.27036 Root MSE: 4.155762 
Multiple R-Squared: -18.389866 Adjusted R-Squared: -21.811607 


3SLS estimates for 'eq2' (equation 2)
Model Formula: base$`Total consumer spending` ~ base$`Household personal disposable income`
Instruments: ~base$`Interest rate` + base$working_age + base$`Household personal disposable income`

                                               Estimate  Std. Error  t value   Pr(>|t|)    
(Intercept)                                 1.97842e+06 6.50798e+05  3.03999   0.006737 ** 
base$`Household personal disposable income` 7.06960e-01 4.98165e-02 14.19128 1.4531e-11 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 395982.089438 on 19 degrees of freedom
Number of observations: 21 Degrees of Freedom: 19 
SSR: 2979234487961 MSE: 156801815155.842 Root MSE: 395982.089438 
Multiple R-Squared: 0.91379 Adjusted R-Squared: 0.909253 

Contrario a los resultados del primer modelo, dada la ausencia de restricciones, los coeficientes estimados no son tan altos. Sin embargo, las variables no resultan significativas. Esto quizá pueda deberse a la presencia de multicolinealidad y heteroscedasticidad. Además, como se mostró con la prueba de Reset de Ramsey, surgieron problemas en la especificación del modelo.

LS0tCnRpdGxlOiAiRXZpZGVuY2lhIGVjb25vbWV0csOtYSAxIgphdXRob3I6ICJSb2dlbGlvIEVzdHVkaWxsbywgQW5kcmVhIEdvbnrDoWxleiB5IE1vbnRzZXJyYXQgVmlsbGFycmVhbCIKZGF0ZTogIjExIGRlIHNlcHRpZW1icmUgZGVsIDIwMjIiCm91dHB1dDoKICBodG1sX25vdGVib29rOgogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogeWVzCiAgICBkZl9wcmludDogcGFnZWQKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiB5ZXMKICAgIGRmX3ByaW50OiBwYWdlZAotLS0KCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpCmBgYAoKCmBgYHtyLCBpbmNsdWRlPUZBTFNFfQpsaWJyYXJ5KHJlYWR4bCkKbGlicmFyeShzeXN0ZW1maXQpCmxpYnJhcnkoY3VybCkKbGlicmFyeShrbml0cikKbGlicmFyeShjYXIpCmxpYnJhcnkobG10ZXN0KQoKYmFzZSA9IHJlYWRfZXhjZWwoIi9Vc2Vycy9yb2dlbGlvL0Rlc2t0b3AvNXRvIHNlbWVzdHJlL0Vjb25vbWV0cmlhIEkvQmFzZSBkZSBkYXRvcyBldmlkZW5jaWEgZWNvbm9tZXRyacyBYSAxLnhsc3giKQpgYGAKCkVsIHByZXNlbnRlIHRleHRvIHRpZW5lIGNvbW8gcHJvcMOzc2l0byBtb3N0cmFyIGVsIHByb2Nlc28geSBsb3MgcmVzdWx0YWRvcyBjb24gbG9zIGN1YWxlcyBzZSBiYXNhbiBsYXMgcmVnbGFzIGRlIGRlY2lzacOzbiBlc3RhYmxlY2lkYXMgZW4gbGEgZXZpZGVuY2lhIGZpbmFsLiBMYSBlc3RydWN0dXJhIGRlIGxhIHByZXNlbnRlIGRvY3VtZW50YWNpw7NuIHNlIGRpdmlkZSBlbiBkb3M6IHVuYSBwYXJhIGVsIG1vZGVsbyByZXN0cmluZ2lkbyBjb24gYmFzZSBlbiBsYSB0ZW9yw61hIGVjb27Ds21pY2EgKGVzcGVjaWZpY2FkYSBwb3IgbGEgbWlzbWEgZXZpZGVuY2lhKSB5IGxhIG90cmEgY29ycmVzcG9uZGllbnRlIGFsIG1vZGVsbyBmb3JtdWxhZG8gZGUgbWFuZXJhIHByb3BpYS4gUGFyYSBhbWJvcyBtb2RlbG9zIHNlIGVzdGltYSBzaSBoYXkgZXJyb3JlcyBkZSBlc3BlY2lmaWNhY2nDs24gZW4gZWwgbW9kZWxvLCBhdW5hZG8gYSBzaSBzZSBjdW1wbGVuIGxvcyBzdXB1ZXN0b3MgZGUgaG9tb3NjZWRhc3RpY2lkYWQsIGxhIG5vIGF1dG9jb3JyZWxhY2nDs24gY29udGVtcG9yw6FuZWEsIGxhIG5vIG11bHRpY29saW5lYWxpZGFkIHBlcmZlY3RhIG8gZWxldmFkYSB5LCBwb3Igw7psdGltbywgdW5hIHJlc29sdWNpw7NuIHBvciBtw61uaW1vcyBjdWFkcmFkb3MgZW4gMyBldGFwYXMgKE1DM0UpIHF1ZSBpbmNvcnBvcmVuIGxhIHNpbXVsdGFuZWlkYWQgZGUgbGFzIGVjdWFjaW9uZXMgZW4gY3Vlc3Rpw7NuLgoKIyBNb2RlbG8gMQoKRWwgc2lndWllbnRlIG1vZGVsbyBzZSBiYXNhIGVuIGxvIHJlcG9ydGFkbyBwb3IgbGEgdGVvcsOtYSBlY29uw7NtaWNhIHJlc3BlY3RvIGEgbGEgdGFzYSBkZSBkZXNlbXBsZW8uIE1hdGVtw6F0aWNhbWVudGUgZXN0ZSBxdWVkYSBmcm9tdWxhZG8gZGUgbGEgc2lndWllbnRlIG1hbmVyYToKClxiZWdpbnthbGlnbip9ClRfZCA9IFxiZXRhXzAgKyBcYmV0YV8xUF9jICsgR19jICsgQyArIGUgXFwKQyA9IFxhbHBoYV8wICsgXGFscGhhXzEgSV9kICsgdQpcZW5ke2FsaWduKn0KCiMjIFJlZ3Jlc2lvbmVzIGluZGl2aWR1YWxlcyBwb3IgbcOtbmltb3MgY3VhZHJhZG9zIG9yZGluYXJpb3MKCmBgYHtyfQojIFRhc2EgZGUgZGVzZW1wbGVvCgptb2RlbG8udGQub2xzID0gbG0oYmFzZSRVbmVtcGxveW1lbnQgfiBiYXNlJGBQb3B1bGF0aW9uIGdyb3d0aGAgKyBiYXNlJEVzY29sYXJpZGFkICsgCiAgICAgICAgICAgICAgICAgIGJhc2UkYFRvdGFsIGNvbnN1bWVyIHNwZW5kaW5nYCwgZGF0YSA9IGJhc2UpCnN1bW1hcnkobW9kZWxvLnRkLm9scykKCiMgQ29uc3Vtbwptb2RlbG8uY29uc3Vtby5vbHMgPSBsbShiYXNlJGBUb3RhbCBjb25zdW1lciBzcGVuZGluZ2AgfiBiYXNlJGBIb3VzZWhvbGQgcGVyc29uYWwgZGlzcG9zYWJsZSBpbmNvbWVgLCBkYXRhID0gYmFzZSkKc3VtbWFyeShtb2RlbG8uY29uc3Vtby5vbHMpCgoKYGBgCkFsIDUlIGRlIHNpZ25pZmljYW5jaWEsIHPDs2xvIGxhIGVzY29sYXJpZGFkIHJlc3VsdGEgc2lnbmlmaWNhdGl2YSBwYXJhIGxhIHByaW1lcmEgZWN1YWNpw7NuLiBZIGVsIHAtdmFsdWUgZGVsIG1vZGVsbyBjb25qdW50byBlcyBsaWdlcmFtZW50ZSBtYXlvciBhIGxhIHJlZ2xhIGRlIGRlY2lzacOzbi4gUGFyYSBsYSBzZWd1bmRhIGVjdWFjacOzbiwgcmVzdWx0YSBzZXIgcXVlIGxhIGludmVyc2nDs24gZXMgc2lnbmlmaWNhdGl2YS4KCgojIyBNdWx0aWNvbGluZWFsaWRhZAoKYGBge3J9CnZpZihtb2RlbG8udGQub2xzKQpgYGAKVG9tYW5kbyBjb21vIHJlZ2xhIGRlIGRlY2lzacOzbiB1biBWSUYgbWF5b3IgbyBpZ3VhbCBhIDcgcGFyYSBkZXRlcm1pbmFyIGxhIHNvc3BlY2hhIGRlIHRlbmVyIHByZXNlbmNpYSBkZSBtdWx0aWNvbGluZWFkaWRhZCwgc8OzbG8gMSBmYWN0b3IgcmVzdWx0YSBzb3NwZWNob3NvLCBtYXMgY29tbyBsb3Mgb3Ryb3MgZG9zIGN1ZW50YW4gY29uIHZhbG9yZXMgY2VyY2Fub3MgYSBsYSByZWdsYSBkZSBkZWNpc2nDs24sIHNlIGNvbmNsdXllIHF1ZSBlZmVjdGlmYW1lbnRlIGV4aXN0ZW4gc29zcGVjaGFzIGRlIG11bHRpY29saW5lYWxpZGFkLgoKIyMgSGV0ZXJvc2NlZGFzdGljaWRhZAoKTGFzIHBydWVuYXMgZGUgaGlww7N0ZXNpcyBwYXJhIGxhcyBwcnVlYmFzLCBlbiB0ZW9yw61hIHNlIHJlY3VwZXJhbiBsb3MgcmVzaWR1YWxlcyBhbCBjdWFkcmFkbyB5IHNlIGhhY2VuIHBydWViYXMgcGFyYSBkZXRlcm1pbmFyIHNpIGxvcyBwYXLDoW1ldHJvcyBlc3TDoW4gYXNvY2lhZG9zIGFsIGVycm9yOgoKXGJlZ2lue2FsaWduKn0KXGhhdHtcZXBzaWxvbl4yfSA9IFxnYW1tYV8wICsgXGdhbW1hXzEgUF9jICsgXGdhbW1hXzIgR19jICsgXGdhbW1hXzNDICsgdiBcXApcaGF0e1xlcHNpbG9uXjJ9ID0gXGRlbHRhXzAgKyBcZGVsdGFfMSBJX2QgKyB6ClxlbmR7YWxpZ24qfQoKc2UgZXNwZXJhIHF1ZSBwYXJhIHF1ZSBzZWEgaG9tb3NjZWRhc3RpY28gbG9zIHBhcsOhbWV0cm9zIHNlYW4gMC4KCioqKldoaXRlOioqKgoKTG9zIHJlc2lkdWFsZXMgdGFtYmnDqW4gaW5jbHV5ZW4gbG9zIGZhY3RvcmVzIGN1YWRyw6F0aWNvcyB5IGxhcyBpbnRlcmFjY2lvbmVzIGVudHJlIHZhcmlhYmxlcwoKXGJlZ2lue2FsaWduKn0KSF8wOiBcdGV4dHJte0VsIG1vZGVsbyBubyB0aWVuZSBoZXRlcm9zY2VkYXN0aWNpZGFkIChkZXBlbmRlIGRlIGxvcyBwYXLDoW1ldHJvcyl9IFxcCkhfYTogXHRleHRybXtFbCBtb2RlbG8gdGllbmUgaGV0ZXJvc2NlZGFzdGljaWRhZCAoQWwgbWVub3MgdW4gcGFyw6FtZXRybyBlcyBkaXN0aW50byBkZSAwKX0KXGVuZHthbGlnbip9CgoqKipCcmV1c2NoIFBhZ2FuOioqKgoKUGFyYSBsYSBwcmltZXJhIGVjdWFjacOzbjogClxiZWdpbnthbGlnbip9CkhfMDogXGdhbW1hXzAgPSBcZ2FtbWFfMSA9IFxnYW1tYV8yID0gXGdhbW1hXzMgPSAwXFwKSF9hOiBcdGV4dHJte0FsIG1lbm9zIHVuIHBhcsOhbWV0cm8gZXMgZGlzdGludG8gZGUgMH0KXGVuZHthbGlnbip9CgpZIHBhcmEgbGEgc2VndW5kYToKXGJlZ2lue2FsaWduKn0KSF8wOiAgXGRlbHRhXzEgPSAwXFwKSF9hOiAgXGRlbHRhXzEgXG5lcSAwClxlbmR7YWxpZ24qfQoKCmBgYHtyfQojRGVzZW1wbGVvCiMjIFdoaXRlCmJhc2UkcmVzLnNxLnRkID0gbW9kZWxvLnRkLm9scyRyZXNpZHVhbHNeMgoKd2hpdGUuYXV4LnRkID0gbG0oYmFzZSRyZXMuc3EudGQgfiBiYXNlJGBQb3B1bGF0aW9uIGdyb3d0aGAgKyBiYXNlJEVzY29sYXJpZGFkICsgCiAgICAgICAgICAgICAgICAgICAgYmFzZSRgVG90YWwgY29uc3VtZXIgc3BlbmRpbmdgICsgSShiYXNlJGBQb3B1bGF0aW9uIGdyb3d0aGBeMikgKyBJKGJhc2UkRXNjb2xhcmlkYWReMikrCiAgICAgICAgICAgICAgICAgICAgSShiYXNlJGBUb3RhbCBjb25zdW1lciBzcGVuZGluZ2BeMikgKyBiYXNlJGBQb3B1bGF0aW9uIGdyb3d0aGAqIGJhc2UkRXNjb2xhcmlkYWQrIAogICAgICAgICAgICAgICAgICAgIGJhc2UkYFBvcHVsYXRpb24gZ3Jvd3RoYCpiYXNlJGBUb3RhbCBjb25zdW1lciBzcGVuZGluZ2AgKyBiYXNlJEVzY29sYXJpZGFkKmJhc2UkYFRvdGFsIGNvbnN1bWVyIHNwZW5kaW5nYCwgZGF0YSA9IGJhc2UpIAoKc3VtbWFyeSh3aGl0ZS5hdXgudGQpIAoKIyMgQnJlc3VjaCBQYWdhbgoKYnB0ZXN0KG1vZGVsby50ZC5vbHMpCgoKI0NvbnN1bW8KCiMjIFdoaXRlCmJhc2UkcmVzLnNxLmNvbnN1bW8gPSBtb2RlbG8uY29uc3Vtby5vbHMkcmVzaWR1YWxzXjIKCndoaXRlLmF1eC5jb25zdW1vPSBsbShiYXNlJHJlcy5zcS5jb25zdW1vIH4gYmFzZSRgSG91c2Vob2xkIHBlcnNvbmFsIGRpc3Bvc2FibGUgaW5jb21lYCArIEkoYmFzZSRgSG91c2Vob2xkIHBlcnNvbmFsIGRpc3Bvc2FibGUgaW5jb21lYF4yKSwgZGF0YSA9IGJhc2UpIAoKc3VtbWFyeSh3aGl0ZS5hdXguY29uc3VtbykKCiMjIEJyZXN1Y2ggUGFnYW4KYnB0ZXN0KG1vZGVsby5jb25zdW1vLm9scykgCgpgYGAKCkNvbiBsYSBwcnVlYmEgZGUgV2hpdGUsIGxhIHByaW1lcmEgZWN1YWNpw7NuLCBzZSByZWNoYXphIGxhIG51bGEsIGxvIGN1YWwgaW5kaWNhIGhldGVyb3NjZWRhc3RpY2lkYWQuIEEgcGVzYXIgZGUgcXVlIGVuIGxhIEJyZXVzY2ggUGFnYW4gc2UgZW5jdWVudHJhIHVuIHJlc3VsdGFkbyBjb250cmFyaW8sIGxhIGRlIFdoaXRlIHJlc3VsdGEgY29udGVuZXIgbWF5b3JlcyB0w6lybWlub3MgYSBldmFsdWFyLCBwb3IgbG8gcXVlIHNlIGNvbmNsdXllIGxvIHJlZmVyZW50ZSBhIGVzdGEgcHJ1ZWJhLiBBbWJhcyBwcnVlYmFzIGNvaW5jaWRlbiBxdWUgbm8gaGF5IGhldGVyb3NjZWRhc3RpY2lkYWQuCgoKIyMgUmVzZXQgZGUgUmFtc2V5CgpMYSBwcnVlYmEgZGUgUmVzZXQgZGUgUmFtc2V5LCBjb21vIGVzIHRyYWJhamFkYSBlbiBlc3RlIHRyYWJham8sIGZvcm11bGEgcXVlIGxvcyAqZml0dGVkIHZhbHVlcyogZWxldmFkb3MgYWwgY3VhZHJhZG8geSBhbCBjdWJvIGRlbCBtb2RlbG8gbm8gc2UgcmVsYWNpb25hbiBjb24gZWwgbW9kZWxvIGVuIHPDrS4gRXN0byBkZXRlcm1pbmEgc2kgaGF5IHByb2JsZW1hcyBkZSBlc3BlY2lmaWNhY2nDs24gZW4gZWwgbW9kZWxvLiBMYXMgaGlww7N0ZXNpcywgcG9yIHRhbnRvIHNvbjoKClxiZWdpbnthbGlnbip9CkhfMDogIFx0ZXh0cm17SGF5IHByb2JsZW1hcyBkZSBlc3BlY2lmaWNhY2nDs24gZW4gZWwgbW9kZWxvfVxcCkhfYTogIFx0ZXh0cm17Tm8gaGF5IHByb2JsZW1hcyBkZSBlc3BlY2lmaWNhY2nDs24gZW4gZWwgbW9kZWxvfQpcZW5ke2FsaWduKn0KCgpgYGB7cn0KIyBQYXJhIGVsIGNvbnN1bW8KbW9kZWxvLnJhbXNleS5jb25zdW1vID0gbG0oYmFzZSRgVG90YWwgY29uc3VtZXIgc3BlbmRpbmdgIH4gYmFzZSRgSG91c2Vob2xkIHBlcnNvbmFsIGRpc3Bvc2FibGUgaW5jb21lYCArIEkobW9kZWxvLmNvbnN1bW8ub2xzJGZpdHRlZC52YWx1ZXNeMikgKyAKICAgICAgICAgICAgICAgICAgICAgICAgSShtb2RlbG8uY29uc3Vtby5vbHMkZml0dGVkLnZhbHVlc14zKSwgZGF0YSA9IGJhc2UpIAoKc3VtbWFyeShtb2RlbG8ucmFtc2V5LmNvbnN1bW8pIAoKCgojUGFyYSBsYSB0YXNhIGRlIGRlc2VtcGxlbwptb2RlbG8ucmFtc2V5LnRkID0gbG0oYmFzZSRVbmVtcGxveW1lbnQgfiBiYXNlJGBQb3B1bGF0aW9uIGdyb3d0aGAgKyBiYXNlJEVzY29sYXJpZGFkICsgCiAgICAgICAgICAgICAgICAgICAgIGJhc2UkYFRvdGFsIGNvbnN1bWVyIHNwZW5kaW5nYCArIEkobW9kZWxvLnRkLm9scyRmaXR0ZWQudmFsdWVzXjIpICsgCiAgICAgICAgICAgICAgICAgICAgIEkobW9kZWxvLnRkLm9scyRmaXR0ZWQudmFsdWVzXjMpLCBkYXRhID0gYmFzZSkgCgpzdW1tYXJ5KG1vZGVsby5yYW1zZXkudGQpIApgYGAKQ29uIGxvcyB2YWxvcmVzIGRlIGxvcyBjb2VmaWNpZW50ZXMgZGUgbG9zIGZpdHRlZCB2YWx1ZXMsIG5pbmd1bm8gcmVzdWx0YSBzaWduaWZpY2FudGUgZW4gYW1ib3MgbW9kZWxvcywgcG9yIGxvIHF1ZSBzZSBjb25jbHV5ZSBxdWUgbm8gaGF5IHByb2JsZW1hcyBkZSBlc3BlY2lmaWNpYWNpw7NuLgoKCiMjIE1vZGVsbyBNQzNFIHJlc3RyaW5naWRvCgpCYWpvIGxhcyByZXN0cmljY2lvbmVzIGRlIHF1ZSBsb3MgY29lZmljaWVudGVzIGRlbCBjb25zdW1vIHkgZWwgZ3JhZG8gcHJvbWVkaW8gZGUgZXNjb2xhcmlkYWQgc29uIGlndWFsZXMgYSAxLCBzZSB0cmFiYWphIGVsIG1vZGVsbyBwb3IgTUMzRToKCmBgYHtyfQpyZWdyZXNpb25fdGQgPSBiYXNlJFVuZW1wbG95bWVudCB+IGJhc2UkYFBvcHVsYXRpb24gZ3Jvd3RoYCArIGJhc2UkRXNjb2xhcmlkYWQgKyAKICBiYXNlJGBUb3RhbCBjb25zdW1lciBzcGVuZGluZ2AKcmVncmVzaW9uX2MgPSBiYXNlJGBUb3RhbCBjb25zdW1lciBzcGVuZGluZ2AgfiBiYXNlJGBIb3VzZWhvbGQgcGVyc29uYWwgZGlzcG9zYWJsZSBpbmNvbWVgCgppbnN0ciA9IH4gYmFzZSRgUG9wdWxhdGlvbiBncm93dGhgICsgYmFzZSRFc2NvbGFyaWRhZCArIGJhc2UkYEhvdXNlaG9sZCBwZXJzb25hbCBkaXNwb3NhYmxlIGluY29tZWAKCnJlc3RyaWNjaW9uZXMgPSBtYXRyaXgoYygwLDAsMCwwLDEsMCwwLDEsMCwwLDAsMCksIG5jb2wgPSA2LCBucm93ID0gMikKcmVzdWx0YWRvcyA9IG1hdHJpeChjKDEsMSksbmNvbCA9IDEsIG5yb3cgPSAyKQoKbW9kZWxvLnIgPSBzeXN0ZW1maXQobGlzdChyZWdyZXNpb25fdGQsIHJlZ3Jlc2lvbl9jKSwgIjNTTFMiLCBpbnN0ID0gaW5zdHIsIHJlc3RyaWN0Lm1hdHJpeCA9IHJlc3RyaWNjaW9uZXMsCiAgICAgICAgICByZXN0cmljdC5yaHMgPSByZXN1bHRhZG9zLCBkYXRhID0gYmFzZSkKc3VtbWFyeShtb2RlbG8ucikKCgpgYGAKCkxvcyByZXN1bHRhZG9zIG11ZXN0cmFuIHZhbG9yZXMgImVsZXZhZG9zIiBlbiBsb3MgY29lZmljaWVudGVzLCBwZXJvIGVzdG8gc2UgcHVlZGUgZGViZXIgYSBsYXMgcmVzdHJpY2Npb25lcyBpbXB1ZXN0YXMgeSBhbCB0YW1hw7FvIGRlIG11ZXN0cmEuIFNpbiBtwr9lbWJhcmdvLCBiYXNhZG8gZW4gbG9zIHAtdmFsdWVzIHJlZ2lzdHJhZG9zLCB0b2RhcyBsYXMgdmFyaWFibGVzIHJlc3VsdGFuIHNpZ25pZmljYXRpdmFzLiBFbCBtb2RlbG8gc2UgbGltaXRhIGEgbm8gcG9kZXIgZXZhbHVhciB1bmEgcHJ1ZWJhIGRlIEhhdXNtYW4sIGRlYmlkbyBhIGxhcyBsaW1pdGFjaW9uZXMgaW1wdWVzdGFzIHBvciBsYSBwYXF1ZXRlcsOtYSBlc3RhZMOtc3RpY2EuCgoKIyBNb2RlbG8gMgoKRWwgc2VndW5kbyBtb2RlbG8gdG9tYSBsYSBzaWd1aWVudGUgZXN0cnVjdHVyYToKClxiZWdpbnthbGlnbip9ClRfZCA9IFxiZXRhXzAgKyBcYmV0YV8xIGlfZCArIFxiZXRhXzIgd29ya2luZ2FnZXBvcF9kICsgXGJldGFfMyBDICsgZSBcXApDID0gXGFscGhhXzAgKyBcYWxwaGFfMSBJX2QgKyB1ClxlbmR7YWxpZ24qfQoKZG9uZGUgbGFzIHZhcmlhYmxlcyAkd29ya2luZ2FnZXBvcCQgZSAkaSQgaGFjZW4gcmVmZXJlbmNpYSBhIGxhIHBvYmxhY2nDs24gZGUgZW50cmUgMTUgeSA2NSBhw7FvcyBkZSBlZGFkIHkgYSBsYSB0YXNhIGRlIGludGVyw6lzIGRldGVybWluYWRhIHBvciBlbCBiYW5jbyBjZW50cmFsLCByZXNwZWN0aXZhbWVudGUuIExhcyBkZW3DoXMgY29uIG5vdGFjacOzbiBpZMOpbnRpY2EgYWwgbW9kZWxvIGFudGVyaW9yIHJlcHJlc2VudGFuIGxvIG1pc21vLCBlbXBlcm8gYWhvcmEgZWwgY29uc3VtbyBzZSBhc3VtZSBjb24gdW4gcGFyw6FtZXRybyBkaWZlcmVudGUgYSAxLgoKIyMgUmVncmVzaW9uZXMgaW5kaXZpZHVhbGVzIHBvciBtw61uaW1vcyBjdWFkcmFkb3Mgb3JkaW5hcmlvcwpgYGB7cn0KIyBUYXNhIGRlIGRlc2VtcGxlbwptb2RlbG8yLnRkLm9scyA9IGxtKFVuZW1wbG95bWVudCB+IGJhc2Ukd29ya2luZ19hZ2UgKyBiYXNlJGBUb3RhbCBjb25zdW1lciBzcGVuZGluZ2ArIGJhc2UkYEludGVyZXN0IHJhdGVgICAsIGRhdGEgPSBiYXNlKQpzdW1tYXJ5KG1vZGVsbzIudGQub2xzKQoKIyBDb25zdW1vCm1vZGVsby5jb25zdW1vLm9scyA9IGxtKGJhc2UkYFRvdGFsIGNvbnN1bWVyIHNwZW5kaW5nYCB+IGJhc2UkYEhvdXNlaG9sZCBwZXJzb25hbCBkaXNwb3NhYmxlIGluY29tZWAsIGRhdGEgPSBiYXNlKQpzdW1tYXJ5KG1vZGVsby5jb25zdW1vLm9scykKCmBgYAoKQWwgNSUgZGUgc2lnbmlmaWNhbmNpYSwgdG9zYXMgbGFzIHZhcmlhYmxlcyByZXN1bHRhbiBzaWduaWZpY2F0aXZhIHBhcmEgbGEgcHJpbWVyYSBlY3VhY2nDs24uIFkgZWwgcC12YWx1ZSBkZWwgbW9kZWxvIGNvbmp1bnRvIGVzIGxpZ2VyYW1lbnRlIG1lbm9yIGEgbGEgcmVnbGEgZGUgZGVjaXNpw7NuLCBsbyBxdWUgcmVzdWx0YSB1bmEgbWVqb3JhIGFsIGFudGVyaW9yLiBQYXJhIGxhIHNlZ3VuZGEgZWN1YWNpw7NuLCByZXN1bHRhIHNlciBxdWUgbGEgaW52ZXJzacOzbiBlcyBzaWduaWZpY2F0aXZhLgoKCiMjIE11bHRpY29saW5lYWxpZGFkIG1vZGVsbyAyCgpgYGB7cn0KdmlmKG1vZGVsbzIudGQub2xzKQoKYGBgClRvbWFuZG8gY29tbyByZWdsYSBkZSBkZWNpc2nDs24gdW4gVklGIG1heW9yIG8gaWd1YWwgYSA3IHBhcmEgZGV0ZXJtaW5hciBsYSBzb3NwZWNoYSBkZSB0ZW5lciBwcmVzZW5jaWEgZGUgbXVsdGljb2xpbmVhZGlkYWQsIHPDs2xvIDEgZmFjdG9yIG5vIHJlc3VsdGEgc29zcGVjaG9zbyAtIGxhIHRhc2EgZGUgaW50ZXLDqXMgLSwgc2UgY29uY2x1eWUgcXVlIGVmZWN0aXZhbWVudGUgZXhpc3RlbiBzb3NwZWNoYXMgZGUgbXVsdGljb2xpbmVhbGlkYWQuCgojIyBIZXRlcm9zY2VkYXN0aWNpZGFkIG1vZGVsbyAyCgpBbCBpZ3VhbCBxdWUgZW4gZWwgbW9kZWxvIHBhc2Fkbywgc2UgcGxhbnRlYSBxdWU6CgpcYmVnaW57YWxpZ24qfQpcaGF0e1xlcHNpbG9uXjJ9ID0gXGdhbW1hXzAgKyBcZ2FtbWFfMSBpX2QgKyBcZ2FtbWFfMiB3b3JraW5nYWdlcG9wX2QgKyBcZ2FtbWFfMyBDICsgdiBcXApcaGF0e1xlcHNpbG9uXjJ9ID0gXGRlbHRhXzAgKyBcZGVsdGFfMSBJX2QgKyB6ClxlbmR7YWxpZ24qfQoKc2UgZXNwZXJhIHF1ZSBwYXJhIHF1ZSBzZWEgaG9tb3NjZWRhc3RpY28gbG9zIHBhcsOhbWV0cm9zIHNlYW4gMC4KCioqKldoaXRlOioqKgoKTG9zIHJlc2lkdWFsZXMgdGFtYmnDqW4gaW5jbHV5ZW4gbG9zIGZhY3RvcmVzIGN1YWRyw6F0aWNvcyB5IGxhcyBpbnRlcmFjY2lvbmVzIGVudHJlIHZhcmlhYmxlcwoKXGJlZ2lue2FsaWduKn0KSF8wOiBcdGV4dHJte0VsIG1vZGVsbyBubyB0aWVuZSBoZXRlcm9zY2VkYXN0aWNpZGFkIChkZXBlbmRlIGRlIGxvcyBwYXLDoW1ldHJvcyl9IFxcCkhfYTogXHRleHRybXtFbCBtb2RlbG8gdGllbmUgaGV0ZXJvc2NlZGFzdGljaWRhZCAoQWwgbWVub3MgdW4gcGFyw6FtZXRybyBlcyBkaXN0aW50byBkZSAwKX0KXGVuZHthbGlnbip9CgoqKipCcmV1c2NoIFBhZ2FuOioqKgoKUGFyYSBsYSBwcmltZXJhIGVjdWFjacOzbjogClxiZWdpbnthbGlnbip9CkhfMDogXGdhbW1hXzAgPSBcZ2FtbWFfMSA9IFxnYW1tYV8yID0gXGdhbW1hXzMgPSAwXFwKSF9hOiBcdGV4dHJte0FsIG1lbm9zIHVuIHBhcsOhbWV0cm8gZXMgZGlzdGludG8gZGUgMH0KXGVuZHthbGlnbip9CgpZIHBhcmEgbGEgc2VndW5kYToKXGJlZ2lue2FsaWduKn0KSF8wOiAgXGRlbHRhXzEgPSAwXFwKSF9hOiAgXGRlbHRhXzEgXG5lcSAwClxlbmR7YWxpZ24qfQoKYGBge3J9CiNEZXNlbXBsZW8KCiMjIFdoaXRlCmJhc2UkcmVzLnNxLnRkLm1vZGVsbzIgPSBtb2RlbG8yLnRkLm9scyRyZXNpZHVhbHNeMgoKd2hpdGUuYXV4LnRkLm1vZGVsbzIgPSBsbShiYXNlJHJlcy5zcS50ZC5tb2RlbG8yIH4gYmFzZSR3b3JraW5nX2FnZSArIGJhc2UkYFRvdGFsIGNvbnN1bWVyIHNwZW5kaW5nYCsgYmFzZSRgSW50ZXJlc3QgcmF0ZWAgKyBJKGJhc2Ukd29ya2luZ19hZ2VeMikgKyBJKGJhc2UkYFRvdGFsIGNvbnN1bWVyIHNwZW5kaW5nYF4yKSArIEkoYmFzZSRgSW50ZXJlc3QgcmF0ZWBeMikgKyBiYXNlJHdvcmtpbmdfYWdlKmJhc2UkYFRvdGFsIGNvbnN1bWVyIHNwZW5kaW5nYCArIGJhc2Ukd29ya2luZ19hZ2UqYmFzZSRgSW50ZXJlc3QgcmF0ZWAgKyBiYXNlJGBUb3RhbCBjb25zdW1lciBzcGVuZGluZ2AqYmFzZSRgSW50ZXJlc3QgcmF0ZWAsIGRhdGEgPSBiYXNlKSAKCnN1bW1hcnkod2hpdGUuYXV4LnRkLm1vZGVsbzIpIAoKIyMgQnJlc3VjaCBQYWdhbgoKYnB0ZXN0KG1vZGVsbzIudGQub2xzKQoKCiNDb25zdW1vCgojIyBXaGl0ZQpiYXNlJHJlcy5zcS5jb25zdW1vLm1vZGVsbzIgPSBtb2RlbG8uY29uc3Vtby5vbHMkcmVzaWR1YWxzXjIKCndoaXRlLmF1eC5jb25zdW1vLm1vZGVsbzIgPSBsbShiYXNlJHJlcy5zcS5jb25zdW1vLm1vZGVsbzIgfiBiYXNlJGBIb3VzZWhvbGQgcGVyc29uYWwgZGlzcG9zYWJsZSBpbmNvbWVgICsgSShiYXNlJGBIb3VzZWhvbGQgcGVyc29uYWwgZGlzcG9zYWJsZSBpbmNvbWVgXjIpLCBkYXRhID0gYmFzZSkgCgpzdW1tYXJ5KHdoaXRlLmF1eC5jb25zdW1vLm1vZGVsbzIpIAoKIyMgQnJlc3VjaCBQYWdhbgpicHRlc3QobW9kZWxvLmNvbnN1bW8ub2xzKSAKCmBgYApFbiBsbyBxdWUgcmVzcGVjdGEgYSBsYSBwcmltZXJhIHBydWViYSBkZSBXaGl0ZSwgc2Ugb2J0aWVuZSB1biBwIHZhbHVlIG1lbm9yIGFsIDAuMDUsIHBvciBsbyBxdWUgc2UgcmVjaGF6YSBsYSBudWxhIHkgc2UgY29uY2x1eWUgcXVlIGhheSBoZXRlcm9zY2VkYXN0aWNpZGFkOyBhbCBpZ3VhbCBxdWUgZW4gbGEgcHJ1YmVhIGFudGVyaW9yLCBsYSBwcnVlYmEgQnJldXNjaCBQYWdhbiBkaWZpZXJlIGRlIGxhIGRlIFdoaXRlLCBtYXMgcG9yIGxhcyByYXpvbmVzIGVzdGlwdWxhZGFzIGFudGVyaW9ybWVudGUsIHNlIGNvbmNsdXllIHF1ZSBzw60gaGF5IGhldGVyb3NjZWRhc3RpY2lkYWQuIExhcyBjb25jbHVzaW9uZXMgcGFyYSBlbCBjb25zdW1vIHkgc3UgdmFyaWFibGUgaW5zdHJ1bWVudGFsIHBlcm1hbmVjZW4gaWd1YWwuCgoKIyMgUmVzZXQgZGUgUmFtc2V5IHBhcmEgZWwgbW9kZWxvIDIKCkxhcyBoacOzdGVzaXMgc29uLCBwb3IgbG9zIG1vdGl2b3MgZXhwdWVzdG9zIGFudGVyaW9ybWVudGUsIGxhcyBzaWd1aWVudGVzOiAKClxiZWdpbnthbGlnbip9CkhfMDogIFx0ZXh0cm17SGF5IHByb2JsZW1hcyBkZSBlc3BlY2lmaWNhY2nDs24gZW4gZWwgbW9kZWxvfVxcCkhfYTogIFx0ZXh0cm17Tm8gaGF5IHByb2JsZW1hcyBkZSBlc3BlY2lmaWNhY2nDs24gZW4gZWwgbW9kZWxvfQpcZW5ke2FsaWduKn0KCgpgYGB7cn0KI2NvbnN1bW8KbW9kZWxvLnJhbXNleS5jb25zdW1vID0gbG0oYmFzZSRgVG90YWwgY29uc3VtZXIgc3BlbmRpbmdgIH4gYmFzZSRgSG91c2Vob2xkIHBlcnNvbmFsIGRpc3Bvc2FibGUgaW5jb21lYCArIEkobW9kZWxvLmNvbnN1bW8ub2xzJGZpdHRlZC52YWx1ZXNeMikgKyAKICAgICAgICAgICAgICAgICAgICAgICAgSShtb2RlbG8uY29uc3Vtby5vbHMkZml0dGVkLnZhbHVlc14zKSwgZGF0YSA9IGJhc2UpIAoKc3VtbWFyeShtb2RlbG8ucmFtc2V5LmNvbnN1bW8pIAoKCiN0YXNhIGRlIGRlc2VtcGxlbwptb2RlbG8yLnJhbXNleS50ZCA9IGxtKGJhc2UkVW5lbXBsb3ltZW50IH4gYmFzZSR3b3JraW5nX2FnZSArIGJhc2UkYFRvdGFsIGNvbnN1bWVyIHNwZW5kaW5nYCsgYmFzZSRgSW50ZXJlc3QgcmF0ZWAgICsgSShtb2RlbG8yLnRkLm9scyRmaXR0ZWQudmFsdWVzXjIpICsgSShtb2RlbG8yLnRkLm9scyRmaXR0ZWQudmFsdWVzXjMpLCBkYXRhID0gYmFzZSkgCgpzdW1tYXJ5KG1vZGVsbzIucmFtc2V5LnRkKSAgI2hheSBwcm9ibGVtYSBkZSBlc3BlY2lmaWNhY2nDs24KYGBgCkVuIGxhcyByZWdyZXNpb25lcywgdGFudG8gbGEgZGVsIGNvbnN1bW8sIGNvbW8gbGEgZGUgZGVzZW1wbGVvLCBjb24gdW4gcCB2YWx1ZSBtZW5vciBhbCA1JSBzZSBjb25jbHV5ZSBxdWUgZXhpc3RlIHByb2JsZW1hIGRlIGVzcGVjaWZpY2FjacOzbiBlbiBlbCBtb2RlbG8uIAoKCgojIyBNb2RlbG8gTUMzRSBtb2RlbG8gMgpgYGB7cn0KcmVncmVzaW9uX3RkLm1vZGVsbzIgPSBiYXNlJFVuZW1wbG95bWVudCB+IGJhc2Ukd29ya2luZ19hZ2UgKyBiYXNlJGBUb3RhbCBjb25zdW1lciBzcGVuZGluZ2ArIGJhc2UkYEludGVyZXN0IHJhdGVgCnJlZ3Jlc2lvbl9jID0gYmFzZSRgVG90YWwgY29uc3VtZXIgc3BlbmRpbmdgIH4gYmFzZSRgSG91c2Vob2xkIHBlcnNvbmFsIGRpc3Bvc2FibGUgaW5jb21lYAoKaW5zdHIgPSB+IGJhc2UkYEludGVyZXN0IHJhdGVgICsgYmFzZSR3b3JraW5nX2FnZSArIGJhc2UkYEhvdXNlaG9sZCBwZXJzb25hbCBkaXNwb3NhYmxlIGluY29tZWAKCgptb2RlbG8yLm5yID0gc3lzdGVtZml0KGxpc3QocmVncmVzaW9uX3RkLCByZWdyZXNpb25fYyksICIzU0xTIiwgaW5zdCA9IGluc3RyLCBkYXRhID0gYmFzZSkKc3VtbWFyeShtb2RlbG8yLm5yKQoKYGBgCgoKQ29udHJhcmlvIGEgbG9zIHJlc3VsdGFkb3MgZGVsIHByaW1lciBtb2RlbG8sIGRhZGEgbGEgYXVzZW5jaWEgZGUgcmVzdHJpY2Npb25lcywgbG9zIGNvZWZpY2llbnRlcyBlc3RpbWFkb3Mgbm8gc29uIHRhbiBhbHRvcy4gU2luIGVtYmFyZ28sIGxhcyB2YXJpYWJsZXMgbm8gcmVzdWx0YW4gc2lnbmlmaWNhdGl2YXMuIEVzdG8gcXVpesOhIHB1ZWRhIGRlYmVyc2UgYSBsYSBwcmVzZW5jaWEgZGUgbXVsdGljb2xpbmVhbGlkYWQgeSBoZXRlcm9zY2VkYXN0aWNpZGFkLiBBZGVtw6FzLCBjb21vIHNlIG1vc3Ryw7MgY29uIGxhIHBydWViYSBkZSBSZXNldCBkZSBSYW1zZXksIHN1cmdpZXJvbiBwcm9ibGVtYXMgZW4gbGEgZXNwZWNpZmljYWNpw7NuIGRlbCBtb2RlbG8uCgo=