Para ilustrar la metodología usaremos una base de datos incorporada en R
llamada datos de la regresión de Longley donde la variable respuesta es
el número de personas empleadas anualmente (Employed) de
1947 hasta 1962 y utilizaremos como variables predictoras el deflactor
del precio implícito (GNP y en español es el PIB) con
índice 1954=100 y la población (Population) no
institucionalizada de 14 o más años de edad. Los datos aparecieron
originalmente en Longley (1967)[https://www.jstor.org/stable/2283673].
Uno de los principales problemas en la economía es evaluar el crecimiento económico, es decir, el valor de los bienes y servicios producidos por una economía a lo largo del tiempo. El principal escollo para medir esto es la distorsión que genera el incremento de los precios y su repercusión sobre el valor de lo producido, conocido como inflación.
Para evaluar el crecimiento real, y no sólo de su valor, se utiliza el
producto interior bruto real, en el que se consideran sólo las
variaciones de las cantidades producidas en términos reales. Para ello
se hace necesario eliminar el efecto de los precios sobre la economía.
Por tanto es necesario el ajuste a través de un deflactor.
Un
deflactor es un índice de precios, simple o compuesto, que permite
desagregar las series en sus dos componentes de precios y cantidades.
El ejemplo más útil es el deflactor del PIB que resulta ser el cociente entre el PIB nominal y el PIB real, expresado en forma de Índice, o la relación entre el valor del PIB del año en curso y el valor del PIB del año base. El deflactor del PIB entonces sirve para medir el crecimiento económico real -no meramenente nominal- de una economía.
## GNP.deflator GNP Unemployed Armed.Forces Population Year Employed
## 1947 83.0 234.289 235.6 159.0 107.608 1947 60.323
## 1948 88.5 259.426 232.5 145.6 108.632 1948 61.122
## 1949 88.2 258.054 368.2 161.6 109.773 1949 60.171
## 1950 89.5 284.599 335.1 165.0 110.929 1950 61.187
## 1951 96.2 328.975 209.9 309.9 112.075 1951 63.221
## 1952 98.1 346.999 193.2 359.4 113.270 1952 63.639
## 1953 99.0 365.385 187.0 354.7 115.094 1953 64.989
## 1954 100.0 363.112 357.8 335.0 116.219 1954 63.761
## 1955 101.2 397.469 290.4 304.8 117.388 1955 66.019
## 1956 104.6 419.180 282.2 285.7 118.734 1956 67.857
## 1957 108.4 442.769 293.6 279.8 120.445 1957 68.169
## 1958 110.8 444.546 468.1 263.7 121.950 1958 66.513
## 1959 112.6 482.704 381.3 255.2 123.366 1959 68.655
## 1960 114.2 502.601 393.1 251.4 125.368 1960 69.564
## 1961 115.7 518.173 480.6 257.2 127.852 1961 69.331
## 1962 116.9 554.894 400.7 282.7 130.081 1962 70.551
El modelo lineal ajustado fue el siguiente:
##
## Call:
## lm(formula = Employed ~ GNP + Population, data = longley)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.80899 -0.33282 -0.02329 0.25895 1.08800
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 88.93880 13.78503 6.452 2.16e-05 ***
## GNP 0.06317 0.01065 5.933 4.96e-05 ***
## Population -0.40974 0.15214 -2.693 0.0184 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5459 on 13 degrees of freedom
## Multiple R-squared: 0.9791, Adjusted R-squared: 0.9758
## F-statistic: 303.9 on 2 and 13 DF, p-value: 1.221e-11
##
## Correlation of Coefficients:
## (Intercept) GNP
## GNP 0.98
## Population -1.00 -0.99
## (Intercept) GNP Population
## (Intercept) 190.0269691 0.1445617813 -2.0954381
## GNP 0.1445618 0.0001133631 -0.0016054
## Population -2.0954381 -0.0016053999 0.0231456
## (Intercept) GNP Population
## (Intercept) 1.0000000 0.9849405 -0.9991552
## GNP 0.9849405 1.0000000 -0.9910901
## Population -0.9991552 -0.9910901 1.0000000
Comparando la correlación entre las variables GNP y
Population y sus correpondientes coeficientes. Podemos
apreciar que están altamente correlacionados negativamente.
En datos
colectados a través del tiempo tales como estos, los errores sucesivos
podrían estar correlacionados. Asumiendo que los errores toman una forma
autoregresiva simple: \[\varepsilon_{i+1}=\rho \varepsilon_{i}+\delta_i
\quad \delta_i \sim N(0,\tau^2)\]
##
## Call:
## lm(formula = Employed ~ GNP + Population, data = longley)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.80899 -0.33282 -0.02329 0.25895 1.08800
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 88.93880 13.78503 6.452 2.16e-05 ***
## GNP 0.06317 0.01065 5.933 4.96e-05 ***
## Population -0.40974 0.15214 -2.693 0.0184 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5459 on 13 degrees of freedom
## Multiple R-squared: 0.9791, Adjusted R-squared: 0.9758
## F-statistic: 303.9 on 2 and 13 DF, p-value: 1.221e-11
##
## Correlation of Coefficients:
## (Intercept) GNP
## GNP 0.98
## Population -1.00 -0.99
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1.000000e+00 3.104090e-01 9.635375e-02 2.990907e-02 9.284045e-03
## [2,] 3.104090e-01 1.000000e+00 3.104090e-01 9.635375e-02 2.990907e-02
## [3,] 9.635375e-02 3.104090e-01 1.000000e+00 3.104090e-01 9.635375e-02
## [4,] 2.990907e-02 9.635375e-02 3.104090e-01 1.000000e+00 3.104090e-01
## [5,] 9.284045e-03 2.990907e-02 9.635375e-02 3.104090e-01 1.000000e+00
## [6,] 2.881851e-03 9.284045e-03 2.990907e-02 9.635375e-02 3.104090e-01
## [7,] 8.945525e-04 2.881851e-03 9.284045e-03 2.990907e-02 9.635375e-02
## [8,] 2.776771e-04 8.945525e-04 2.881851e-03 9.284045e-03 2.990907e-02
## [9,] 8.619348e-05 2.776771e-04 8.945525e-04 2.881851e-03 9.284045e-03
## [10,] 2.675523e-05 8.619348e-05 2.776771e-04 8.945525e-04 2.881851e-03
## [11,] 8.305065e-06 2.675523e-05 8.619348e-05 2.776771e-04 8.945525e-04
## [12,] 2.577967e-06 8.305065e-06 2.675523e-05 8.619348e-05 2.776771e-04
## [13,] 8.002242e-07 2.577967e-06 8.305065e-06 2.675523e-05 8.619348e-05
## [14,] 2.483968e-07 8.002242e-07 2.577967e-06 8.305065e-06 2.675523e-05
## [15,] 7.710460e-08 2.483968e-07 8.002242e-07 2.577967e-06 8.305065e-06
## [16,] 2.393396e-08 7.710460e-08 2.483968e-07 8.002242e-07 2.577967e-06
## [,6] [,7] [,8] [,9] [,10]
## [1,] 2.881851e-03 8.945525e-04 2.776771e-04 8.619348e-05 2.675523e-05
## [2,] 9.284045e-03 2.881851e-03 8.945525e-04 2.776771e-04 8.619348e-05
## [3,] 2.990907e-02 9.284045e-03 2.881851e-03 8.945525e-04 2.776771e-04
## [4,] 9.635375e-02 2.990907e-02 9.284045e-03 2.881851e-03 8.945525e-04
## [5,] 3.104090e-01 9.635375e-02 2.990907e-02 9.284045e-03 2.881851e-03
## [6,] 1.000000e+00 3.104090e-01 9.635375e-02 2.990907e-02 9.284045e-03
## [7,] 3.104090e-01 1.000000e+00 3.104090e-01 9.635375e-02 2.990907e-02
## [8,] 9.635375e-02 3.104090e-01 1.000000e+00 3.104090e-01 9.635375e-02
## [9,] 2.990907e-02 9.635375e-02 3.104090e-01 1.000000e+00 3.104090e-01
## [10,] 9.284045e-03 2.990907e-02 9.635375e-02 3.104090e-01 1.000000e+00
## [11,] 2.881851e-03 9.284045e-03 2.990907e-02 9.635375e-02 3.104090e-01
## [12,] 8.945525e-04 2.881851e-03 9.284045e-03 2.990907e-02 9.635375e-02
## [13,] 2.776771e-04 8.945525e-04 2.881851e-03 9.284045e-03 2.990907e-02
## [14,] 8.619348e-05 2.776771e-04 8.945525e-04 2.881851e-03 9.284045e-03
## [15,] 2.675523e-05 8.619348e-05 2.776771e-04 8.945525e-04 2.881851e-03
## [16,] 8.305065e-06 2.675523e-05 8.619348e-05 2.776771e-04 8.945525e-04
## [,11] [,12] [,13] [,14] [,15]
## [1,] 8.305065e-06 2.577967e-06 8.002242e-07 2.483968e-07 7.710460e-08
## [2,] 2.675523e-05 8.305065e-06 2.577967e-06 8.002242e-07 2.483968e-07
## [3,] 8.619348e-05 2.675523e-05 8.305065e-06 2.577967e-06 8.002242e-07
## [4,] 2.776771e-04 8.619348e-05 2.675523e-05 8.305065e-06 2.577967e-06
## [5,] 8.945525e-04 2.776771e-04 8.619348e-05 2.675523e-05 8.305065e-06
## [6,] 2.881851e-03 8.945525e-04 2.776771e-04 8.619348e-05 2.675523e-05
## [7,] 9.284045e-03 2.881851e-03 8.945525e-04 2.776771e-04 8.619348e-05
## [8,] 2.990907e-02 9.284045e-03 2.881851e-03 8.945525e-04 2.776771e-04
## [9,] 9.635375e-02 2.990907e-02 9.284045e-03 2.881851e-03 8.945525e-04
## [10,] 3.104090e-01 9.635375e-02 2.990907e-02 9.284045e-03 2.881851e-03
## [11,] 1.000000e+00 3.104090e-01 9.635375e-02 2.990907e-02 9.284045e-03
## [12,] 3.104090e-01 1.000000e+00 3.104090e-01 9.635375e-02 2.990907e-02
## [13,] 9.635375e-02 3.104090e-01 1.000000e+00 3.104090e-01 9.635375e-02
## [14,] 2.990907e-02 9.635375e-02 3.104090e-01 1.000000e+00 3.104090e-01
## [15,] 9.284045e-03 2.990907e-02 9.635375e-02 3.104090e-01 1.000000e+00
## [16,] 2.881851e-03 9.284045e-03 2.990907e-02 9.635375e-02 3.104090e-01
## [,16]
## [1,] 2.393396e-08
## [2,] 7.710460e-08
## [3,] 2.483968e-07
## [4,] 8.002242e-07
## [5,] 2.577967e-06
## [6,] 8.305065e-06
## [7,] 2.675523e-05
## [8,] 8.619348e-05
## [9,] 2.776771e-04
## [10,] 8.945525e-04
## [11,] 2.881851e-03
## [12,] 9.284045e-03
## [13,] 2.990907e-02
## [14,] 9.635375e-02
## [15,] 3.104090e-01
## [16,] 1.000000e+00
y el estimador de mínimos cuadrados generalizados para \(\beta\) es dado por \(\widehat{\boldsymbol{\beta}}=\left(\boldsymbol{X}^{\top} \textbf{V}^{-1} \boldsymbol{X}\right)^{-1}\boldsymbol{X}^{\top} \textbf{V}^{-1} \boldsymbol{y}\) es
## [,1]
## (Intercept) 94.89887318
## GNP 0.06738948
## Population -0.47427386
El error estandar de \(\widehat{\boldsymbol{\beta}}\), \(\sqrt{Var(\widehat{\boldsymbol{\beta}})}=\sqrt{\widehat{\sigma}^2 \left( \boldsymbol{X}^{\top} \textbf{V}^{-1} \boldsymbol{X}\right)^{-1}}\) es
sigma_est <- (t(longley$Empl)%*%V.inv%*%longley$Empl-t(beta)%*%t(X)%*%V.inv%*%longley$Empl)/g$df
sqrt(diag(solve(t(X)%*%V.inv%*%X))*sigma_est)## (Intercept) GNP Population
## 19.07759167 0.01464312 0.20984390
## Generalized least squares fit by REML
## Model: Employed ~ GNP + Population
## Data: longley
## AIC BIC logLik
## 44.66377 47.48852 -17.33188
##
## Correlation Structure: AR(1)
## Formula: ~Year
## Parameter estimate(s):
## Phi
## 0.6441692
##
## Coefficients:
## Value Std.Error t-value p-value
## (Intercept) 101.85813 14.198932 7.173647 0.0000
## GNP 0.07207 0.010606 6.795485 0.0000
## Population -0.54851 0.154130 -3.558778 0.0035
##
## Correlation:
## (Intr) GNP
## GNP 0.943
## Population -0.997 -0.966
##
## Standardized residuals:
## Min Q1 Med Q3 Max
## -1.5924564 -0.5447822 -0.1055401 0.3639202 1.3281898
##
## Residual standard error: 0.689207
## Degrees of freedom: 16 total; 13 residual
## Approximate 95% confidence intervals
##
## Coefficients:
## lower est. upper
## (Intercept) 71.18320460 101.85813305 132.5330615
## GNP 0.04915865 0.07207088 0.0949831
## Population -0.88149053 -0.54851350 -0.2155365
##
## Correlation structure:
## lower est. upper
## Phi -0.4432383 0.6441692 0.9645041
##
## Residual standard error:
## lower est. upper
## 0.2477527 0.6892070 1.9172599
Se observa que no es significativamente diferente de cero.
Para realizar la prueba de hipótesis de Durbin Watson necesitamos extraer los residuales del modelo calculado usando mínimos cuadrados ordinarios.
\[H_0: \rho=0\] \[H_1: \rho>0\] o
\[H_0: DW=2\] \[H_0: DW<2\]
La estadística de prueba es dada por:
\[DW=\frac{\sum_{i=2}^{n} (\widehat{e}_t-\widehat{e}_{t-1})^2}{\sum_{i=1}^{n} \widehat{e}^2_t}\]
## 1947 1948 1949 1950 1951 1952
## 0.67521130 0.30582253 -0.09098821 -0.27823770 -0.57801231 -0.80898950
## 1953 1954 1955 1956 1957 1958
## 0.12689319 -0.49655508 0.07001902 1.08799625 0.61089180 -0.54070252
## 1959 1960 1961 1962
## -0.22904034 0.24332304 0.04440329 -0.14203475
Los cálculos de la tabla puden ser obtenidos utilizando el siguiente código de R:
g <- lm(Employed ~ GNP + Population, data=longley)
dif <- c()
dif[1] <- 0
for(i in 2:length(longley$Empl))
{
dif[i] <- g$res[i]-g$res[i-1]
}
DWtest <- sum(dif^2)/sum(g$res^2)
DWtest## [1] 1.301484
Luego usando las tablas estadísticas, donde \(k\) es el nùmero de regresores exluyendo el intercepto:
Analizando los resultado tenemos que:
Luego usando el paquete lmtest
##
## Durbin-Watson test
##
## data: g
## DW = 1.3015, p-value = 0.02245
## alternative hypothesis: true autocorrelation is greater than 0
Como el valor de DW obtenido a partir de los residuos (1.3015) está en la región de indecisión, la prueba sería inconclusa, es decir, no hay evidencias, para afirmar que los errores sean o no autocorrelacionados.
\(H_{0}\) :las autocorrelaciones
hasta el retraso \(k\) son todas 0
\(H_{1}\) :las autocorrelaciones de uno
o más retrasos difieren de 0
##
## Box-Ljung test
##
## data: residuals(g)
## X-squared = 1.5905, df = 1, p-value = 0.2073
Hartnagel y se encuentra en
el paquete carData pero que al cargar el paquete
car se carga también:## Loading required package: carData
Las varibles del conjunto de datos son:
Ajustaremos la regresión considerando a fconvict
como la variable dependiente y tfr, partic,
degrees y mconvictcomo los
regresones.
La razón para incluir el último predictor es controlar las variables omitidas que afectan la tasa de criminalidad en general.
##
## Call:
## lm(formula = fconvict ~ tfr + partic + degrees + mconvict, data = Hartnagel)
##
## Residuals:
## Min 1Q Median 3Q Max
## -42.964 -9.204 -3.566 6.149 48.385
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 127.639997 59.957044 2.129 0.0408 *
## tfr -0.046567 0.008033 -5.797 1.75e-06 ***
## partic 0.253416 0.115132 2.201 0.0348 *
## degrees -0.212049 0.211454 -1.003 0.3232
## mconvict 0.059105 0.045145 1.309 0.1995
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 19.19 on 33 degrees of freedom
## Multiple R-squared: 0.6948, Adjusted R-squared: 0.6578
## F-statistic: 18.78 on 4 and 33 DF, p-value: 3.905e-08
La tasa de criminalidad de las mujeres, por lo tanto, parece disminuir con la fertilidad y aumentar con la participación de la fuerza laboral.
Los coeficientes para los otros dos predictores tienen p-values grandes.
acf() en el paquete de R stats
calcula y grafoca las funciones de autocorrelación y autocorrelación
parcial de una serie de tiempo, aquí para los residuos obtenidos por
MCO, porque los residuos varían sistemáticamente con el tiempo:Las líneas horizontales discontinuas (de color azul) en los plots corresponden a límites de confianza aproximados del 95%.
El patrón general de las funciones de autocorrelación y autocorrelación parcial: descomposición sinusoidal en la primera y se observan dos picos, uno positivo (\(\phi_1 > 0\)), el otro negativo (\(\phi_2 < 0\)), en el último, sugiere un proceso AR(2).
\[\varepsilon_t = \phi_1 \varepsilon_{t-1} + \phi_2 \varepsilon_{t-2} + v_t\]
Calculando las estadísticas de Durbin-Watson, usando la función
durbinWatsonTest() en el paquete car.
Por defecto, esta función calcula los p-values por boostrap para las estadísticas de Durbin-Watson.
## lag Autocorrelation D-W Statistic p-value
## 1 0.6883450 0.6168636 0.000
## 2 0.1922665 1.5993563 0.146
## 3 -0.1685699 2.3187448 0.312
## 4 -0.3652775 2.6990538 0.008
## 5 -0.3673240 2.6521103 0.016
## Alternative hypothesis: rho[lag] != 0
Tres de las cinco estadísticas de Durbin-Watson tienen p-values pequeñas, incluyendo el primero.
Otra alternativa, la función dwtest() en el paquete
lmtest calcula el p-valor para el estadístico de
Durbin-Watson de primer orden y como observamos la prueba de DW es
significativo.
##
## Durbin-Watson test
##
## data: mod.ols
## DW = 0.61686, p-value = 1.392e-08
## alternative hypothesis: true autocorrelation is not 0
Varios de los argumentos para la función gls() son
los mismos que los de lm(), en particular,
gls() toma argumentos como model, data, subset.
weights en gls() puede ser
usado para especificar un modelo para el error de la varianza.correlation puede ser usado para
especificar un modelo para la autocorrelación del error.method selecciona el método de la
estimación method="ML" para la estimación de máxima
verosimilitud.## Generalized least squares fit by maximum likelihood
## Model: fconvict ~ tfr + partic + degrees + mconvict
## Data: Hartnagel
## AIC BIC logLik
## 305.4145 318.5152 -144.7073
##
## Correlation Structure: ARMA(2,0)
## Formula: ~1
## Parameter estimate(s):
## Phi1 Phi2
## 1.0683473 -0.5507269
##
## Coefficients:
## Value Std.Error t-value p-value
## (Intercept) 83.34028 59.47084 1.401364 0.1704
## tfr -0.03999 0.00928 -4.308632 0.0001
## partic 0.28761 0.11201 2.567653 0.0150
## degrees -0.20984 0.20658 -1.015757 0.3171
## mconvict 0.07569 0.03501 2.161899 0.0380
##
## Correlation:
## (Intr) tfr partic degres
## tfr -0.773
## partic -0.570 0.176
## degrees 0.093 0.033 -0.476
## mconvict -0.689 0.365 0.047 0.082
##
## Standardized residuals:
## Min Q1 Med Q3 Max
## -2.4991516 -0.3716988 -0.1494540 0.3372409 2.9094711
##
## Residual standard error: 17.70228
## Degrees of freedom: 38 total; 33 residual
correlation=corARMA(p=2) ajusta un proceso AR(s) para los
errores. Noten que aquí el componente de media movil no es considerado
pues su orden \(q=0\) y por tanto es
ausente.mconvict ahora tiene un p-valor más pequeño.El estimado de ML de los parámetros de los errores autoregresivos son considerables: \(\hat{\phi}_1=1.068\) y \(\hat{\phi}_2=-0.551\).
Podemos emplear pruebas de razón de verosimilitud para verificar si los parámetros del proceso AR(2) para los errores son necesarios, y si un modelo autorregresivo de segundo orden es suficiente.
gls, reespecificando el proceso de series de tiempo en los
errores, luego comparamos los modelos anidados usando la función
anova().## Model df AIC BIC logLik Test L.Ratio p-value
## mod.gls 1 8 305.4145 318.5152 -144.7073
## mod.gls.1 2 7 312.4234 323.8865 -149.2117 1 vs 2 9.008881 0.0027
## Model df AIC BIC logLik Test L.Ratio p-value
## mod.gls 1 8 305.4145 318.5152 -144.7073
## mod.gls.0 2 6 339.0011 348.8266 -163.5006 1 vs 2 37.58658 <.0001
## Model df AIC BIC logLik Test L.Ratio p-value
## mod.gls.3 1 9 307.3961 322.1343 -144.6980
## mod.gls 2 8 305.4145 318.5152 -144.7073 1 vs 2 0.01846713 0.8919