TEORÍA
1. Autocorrelación
La autocorrelación es un caso particular del modelo de regresión
generalizado que se produce cuando las perturbaciones del modelo
presentan correlaciones entre ellas. La autocorrelación supone que la
matriz de varianzas y covarianzas de las perturbaciones presentan
valores distintos de cero en los elementos que están fuera de la
diagonal principal (Gujarati, 2004 Griffiths y Judge, 1993).
En otras palabras más simples la autocorrelación es una medida
estadística que evalúa la relación entre una serie de datos o como lo es
en este caso en series de tiempo. Además, mide el grado en que los
valores de una variable se relacionan consigo mismos en diferentes
momentos en el tiempo.
La autocorrelación se mide mediante el coeficiente de
autocorrelación, que oscila entre -1 y 1. Un valor de 1 indica una
correlación positiva perfecta, lo que significa que los valores de la
variable están completamente correlacionados entre sí en diferentes
momentos en el tiempo. Un valor de -1 indica una correlación negativa
perfecta, lo que significa que los valores de la variable están
inversamente correlacionados entre sí en diferentes momentos en el
tiempo. Un valor de 0 indica que no hay correlación entre los valores de
la variable en diferentes momentos en el tiempo.
2. Normalidad
El supuesto a normalidad se refiere a la distribución normal de una
variable aleatoria. Una distribución normal es una función de densidad
de probabilidad que tiene una forma de campana simétrica y se
caracteriza por dos parámetros: la media y la desviación estándar.
La normalidad es importante en Econometría porque muchos modelos
estadísticos y econométricos asumen que los errores o residuos siguen
una distribución normal. Si los errores no siguen una distribución
normal, los resultados de los modelos econométricos pueden ser sesgados
o inexactos.
Concluyendo la normalidad es una propiedad estadística importante
que se busca en los residuos de los modelos econométricos para asegurar
que los resultados sean confiables y precisos.
3. Estacionariedad
La estacionariedad es una propiedad estadística importante de una
serie temporal, ya que está indica que la serie de tiempo tiene una
estructura estadística que no cambia a lo largo del tiempo. Básicamente,
una serie temporal se considera estacionaria si su media, varianza y
covarianza no cambian con el tiempo. Esto significa que la serie no
tiene una tendencia definida, ni una variabilidad que cambie con el
tiempo, ni una relación con otros eventos en el tiempo. Es importante en
Econometría porque muchos modelos econométricos asumen que los datos son
estacionarios. Si los datos no son estacionarios, los resultados del
modelo pueden ser sesgados o inexactos. Además, la estacionariedad puede
facilitar la identificación de patrones y la realización de pronósticos
precisos en una serie temporal. Si los datos de las series de tiempo no
son estacionarios se necesita hacer diferenciaciones para convertirlos
en estacionarios.
4. Homocedasticidad
La palabra homocedasticidad se puede desglosar en dos partes, homo
“igual” y cedasticidad “dispersión”.La homocedasticidad en econometría
se refiere a la suposición de que la varianza del error de un modelo de
regresión es constante en todas las observaciones. En otras palabras, la
homocedasticidad significa que la dispersión de los errores es la misma
para todos los valores de la variable independiente. Si hay
heterocedasticidad en un modelo de regresión, significa que la varianza
del error es diferente para diferentes valores de la variable
independiente. Esto puede ser un problema para la interpretación y
precisión del modelo, ya que los errores pueden ser demasiado grandes o
pequeños para ciertos valores de la variable independiente, lo que
afecta la capacidad del modelo para predecir con precisión los valores
de la variable dependiente.
5. Multicolinealidad
La multicolinealidad es la relación de dependencia lineal fuerte
entre más de dos variables explicativas en una regresión múltiple que
incumple el supuesto de Gauss-Markov cuando es exacta. Resaltamos que la
correlación entre variables explicativas tiene que ser fuerte. Es muy
habitual que las variables explicativas de la regresión estén
correlacionadas. Entonces, se debe puntualizar que esta relación debe
ser fuerte, pero nunca perfecta, para que sea considerada un caso de
multicolinealidad. La relación lineal sería perfecta si el coeficiente
de correlación fuese 1.
Cuando la relación es fuerte y lineal (pero no perfecta) se produce
sólo entre dos variables explicativas, decimos que se trata de un caso
de colinealidad. Sería multicolinealidad cuando la relación lineal
fuerte se produce entre más de dos variables independientes. Hay varias
formas de detectar y abordar la multicolinealidad en un modelo de
regresión, tales como la inspección visual de la matriz de correlación,
el cálculo del factor de inflación de la varianza “VIF”, o la
eliminación de variables redundantes del modelo.
6. Causalidad
La causalidad se refiere a la relación entre una variable
independiente “causa” y una variable dependiente “efecto”. La causalidad
implica que un cambio en la variable independiente provoca un cambio en
la variable dependiente. En la econometría se utilizan modelos de
regresión para analizar la relación causal entre variables. En estos
modelos, se especifica una variable dependiente y una o varias variables
independientes que pueden tener un efecto causal sobre la variable
dependiente. A través del análisis de la relación entre estas variables,
se puede evaluar el grado de causalidad que existe entre ellas.
Es importante tener en cuenta que la causalidad no puede ser
establecida de manera definitiva a través de la econometría o la
estadística en general. Esto se debe a que hay muchos factores que
pueden influir en la relación entre dos variables, y la econometría no
puede controlar todas las variables relevantes en un estudio. Además, la
causalidad no siempre es unidireccional. En algunos casos, las variables
pueden tener un efecto causal recíproco, es decir, que la variable
independiente también puede verse afectada por la variable
dependiente.
library(vars)
## Loading required package: MASS
## Loading required package: strucchange
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
## Loading required package: sandwich
## Loading required package: urca
## Loading required package: lmtest
library(fpp2)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
## ── Attaching packages ────────────────────────────────────────────── fpp2 2.5 ──
## ✔ ggplot2 3.4.1 ✔ fma 2.5
## ✔ forecast 8.21 ✔ expsmooth 2.3
##
library(TSA)
## Registered S3 methods overwritten by 'TSA':
## method from
## fitted.Arima forecast
## plot.Arima forecast
##
## Attaching package: 'TSA'
## The following objects are masked from 'package:stats':
##
## acf, arima
## The following object is masked from 'package:utils':
##
## tar
series<-uschange
autoplot(uschange[,c(3,4,5)])

ts.plot(series[,c(3,4,5)], xlab = "TIEMPO",col=c(1,2,3))

Se buscará por medio de la función VARselect para la selección del
modelo candidato y tener una idea sobre que valor de P se puede usar.
Para este caso por medio de la función a$selection podemos ver que el
valor optimo para el modelo es P = 2.
Se usara la función VARselect para la eleccion del modelo y poseer
una idea sobre el valor de P que se podra evaluar en el modelo.
a <- VARselect(uschange[,c(3,4,5)], lag.max=15,type="trend")
a$selection
## AIC(n) HQ(n) SC(n) FPE(n)
## 2 2 1 2
modelo1<-VAR(uschange[,c(3,4,5)],p=2,type=c("trend"))
modelo_s<-summary(modelo1);modelo_s
##
## VAR Estimation Results:
## =========================
## Endogenous variables: Production, Savings, Unemployment
## Deterministic variables: trend
## Sample size: 185
## Log Likelihood: -1007.567
## Roots of the characteristic polynomial:
## 0.6793 0.4399 0.3944 0.3944 0.3135 0.3135
## Call:
## VAR(y = uschange[, c(3, 4, 5)], p = 2, type = c("trend"))
##
##
## Estimation results for equation Production:
## ===========================================
## Production = Production.l1 + Savings.l1 + Unemployment.l1 + Production.l2 + Savings.l2 + Unemployment.l2 + trend
##
## Estimate Std. Error t value Pr(>|t|)
## Production.l1 0.521553 0.096594 5.399 2.12e-07 ***
## Savings.l1 -0.008047 0.007005 -1.149 0.25218
## Unemployment.l1 -1.013815 0.388383 -2.610 0.00982 **
## Production.l2 0.013462 0.094932 0.142 0.88739
## Savings.l2 -0.008686 0.006966 -1.247 0.21406
## Unemployment.l2 0.843452 0.388851 2.169 0.03140 *
## trend 0.001724 0.000893 1.931 0.05504 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 1.221 on 178 degrees of freedom
## Multiple R-Squared: 0.4538, Adjusted R-squared: 0.4324
## F-statistic: 21.13 on 7 and 178 DF, p-value: < 2.2e-16
##
##
## Estimation results for equation Savings:
## ========================================
## Savings = Production.l1 + Savings.l1 + Unemployment.l1 + Production.l2 + Savings.l2 + Unemployment.l2 + trend
##
## Estimate Std. Error t value Pr(>|t|)
## Production.l1 -1.718665 1.031415 -1.666 0.097409 .
## Savings.l1 -0.289000 0.074794 -3.864 0.000156 ***
## Unemployment.l1 -5.764295 4.147096 -1.390 0.166277
## Production.l2 2.079754 1.013665 2.052 0.041662 *
## Savings.l2 -0.018796 0.074382 -0.253 0.800798
## Unemployment.l2 9.349039 4.152097 2.252 0.025567 *
## trend 0.010075 0.009535 1.057 0.292087
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 13.04 on 178 degrees of freedom
## Multiple R-Squared: 0.1343, Adjusted R-squared: 0.1003
## F-statistic: 3.946 on 7 and 178 DF, p-value: 0.0004976
##
##
## Estimation results for equation Unemployment:
## =============================================
## Unemployment = Production.l1 + Savings.l1 + Unemployment.l1 + Production.l2 + Savings.l2 + Unemployment.l2 + trend
##
## Estimate Std. Error t value Pr(>|t|)
## Production.l1 -3.594e-02 2.459e-02 -1.461 0.145664
## Savings.l1 2.486e-03 1.783e-03 1.394 0.165010
## Unemployment.l1 3.398e-01 9.888e-02 3.437 0.000733 ***
## Production.l2 2.664e-02 2.417e-02 1.102 0.271894
## Savings.l2 1.675e-03 1.774e-03 0.944 0.346273
## Unemployment.l2 2.011e-01 9.900e-02 2.032 0.043668 *
## trend -6.512e-05 2.273e-04 -0.286 0.774888
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 0.3109 on 178 degrees of freedom
## Multiple R-Squared: 0.3158, Adjusted R-squared: 0.2889
## F-statistic: 11.74 on 7 and 178 DF, p-value: 3.001e-12
##
##
##
## Covariance matrix of residuals:
## Production Savings Unemployment
## Production 1.4798 -1.3930 -0.26751
## Savings -1.3930 169.8267 0.55620
## Unemployment -0.2675 0.5562 0.09661
##
## Correlation matrix of residuals:
## Production Savings Unemployment
## Production 1.00000 -0.08787 -0.7075
## Savings -0.08787 1.00000 0.1373
## Unemployment -0.70747 0.13731 1.0000
Luego de encontrar el modelo candidato que almacenamos en la
variable que creada “modelo1” y en la variable “modelo_s” se guardara el
resumen del modelo de estudio.
Se puede obvservar la variedad de posibles modelos.
summary(modelo1,equation="Savings")
##
## VAR Estimation Results:
## =========================
## Endogenous variables: Production, Savings, Unemployment
## Deterministic variables: trend
## Sample size: 185
## Log Likelihood: -1007.567
## Roots of the characteristic polynomial:
## 0.6793 0.4399 0.3944 0.3944 0.3135 0.3135
## Call:
## VAR(y = uschange[, c(3, 4, 5)], p = 2, type = c("trend"))
##
##
## Estimation results for equation Savings:
## ========================================
## Savings = Production.l1 + Savings.l1 + Unemployment.l1 + Production.l2 + Savings.l2 + Unemployment.l2 + trend
##
## Estimate Std. Error t value Pr(>|t|)
## Production.l1 -1.718665 1.031415 -1.666 0.097409 .
## Savings.l1 -0.289000 0.074794 -3.864 0.000156 ***
## Unemployment.l1 -5.764295 4.147096 -1.390 0.166277
## Production.l2 2.079754 1.013665 2.052 0.041662 *
## Savings.l2 -0.018796 0.074382 -0.253 0.800798
## Unemployment.l2 9.349039 4.152097 2.252 0.025567 *
## trend 0.010075 0.009535 1.057 0.292087
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 13.04 on 178 degrees of freedom
## Multiple R-Squared: 0.1343, Adjusted R-squared: 0.1003
## F-statistic: 3.946 on 7 and 178 DF, p-value: 0.0004976
##
##
##
## Covariance matrix of residuals:
## Production Savings Unemployment
## Production 1.4798 -1.3930 -0.26751
## Savings -1.3930 169.8267 0.55620
## Unemployment -0.2675 0.5562 0.09661
##
## Correlation matrix of residuals:
## Production Savings Unemployment
## Production 1.00000 -0.08787 -0.7075
## Savings -0.08787 1.00000 0.1373
## Unemployment -0.70747 0.13731 1.0000
summary(modelo1,equation="Unemployment")
##
## VAR Estimation Results:
## =========================
## Endogenous variables: Production, Savings, Unemployment
## Deterministic variables: trend
## Sample size: 185
## Log Likelihood: -1007.567
## Roots of the characteristic polynomial:
## 0.6793 0.4399 0.3944 0.3944 0.3135 0.3135
## Call:
## VAR(y = uschange[, c(3, 4, 5)], p = 2, type = c("trend"))
##
##
## Estimation results for equation Unemployment:
## =============================================
## Unemployment = Production.l1 + Savings.l1 + Unemployment.l1 + Production.l2 + Savings.l2 + Unemployment.l2 + trend
##
## Estimate Std. Error t value Pr(>|t|)
## Production.l1 -3.594e-02 2.459e-02 -1.461 0.145664
## Savings.l1 2.486e-03 1.783e-03 1.394 0.165010
## Unemployment.l1 3.398e-01 9.888e-02 3.437 0.000733 ***
## Production.l2 2.664e-02 2.417e-02 1.102 0.271894
## Savings.l2 1.675e-03 1.774e-03 0.944 0.346273
## Unemployment.l2 2.011e-01 9.900e-02 2.032 0.043668 *
## trend -6.512e-05 2.273e-04 -0.286 0.774888
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 0.3109 on 178 degrees of freedom
## Multiple R-Squared: 0.3158, Adjusted R-squared: 0.2889
## F-statistic: 11.74 on 7 and 178 DF, p-value: 3.001e-12
##
##
##
## Covariance matrix of residuals:
## Production Savings Unemployment
## Production 1.4798 -1.3930 -0.26751
## Savings -1.3930 169.8267 0.55620
## Unemployment -0.2675 0.5562 0.09661
##
## Correlation matrix of residuals:
## Production Savings Unemployment
## Production 1.00000 -0.08787 -0.7075
## Savings -0.08787 1.00000 0.1373
## Unemployment -0.70747 0.13731 1.0000
summary(modelo1,equation="Production")
##
## VAR Estimation Results:
## =========================
## Endogenous variables: Production, Savings, Unemployment
## Deterministic variables: trend
## Sample size: 185
## Log Likelihood: -1007.567
## Roots of the characteristic polynomial:
## 0.6793 0.4399 0.3944 0.3944 0.3135 0.3135
## Call:
## VAR(y = uschange[, c(3, 4, 5)], p = 2, type = c("trend"))
##
##
## Estimation results for equation Production:
## ===========================================
## Production = Production.l1 + Savings.l1 + Unemployment.l1 + Production.l2 + Savings.l2 + Unemployment.l2 + trend
##
## Estimate Std. Error t value Pr(>|t|)
## Production.l1 0.521553 0.096594 5.399 2.12e-07 ***
## Savings.l1 -0.008047 0.007005 -1.149 0.25218
## Unemployment.l1 -1.013815 0.388383 -2.610 0.00982 **
## Production.l2 0.013462 0.094932 0.142 0.88739
## Savings.l2 -0.008686 0.006966 -1.247 0.21406
## Unemployment.l2 0.843452 0.388851 2.169 0.03140 *
## trend 0.001724 0.000893 1.931 0.05504 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 1.221 on 178 degrees of freedom
## Multiple R-Squared: 0.4538, Adjusted R-squared: 0.4324
## F-statistic: 21.13 on 7 and 178 DF, p-value: < 2.2e-16
##
##
##
## Covariance matrix of residuals:
## Production Savings Unemployment
## Production 1.4798 -1.3930 -0.26751
## Savings -1.3930 169.8267 0.55620
## Unemployment -0.2675 0.5562 0.09661
##
## Correlation matrix of residuals:
## Production Savings Unemployment
## Production 1.00000 -0.08787 -0.7075
## Savings -0.08787 1.00000 0.1373
## Unemployment -0.70747 0.13731 1.0000
Validación del modelo
PortManteu Test > 0.05 Autocorrelación
El P-valor debe de ser mayor para pasar la prueba, en este caso en
P-valor es de 0.001831. Los datos no presentan autocorrelación.
serial.test(modelo1, lags.pt=10, type="PT.asymptotic")
##
## Portmanteau Test (asymptotic)
##
## data: Residuals of VAR object modelo1
## Chi-squared = 111.86, df = 72, p-value = 0.001831
Raíz unitaria, estacionariedad.
Las raíces deben de ser menor a 1 para pasar la prueba, en este caso
el modelo presenta raíces unitarias, por lo tanto, es estacionaria.
roots(modelo1)
## [1] 0.6793211 0.4399079 0.3943893 0.3943893 0.3135234 0.3135234
Normalidad Jarque Bera
La prueba de Jarque Bera, tiene la función de verificar si existe
normalidad en los residuales del modelo. Si el P-valor es menor a 0.05
existe normalidad en los residuales, en este caso en especifico el
P-valor de 2.2e-16 por lo tanto si existe normalidad en el modelo.
normality.test(modelo1, multivariate.only = FALSE)
## $Production
##
## JB-Test (univariate)
##
## data: Residual of Production equation
## Chi-squared = 45.644, df = 2, p-value = 1.226e-10
##
##
## $Savings
##
## JB-Test (univariate)
##
## data: Residual of Savings equation
## Chi-squared = 145.11, df = 2, p-value < 2.2e-16
##
##
## $Unemployment
##
## JB-Test (univariate)
##
## data: Residual of Unemployment equation
## Chi-squared = 33.373, df = 2, p-value = 5.664e-08
##
##
## $JB
##
## JB-Test (multivariate)
##
## data: Residuals of VAR object modelo1
## Chi-squared = 184.61, df = 6, p-value < 2.2e-16
##
##
## $Skewness
##
## Skewness only (multivariate)
##
## data: Residuals of VAR object modelo1
## Chi-squared = 3.0467, df = 3, p-value = 0.3845
##
##
## $Kurtosis
##
## Kurtosis only (multivariate)
##
## data: Residuals of VAR object modelo1
## Chi-squared = 181.56, df = 3, p-value < 2.2e-16
Hetorocedasticidad
Si el p-valor es mayor a 0.05 no hay heterocedasticidad pero si hay
homocedasticidad. Para este caso el p-valor es de 0.328, por lo
tanto.
El modelo1 presenta Homocedasticidad
arch<-arch.test(modelo1, lags.multi = 12, multivariate.only = TRUE)
arch
##
## ARCH (multivariate)
##
## data: Residuals of VAR object modelo1
## Chi-squared = 444.55, df = 432, p-value = 0.328
Causalidad de granger
Granger < 0.05 para que exista causalidad o que tiene.
La variable Savings no presenta causalidad.
La variable Unemploymente si presenta causalidad.
La variable Production tampoco presenta causalidad.
GrangerProduction <-causality(modelo1, cause = 'Production')
GrangerProduction
## $Granger
##
## Granger causality H0: Production do not Granger-cause Savings
## Unemployment
##
## data: VAR object modelo1
## F-Test = 1.6932, df1 = 4, df2 = 534, p-value = 0.1501
##
##
## $Instant
##
## H0: No instantaneous causality between: Production and Savings
## Unemployment
##
## data: VAR object modelo1
## Chi-squared = 61.293, df = 2, p-value = 4.907e-14
Respuesta de impulso
La visualización de una variable si otra variable recibe un
“shock”.
Es posible observar graficamente el comportamiento ante un impulso
de una variable con respuesta de otra variable. se debe de entender que
cuando la curva se acerca más a cero es porque más reacción tiene esa
variable cuando ocurren cambios en la otra.
UnemploymentIRF <- irf(modelo1, impulse = "Savings", response="Unemployment", n.ahead = 20, boot = T )
plot(UnemploymentIRF, ylab = "Unemployment", main = "Shock desde Savings")

UnemploymentIRF2 <- irf(modelo1, impulse = "Production", response="Unemployment", n.ahead = 20, boot = T )
plot(UnemploymentIRF2, ylab = "Unemployment", main = "Shock desde Production")

SavingsIRF <- irf(modelo1, impulse = "Unemployment", response="Savings", n.ahead = 20, boot = T )
plot(SavingsIRF, ylab = "Savings", main = "Shock desde Unemployment")

SavingsIRF2 <- irf(modelo1, impulse = "Production", response="Savings", n.ahead = 20, boot = T )
plot(SavingsIRF2, ylab = "Savings", main = "Shock desde Production")

ProductionIRF <- irf(modelo1, impulse = "Unemployment", response="Production", n.ahead = 20, boot = T )
plot(ProductionIRF, ylab = "Production", main = "Shock desde Unemployment")

ProductionIRF2 <- irf(modelo1, impulse = "Savings", response="Production", n.ahead = 20, boot = T )
plot(ProductionIRF2, ylab = "Production", main = "Shock desde Savings")
