UNIVERSIDAD DE EL SALVADOR
FACULTAD DE CIENCIAS ECONÓMICAS
ESCUELA DE ECONOMÍA
METODOS PARA EL ANALISIS ECONÓMICO
ACTIVIDAD:
“LABORATORIO 3.”
DOCENTE:
MSF. Carlos Ademir Pérez Alas.
Metodos para Análisis Económico
GRUPO TEÓRICO:
02
INTEGRANTES:
PAOLA ELIZABETH, ELÍAS GRANADOS. EG17013.
ANA JULIA, PAULINO CORNEJO. PC18052.
LESLY GISELA, HERNÁNDEZ MÉNDEZ. HM18011.
MEDARDO JOSÉ, ESCOBAR MORALES . EM18003.
JOSUE NAHUM, AMAYA FLORES . AF16010.
Ciudad Universitaria, 3 de diciembre de 2021.
Proposito de la prueba
La prueba de Dickey-Fuller, que lleva el nombre de los estadísticos estadounidenses Dickey y Wayne Fuller, que desarrollaron la prueba en 1979, se usa para determinar si una raíz unitaria (una característica que puede causar problemas en la inferencia estadística) está presente en un modelo autorregresivo. La fórmula es apropiada para tendencias en series de tiempo como los precios de los activos.
Es el enfoque más simple para probar una raíz unitaria, pero la mayoría de las series de tiempo económicas y financieras tienen una estructura más complicada y dinámica que la que puede ser capturada por un modelo autorregresivo simple, que es donde entra en juego la prueba aumentada de Dickey-Fuller. La cual en una muestra de serie temporal. La prueba se usa en investigación estadística y econometría , o la aplicación de matemáticas, estadística e informática a datos económicos, en donde se utiliza para conjuntos grandes y complicados de modelos de series de tiempo.
Si el parámetro alfa es igual a cero implica que la serie sigue un camino aleatorio, en consecuencia es no estacionaria.
\[\color{green}{\text{Ηο:α=0 ⇒(∅-1)=0 ⟹∅=1 }}\]
Si el parámetro alfa es distinto de cero y es negativo, entonces la serie es estacionaria
\[\color{green}{\text{Η1:α<0 ⇒(∅-1)≠0 ⟹∅≠1}}\]
Cuanto más negativa sea, más fuerte será el rechazo de la hipótesis de que existe una raíz unitaria. Por supuesto, esto es solo en cierto nivel de confianza. Es decir, si el estadístico de la prueba ADF es positivo, automáticamente se puede decidir no rechazar la hipótesis nula de raíz unitaria.
Simplemente se establece como hipótesis nula,la presencia de tendencia estocástica en las observaciones. En el caso de la hipótesis alternativa, establecemos no tendencia estocástica en las observaciones.
¿Cómo decimos que hay o no presencia de tendencia en una autoregresión en lenguaje matemático?
Cuando existe tendencia en una serie temporal en un modelo AR(1), el primer regresor tenderá a ser 1 o muy próximo a 1. Esto se debe a la propiedad de reversión a la media de un proceso estocástico estacionario.
En otras palabras, cuanto más cerca esté el primer coeficiente de un modelo AR(1) de 1, más tardarán las observaciones a volver al valor medio. Esto es sinónimo de no estacionariedad ya que, si el proceso estocástico fuera estable, este coeficiente sería menor a 1 o muy próximo a 0.
Entonces, podemos diferenciar entre tendencia o no tendencia estocástica en las observaciones en función del número que le asignemos al primer regresor de de la autoregresión.
En el contexto de la prueba Dickey-Fuller hay dos condiciones para que la serie de tiempo sea estacionaria:
•Rechazar la hipótesis nula
•Que el estimador alfa sea negativo
Esto se pude probar mediante un estadístico t Student, en donde se espera que el estadistico t de la prueba sea negativo por lo tanto, tiene que ser mas negativo(menor) que el valor critico para que la hipotesis nula sea rechazada y conluir que las serie temporal es estacionaria.
\[ t ̂_α ̂ =α ̂/SE(α ̂)\]
La prueba de raíz unitaria se lleva a cabo entonces bajo la hipótesis nula α=0 contra la hipótesis alternativa de α<0.
Una vez calculado el estadistico de la prueba debe ser comparado con el valor crítico relevante para la prueba de Dickey-Fuller. Si el resultado es menor (esta prueba no es simétrica por lo que no consideramos un valor absoluto) que el valor crítico (mayor negativo), entonces la hipótesis nula de es rechazada y no hay raíz unitaria presente.
Condicion de estacionariedad:
\[ t ̂_α ̂ =α ̂/SE(α ̂)<0\] \[\color{red}{\text{Prob de rechazo <0.05}}\]
Interpretación del rechazo, o no rechazo de la Hipótesis Nula de la prueba
AL ser rechazada la Hipotesis Nula, no se rechaza la Hipotesis Alternativa y se concluye que no existe raiz unitaria por lo tanto los residuales son estacioanrios
Al no ser rechazada la Hipotesis Nula,se concluye que existe raiz unitaria por lo tanto los residuales no son estacionarios.
\(\color{blue}{\text{Paso 1: EStructura y preparacion de dato.}}\)
Para realizar la Prueba de Dickey-Fuller Aumentada se debe realizar la respectiva carga de datos que correspondan a una serie de tiempo.
\(\color{blue}{\text{Paso 2: Comprobar si la serie de tiempo es estacionaria }}\)
En el contexto de la prueba Dickey-Fuller hay dos condiciones para que la serie de tiempo sea estacionaria:
•Rechazar la hipótesis nula
•Que el estimador alfa sea negativo
Esto se hace mediante el estadistico de prueba:
\[\color{red}{\text{Prob de rechazo <0.05}}\]
\[ t ̂_α ̂ =α ̂/SE(α ̂)<0\]
\(\color{blue}{\text{Paso 3: Comprobar si la estacionariedad de la serie de tiempo mediante la prueba de Dickey-Fuller Aumentada }}\)
Se genera un modelo de regresion con las dos variables utilizando el comando (lm)y tambien se generan los residuales (errores) que son con los que trabajaremos en la prueba de ADF.
Luego de que se genra el modelo con el cual se trabajara, se procede a la aplicacion de la prueba mediante el comando adf.test de la libreria tseries, pasando como objeto los residuales, en donde muestra los resultados para el analisis correspondiente como el estadistico de prueba y valor critico.
\[HO:\color{blue}{\text{"Raiz Unitaria (No es estacionaria)" }}\]
\[H1:\color{blue}{\text{"No hay raiz unitaria (Es estacionaria)." }}\]
En este caso utilizatemos la base de datos coint la cual contiene datos sobre el gasto de consumo personal y el ingreso personal disponible que empiezan en el primer trimestre de 1947 y terminan en el cuarto trimestre de 2007.
Carga de datos
library(readxl)
coint <- read_excel("C:/Users/Emerson/Downloads/coint.xls")
Cargar librerias
Se carga la libreia tseries para poder realizar y presentar los resulatdos de la prueba Dickey-Fuller-Aumentada.Adicionalmente se cargan otras librerias que son necesarias para la presentacion de resulatdos.
library(tseries)
library(lubridate)
library(lubridate)
library(tidyverse)
library(car)
library(astsa)
library(foreign)
library(timsac)
library(vars)
library(lmtest)
library(mFilter)
library(dynlm)
library(nlme)
library(lmtest)
library(broom)
library(kableExtra)
library(knitr)
library(MASS)
library(parallel)
library(car)
library(mlogit)
library(dplyr)
library(tidyr)
library(forecast)
library(fpp2)
library(stats)
library(quantmod)
# Se llaman los archivos
attach(coint)
names(coint)
## [1] "DPI" "PCE"
Generar Logaritmos
Antes de convertir los datos en serie de tiempo se convierten en logaritmos naturales porque los variables en este caso son muy extensos como el gasto de consumo personal y el ingreso personal disponible.
lnPCE=log(PCE)
lnDPI=log(DPI)
Generar variables de Series de Tiempo
Los datos comienzan en el primer trimestre de 1947 y terminan en el cuarto trimestre de 2007 por esa razon la frecuencia es 4, porque un año cuenta con 4 trimestres.
DPI.ts=ts(lnDPI, start=c(1947,1),frequency = 4)
PCE.ts=ts(lnPCE, start=c(1947,1),frequency = 4)
Generacion de una tabla
Los datos de la serie de tiempo se agrupan en un solo data frame
datos1=cbind(DPI.ts,PCE.ts)
head(datos1,n=10)
## DPI.ts PCE.ts
## 1947 Q1 6.999422 6.924809
## 1947 Q2 6.978027 6.941190
## 1947 Q3 7.005608 6.944569
## 1947 Q4 6.993658 6.944762
## 1948 Q1 7.009680 6.949473
## 1948 Q2 7.043422 6.960632
## 1948 Q3 7.063391 6.962338
## 1948 Q4 7.066382 6.970542
## 1949 Q1 7.045428 6.971762
## 1949 Q2 7.048734 6.987121
plot(datos1, main="Tendencia")
Generar Modelo
Se genera un modelo de regresion con las dos variables utilizando el comando (lm)y tambien se genran los residuales (errores) que son con los que trabajaremos en la prueba de ADF de los cuales generamos un grafico. AL observar el grafico por decucir que las variables no son estacioanrias por la dispersion de las observaciones,pero este solo es un analisis simple.
modelo1=lm(PCE.ts ~DPI.ts)
summary(modelo1)
##
## Call:
## lm(formula = PCE.ts ~ DPI.ts)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.062816 -0.019375 -0.001032 0.017186 0.078186
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.194233 0.023593 -8.233 1.14e-14 ***
## DPI.ts 1.011351 0.002902 348.542 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.02764 on 242 degrees of freedom
## Multiple R-squared: 0.998, Adjusted R-squared: 0.998
## F-statistic: 1.215e+05 on 1 and 242 DF, p-value: < 2.2e-16
residuales=modelo1$residuals
residualPlot(modelo1)
Prueba de Dickey-Fuller
y=ur.df(residuales)
summary(y)
##
## ###############################################
## # Augmented Dickey-Fuller Test Unit Root Test #
## ###############################################
##
## Test regression none
##
##
## Call:
## lm(formula = z.diff ~ z.lag.1 - 1 + z.diff.lag)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.050339 -0.004034 -0.000311 0.005048 0.042822
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## z.lag.1 -0.05978 0.02364 -2.529 0.0121 *
## z.diff.lag -0.31809 0.05924 -5.369 1.87e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.009841 on 240 degrees of freedom
## Multiple R-squared: 0.1503, Adjusted R-squared: 0.1433
## F-statistic: 21.23 on 2 and 240 DF, p-value: 3.228e-09
##
##
## Value of test-statistic is: -2.5289
##
## Critical values for test statistics:
## 1pct 5pct 10pct
## tau1 -2.58 -1.95 -1.62
y@teststat
## tau1
## statistic -2.528947
y@cval
## 1pct 5pct 10pct
## tau1 -2.58 -1.95 -1.62
Bajo estos resultados el valor critico al 1% es de -2.58 y el estadistico es de -2.52,teniendo estos resultados se conluye que la Hipotesis Nula no se rechaza ya que el estadistico cae en la region de No rechazar Ho. Por lo tanto existe raiz unitaria y los residuales no son estacionarios.
con intercepto
y2=ur.df(residuales, type="drift",selectlags="AIC")
summary(y2)
##
## ###############################################
## # Augmented Dickey-Fuller Test Unit Root Test #
## ###############################################
##
## Test regression drift
##
##
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + z.diff.lag)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.050207 -0.003904 -0.000181 0.005176 0.042952
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.0001294 0.0006339 -0.204 0.8385
## z.lag.1 -0.0598500 0.0236882 -2.527 0.0122 *
## z.diff.lag -0.3180310 0.0593632 -5.357 1.98e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.00986 on 239 degrees of freedom
## Multiple R-squared: 0.1504, Adjusted R-squared: 0.1433
## F-statistic: 21.15 on 2 and 239 DF, p-value: 3.478e-09
##
##
## Value of test-statistic is: -2.5266 3.2058
##
## Critical values for test statistics:
## 1pct 5pct 10pct
## tau2 -3.46 -2.88 -2.57
## phi1 6.52 4.63 3.81
Sin tendencia y sin intercepto
y3=ur.df(residuales, type="none",selectlags="AIC")
summary(y3)
##
## ###############################################
## # Augmented Dickey-Fuller Test Unit Root Test #
## ###############################################
##
## Test regression none
##
##
## Call:
## lm(formula = z.diff ~ z.lag.1 - 1 + z.diff.lag)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.050339 -0.004034 -0.000311 0.005048 0.042822
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## z.lag.1 -0.05978 0.02364 -2.529 0.0121 *
## z.diff.lag -0.31809 0.05924 -5.369 1.87e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.009841 on 240 degrees of freedom
## Multiple R-squared: 0.1503, Adjusted R-squared: 0.1433
## F-statistic: 21.23 on 2 and 240 DF, p-value: 3.228e-09
##
##
## Value of test-statistic is: -2.5289
##
## Critical values for test statistics:
## 1pct 5pct 10pct
## tau1 -2.58 -1.95 -1.62
Dickey Fuller Aumentada
La prueba dickey fuller aumentada se realiza con el comando adf.test de la libreria tseries
adf.test(residuales)
##
## Augmented Dickey-Fuller Test
##
## data: residuales
## Dickey-Fuller = -1.2524, Lag order = 6, p-value = 0.8904
## alternative hypothesis: stationary
Bajo estos resultados se puede seguir concluyendo que la Hipotesis Nula no se rechaza,pero con los resulatdos al 10% que el estadistico es de -1.62 y el valor critico es siempre de -2.52 se puede conluir que la Hipotesis nula se rechaza y no se rechaza la hipotesis alternativa, por lo que no hay raiz unitaria y la serie temporal es estacionaria ya que es mas negativo(menor) que el valor critico.
El procedimiento multivariado de S. Johansen (1988 y 1991), se ha convertido en un método muy popular para probar la existencia de cointegración en la variables I(1) y I(0), en donde I(1) y I(0) indican integración de primer y cero orden, respectivamente. En la tecnología de S. Johansen, es necesario analizar las series previamente con el fin de conocer si presentan o no raíces unitarias. Las series que presenten raíces unitarias se colocan en un vector autorregresivo a partir del cual se puede probar la existencia de una o mas combinaciones lineales J(U) o vectores de cointegración, como también se les denomina.(Quintana and Mendoza 2016)
El procedimiento se sustenta en los modelos VAR, que con una especificación de un solo rezago, se escribe
\[𝑌𝑡=𝜇+𝐴1𝑌𝑡−1+𝑉𝑡 \] Ahora transformamos el modelo restando \(Yt-1\) de los dos lados: \[𝑌𝑡−𝑌𝑡−1=𝜇+𝐴1𝑌𝑡−1−𝑌𝑡−1+𝑉𝑡\]
Agrupando las variables tenemos: \[∆ Yt = μ + AYt 1 + vt\] Donde:
\[A=I + A1\]
La representación del modelo es la que llamamos Mecanismo de Corrección de Error en la sección anterior por ello A es, por tanto, un Vector de Corrección de Error:
Por ello, el modelo es un Mecanismo de Corrección de Error Vectorial ( También se dará cuenta de la similitud de esta especificación con la de la prueba ADF, incluso podríamos considerarla un ADF multiecuacional.
Si ahora generalizamos la especificación para considerar un modelo VAR(p), el resultado es: \[Yt= μ + A1Yt 1 + A2Yt 2 +...+ ApYt p + vt\] Si se resta Yt 1 hasta Yt p de los dos lados, y se rescribe en función de la ∆ Yt entonces:
\[∆Yt = μ Г 1 ∆ Yt 1 + Г 2 ∆ Yt 2 +...+ Г p 1 ∆ Yt p + AYt p+ et\]
Donde:
\(Гi = I + Г 1 +...+ Г i\)
\(i= 1 ,...,p 1\)
\(A=I + A 1 +...+ Ap\)
En la matriz A se encuentre la relación de largo plazo, si su rango es; rango (A)= r, entonces se pueden encontrar las siguientes situaciones:
•Si r=0 A es una matriz nula No existirá ninguna relación de cointegración
Si r=m, el proceso multivariante Yt es estacionario Por tanto, habría m1 vectores de cointegración linealmente independientes que cancelan la tendencia común Así \(Yt\) será estacionario si \(Am*m\) tiene rango completo.
•Si 0<r<m se encontrará entre las dos situaciones anteriores, por lo que habrá r relaciones de cointegración.
Por lo tanto, el rango de A mostrará el número de columnas linealmente independientes de esta matriz y ese será también el número de vectores de cointegración existentes entre las variables del VAR.
de acuerto con esto Johansen demuestra que la estimación máximo verosímil de la matriz de vectores de cointegración, α se obtiene a partir del cálculo de las raíces características \(γi, i= 1,....m\).
Para contrastar la hipótesis nula de que hay como máximo r vectores de cointegración frente a la alternativa de que hay m, r mayor o igual a m, el contraste de razón deverosimilitud viene dado por los estadísticos de la traza y de la raíz máxima:
\[TRAZA=-2LnQ=-T\sum_{i=r+1}^m (1-⋌_{i})\]
\[RAÍZMAXÍMA=⋌_r^max=-T.Ln(1-⋌_i)\]
Hipótesisi Nula:\[Ho:r=0 \] \[\color{red}{\text{"No existe Cointegración".}}\] Hipótesis Alternativa:\[H1:r=m\]
\[\color{red}{\text{"Existe Cointegración".}}\] El contraste de hipótesis consiste en la secuencia: • La hipótesis nula Ho: r =0 (no cointegración), frente a la alternativa Ha: r=1. •
En caso de rechazar esta hipótesis (utilizando cualquiera de los dos estadísticos propuestos), se contrasta ahora Ho: r =1 frente a la alternativa Ha: r=2, y así sucesivamente hasta el momento en que no se rechaza Ho, o bien hasta que se tuviera que no rechazar la hipótesis alternativa de r =m.
Los valores críticos para los dos estadísticos de prueba, dependen de la inclusión o no de constantes en las ecuaciones; se pueden incluir interceptos en los vectores de cointegración.(Quintana and Mendoza 2016)
Librería que se utiliza en esta prueba son las siguientes:
• library(urca)
Prueba de Soren Johansen johansen
library(urca)
summary(ca.jo(ecb.consumo,type=“trace,”ecdet=“none,”spec=c(“longrun”),K=4))
Criterio de Decición
\(H0:r=0\) Se rechaza
Se puede afirmar que en la serie de tiempo no existe cointegración.
\(H1:r=m\) No se rechaza
Se puede afirmar que en la serie de tiempo existe cointegración
Interpretación del Estadistico de la Prueba
Se puede afirmar que si el estadistico de Prueba es mayor que el valor critico se tendran las evidencias suficientes para rechazar la Hipotesis Nula \(H0:r=0\), aseverando de esta manera que en la serie existe cointegración.
library(urca)
library(car)
load("C:\\Users\\Emerson\\Downloads\\Consumo.RData")
lpib_mex<-log( Consumo$pib_mex)
lcp_mex<-log( Consumo$cp_mex)
# Para aplicar el procedimiento deJohansen , primero se combinan las variables en un solo objeto
ecb.consumo<-cbind (lcp_mex,lpib_mex)
Prueba de la traza de cointegración sin tendencia y constante
#se aplica la prueba de la traza de cointegración sin tendencia y constante
library(urca)
summary(ca.jo(ecb.consumo,type ="trace",ecdet="none",spec=c("longrun"),K=4))
##
## ######################
## # Johansen-Procedure #
## ######################
##
## Test type: trace statistic , with linear trend
##
## Eigenvalues (lambda):
## [1] 0.1751774 0.0169835
##
## Values of teststatistic and critical values of test:
##
## test 10pct 5pct 1pct
## r <= 1 | 1.47 6.50 8.18 11.65
## r = 0 | 18.04 15.66 17.95 23.52
##
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
##
## lcp_mex.l4 lpib_mex.l4
## lcp_mex.l4 1.000000 1.000000
## lpib_mex.l4 -1.280708 -1.037871
##
## Weights W:
## (This is the loading matrix)
##
## lcp_mex.l4 lpib_mex.l4
## lcp_mex.d -0.3578910 -0.08189816
## lpib_mex.d -0.1079621 -0.07962291
Al realizar la Prueba los resultados nos muestran que para la primera hipótesis r=0 y alternativa r= 1 no se rechaza la hipótesis alternativa de cointegración el estadístico es mayor al valor critico del 10%, 18.04>15.66 es decir exixte cointegracion entre las variables. Para la segunda hipótesis r<= 1 y alternativa r= 2 no se rechaza la hipótesis nula de un solo vector de cointegración Por lo que se puede concluir que existe un vector de cointegración y se representa por (1,- 1.28).
Prueba de la traza de cointegración con constante
#se aplica la prueba de la traza de cointegración con constante
library(urca)
summary(ca.jo(ecb.consumo,type ="trace",ecdet="const",spec=c("longrun"),K=4))
##
## ######################
## # Johansen-Procedure #
## ######################
##
## Test type: trace statistic , without linear trend and constant in cointegration
##
## Eigenvalues (lambda):
## [1] 2.017097e-01 1.265562e-01 5.440093e-15
##
## Values of teststatistic and critical values of test:
##
## test 10pct 5pct 1pct
## r <= 1 | 11.64 7.52 9.24 12.97
## r = 0 | 31.01 17.85 19.96 24.60
##
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
##
## lcp_mex.l4 lpib_mex.l4 constant
## lcp_mex.l4 1.000000 1.000000 1.000000
## lpib_mex.l4 -1.255645 -1.414691 -1.064081
## constant 4.557479 7.198639 1.483342
##
## Weights W:
## (This is the loading matrix)
##
## lcp_mex.l4 lpib_mex.l4 constant
## lcp_mex.d -0.4955292 0.05574003 -1.774483e-11
## lpib_mex.d -0.2795953 0.09201028 -6.438725e-12
Al realizar la prueba lo resultados muestran que para la primera hipótesis r=0 y alternativa r= 1 se acepta la hipótesis alternativa de cointegración el estadístico es mayor al valor critico del 10%, 31.01 >17.85 Para la segunda hipótesis r<= 1 y alternativa r= 2 no se rechaza la hipótesis nula de dos vector de cointegración Por lo que se pueden identificar los vectores de cointegración (1, -1.25, 4.55) y (1 ,-1.41, 7.19).
Prueba de Johansen de la traza con tendencia
library(urca)
summary(ca.jo(ecb.consumo,type ="trace",ecdet="trend",spec=c("longrun"),K=4))
##
## ######################
## # Johansen-Procedure #
## ######################
##
## Test type: trace statistic , with linear trend in cointegration
##
## Eigenvalues (lambda):
## [1] 3.007210e-01 6.711864e-02 3.632077e-18
##
## Values of teststatistic and critical values of test:
##
## test 10pct 5pct 1pct
## r <= 1 | 5.98 10.49 12.25 16.26
## r = 0 | 36.74 22.76 25.32 30.45
##
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
##
## lcp_mex.l4 lpib_mex.l4 trend.l4
## lcp_mex.l4 1.000000000 1.000000000 1.000000000
## lpib_mex.l4 -2.613552539 -0.740358526 -1.944486294
## trend.l4 0.008212396 -0.002968024 0.007611815
##
## Weights W:
## (This is the loading matrix)
##
## lcp_mex.l4 lpib_mex.l4 trend.l4
## lcp_mex.d -0.10989875 -0.3329111 -2.471382e-12
## lpib_mex.d 0.03206499 -0.2557477 -4.370999e-13
Al igual que en el caso de la opción sin tendencia y constante, Nose rechaza la hipótesis de cointegración con solo vector El vector de cointegración es (1 -2.61 0.008).
Prueba casualidad de Granger.
La prueba de causalidad de Granger se utiliza para examinar si una serie temporal se puede utilizar para pronosticar otra.
De modo más general, como el futuro no puede predecir el pasado, si la variable X (a la manera de Granger) causa la variable Y, los cambios en X deben preceder a los cambios en Y. Por consiguiente, en una regresión de Y sobre otras variables (con sus propios valores pasados), si incluimos valores pasados o rezagados de X y esto mejora significativamente la predicción de Y, podemos decir que X (a la manera de Granger) causa Y. (Gujarati and Porter 2010)
\(\color{green}{\text{"La serie temporal X no causa que Y se cause a sí misma".}}\)
\(\color{red}{\text{"La serie temporal X hace que la serie temporal Y se cause a si misma con causa-Granger".}}\)
Las variables x y y deben ser estacionarias.
Entonces, para probar que x causa Granger y , se debe examinar si los valores rezagados de x en la regresión de y sobre los valores rezagados de x e y reduce significativamente el error de varianza.
Se dice que una serie temporal X es causa Granger de Y si se puede demostrar que esos valores X proporcionan información estadísticamente significativa sobre los valores futuros de Y a través de una serie de pruebas t y pruebas F sobre valores rezagados de X. Dichas pruebas nos brindan un valor p correspondiente. Si el valor p es menor que un cierto nivel designificación (es decir, p menor o igual a 0.05), entonces podemos rechazar la hipótesis nula y concluir que tenemos evidencia suficiente para decir que la serie temporal x Granger causa la serie temporal y.
Estadistico F La prueba generalmente se realiza en la prueba wald o F.
\[F = \frac{\frac{RSS_1-RSS_2}{P_2-P_1}}{\frac{RSS_2}{n-p_2}}\] \(\color{green}{\text{Criterio de decisión:}}\)
En R, podemos usar la función grangertest() del paquete lmtest para realizar una prueba de causalidad de Granger, que tiene la siguiente sintaxis:
grangertest\(\color{green}{\text{(X, Y, orden = 1)}}\)
Donde:
\(X\): Esta es la primera serie de tiempo.
\(Y\): El segundo conjunto de la serie temporal
Pasos a seguir para la implementacion de la prueba de casualidad de Granger en R.
\(\color{blue}{\text{Paso 1: Carga de datos.}}\)
Para empezar con la realizacion de la prueba Granger, primero se hace la respectiva carga de datos.
\(\color{blue}{\text{Paso 2: Comprobacion de la estacionareidad.}}\)
Para probar la estacionariedad utilizaremos dos pruebas fundamentales:
Para ello se puede hacer uso del paquete GAUSS para probar las raices unitarias, el cual contiene la libreia tsplib. Cargando esta libreia y haciendo uso del comando adf kpss obtendremos los resultados de la prueba.
Si los datos cumples con el requisito de estacionariedad se procede a realizar la prueba de Grange ; si los datos no cumplen con este requisito habra que transformar los datos utilizados.
\(\color{blue}{\text{Paso 3: Prueba de casualidad de Granger.}}\)
Suponiendo que los datos cumplen con el requisito de estacionareidad procedemos a aplicarle a nuestra data la prueba de Granger.
Ae hara uso de la funcion grangertest() parq examinar si los valores sigen una casualidad de Granger, siuiendo el orden de kas variables: X, Y.
Esta prueba arrojara el valor del p_value que corresponde al estadistico de prueba f , y con este valor se decide si rechazar o no la hipotesis nula.
\(\color{blue}{\text{Paso 4: Prueba de casualidad de Granger a la inversa .}}\)
Esto se hace porque es posible que se este produciendo una casualidad inversa. Se hace siguiendo el mismo prosedimiento solo que poniendo las variables estudiadas en diferente orden: Y, X.
\(H0:\)
\(\color{green}{\text{"Conocer el numero de pollos no es util para predecir el numero futuro de huevos." }}\)
\(H1:\)
\(\color{red}{\text{"Conocer el numero de huevos es util para predecir el numero futuro de pollos."}}\)
\(\color{blue}{\text{Carga de datos.}}\)
Para este ejemplo, usaremos el conjunto de datos ChickEgg que viene precargado en el paquete lmtest. Este conjunto de datos contiene valores para el número de huevos fabricados junto con el número de pollos en los Estados Unidos de 1930 a 1983:
library(lmtest)
data(ChickEgg)
head(ChickEgg)
## Time Series:
## Start = 1930
## End = 1935
## Frequency = 1
## chicken egg
## 1930 468491 3581
## 1931 449743 3532
## 1932 436815 3327
## 1933 444523 3255
## 1934 433937 3156
## 1935 389958 3081
\(\color{blue}{\text{ Prueba de casualidad de Granger.}}\)
A continuación, usaremos la función grangertest() para realizar una prueba de causalidad de Granger para ver si el número de huevos fabricados es predictivo del número futuro de pollos. Ejecutaremos la prueba usando tres retardos:
grangertest(chicken ~ egg, order = 3, data = ChickEgg)
## Granger causality test
##
## Model 1: chicken ~ Lags(chicken, 1:3) + Lags(egg, 1:3)
## Model 2: chicken ~ Lags(chicken, 1:3)
## Res.Df Df F Pr(>F)
## 1 44
## 2 47 -3 5.405 0.002966 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Como 0.002966< 0.05 \(\color{red}{\text{Se rechaza la}}\) H0, por lo tanto se concluye que conocer el numero de huevos es util para predecir el numero futuro de pollos.
\(\color{blue}{\text{ Prueba de casualidad de Granger a la inversa.}}\)
Aunque rechazamos la hipótesis nula de la prueba, en realidad es posible que haya un caso de causalidad inversa. Es decir, es posible que el número de pollos esté haciendo que el número de huevos cambie.
Para descartar esta posibilidad, necesitamos realizar la prueba de Causalidad de Granger a la inversa, utilizando pollos como variable predictora y huevos como variable de respuesta:
grangertest(egg ~ chicken, order = 3, data = ChickEgg)
## Granger causality test
##
## Model 1: egg ~ Lags(egg, 1:3) + Lags(chicken, 1:3)
## Model 2: egg ~ Lags(egg, 1:3)
## Res.Df Df F Pr(>F)
## 1 44
## 2 47 -3 0.5916 0.6238
Como 0,6238 > 0.05, \(\color{red}{\text{No se rechaza la}}\) H0, por lo que podemos decir que el número de pollos no es predictivo del número futuro de huevos.
Por lo tanto, podemos concluir que conocer el número de huevos es útil para predecir el número futuro de pollos.