Paquetes:
library(TSA)
## Loading required package: leaps
## Loading required package: locfit
## locfit 1.5-9.1 2013-03-22
## Loading required package: mgcv
## Loading required package: nlme
## This is mgcv 1.8-22. For overview type 'help("mgcv-package")'.
## Loading required package: tseries
##
## Attaching package: 'TSA'
## The following objects are masked from 'package:stats':
##
## acf, arima
## The following object is masked from 'package:utils':
##
## tar
library(ggfortify)
## Loading required package: ggplot2
library(forecast)
##
## Attaching package: 'forecast'
## The following object is masked from 'package:nlme':
##
## getResponse
library(fpp)
## Loading required package: fma
## Loading required package: expsmooth
## Loading required package: lmtest
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
library(seasonal)
library(fpp2)
##
## Attaching package: 'fpp2'
## The following objects are masked from 'package:fpp':
##
## ausair, ausbeer, austa, austourists, debitcards, departures,
## elecequip, euretail, guinearice, oil, sunspotarea, usmelec
library(gridExtra)
library(urca)
## Warning: package 'urca' was built under R version 3.4.4
library(foreign)
library(vars)
## Warning: package 'vars' was built under R version 3.4.4
## Loading required package: MASS
##
## Attaching package: 'MASS'
## The following objects are masked from 'package:fma':
##
## cement, housing, petrol
## Loading required package: strucchange
## Warning: package 'strucchange' was built under R version 3.4.4
## Loading required package: sandwich
## Warning: package 'sandwich' was built under R version 3.4.4
library(zoo)
library(dynlm)
## Warning: package 'dynlm' was built under R version 3.4.4
library(lmtest)
library(strucchange)
1. Breve referencia de la serie de tiempo elegida, así como frecuencia, unidad de medida, fuente, etc.
. La base es de la Importación de Semillas para siembra, abarca de los años de enero de 1993, a enero del 2018.
. Ruta temática: Sector externo> Balanza de productos agropecuarios> Importación> Semillas para siembra
. Periodicidad Mensual
. Unidad de medida Miles de dólares
. Fuente
SAT, SE, BANXICO, INEGI. Balanza Comercial de Mercancías de México. SNIEG. Información de Interés Nacional.
Se observan datos históricos que destacan y pueden explicar un poco el comportamiento de las importaciones de las semillas para siembra, entre estos destacan:
En 1991, se incorpora la “Ley sobre Producción, Certificación y Comercio de Semillas”; permite la participación sin restricciones del sector privado en la investigación agrícola, la producción y comercialización de semillas.
En 1992, se privatiza Fertilizantes Mexicanos (FERTIMEX). El gobierno federal mexicano lo fragmenta en trece unidades productoras [en 317 millones de dólares, muy por debajo de su valor en libros], las cuales quedaron en pocas manos de grupos empresariales.
En 1994, entra en vigor el Tratado de Libre Comercio (TLC) o “North American Free Trade Agreement” (NAFTA); un conjunto de reglas que los países Canadá, Estados Unidos y México acuerdan para la compra-venta de productos y servicios en América del Norte.
En 1996, se acuerda la “Ley Federal de Variedades Vegetales”, con la que se permite la participación de la iniciativa privada. El ejercicio de esta ley, las políticas de inversión del sector público y las presiones de organismos internacionales propiciaron el desmantelamiento paulatino de la PRONASE.
En 2005, es aprobada la Ley de Bioseguridad de Organismos Genéticamente Modificados.
En 2007, se decreta la “Ley de Producción, Certificación y Comercio de Semillas”, para el control de semillas. La ley otorga derechos de propiedad intelectual ajenos a las comunidades, como el derecho del obtentor, las certificaciones y el registro de semillas.
En abril de 2011, Felipe Calderón anuncia el proyecto MasAgro, una iniciativa de imagen para la revolución verde-transgénica del gobierno mexicano en Siglo XXI.
2. Graficar la serie de tiempo, analizar patrones y observaciones at´ipicas. Apoye su an´alisis con una descomposición clásica.
base<-read.csv("C:/Users/halo0/Desktop/Importación de semillas para siembra_Miles de dólares_MensualCorr1.csv")
IMSEMILLAS<-ts(base$IMSEMILLAS,start=c(1993,1),frequency = 12)
autoplot(IMSEMILLAS) + xlab("Year")+ylab("Miles de Dólares") +
ggtitle('Importación de Semillas (IMSEMILLAS ORIGINAL)')
La serie presenta tendencia positiva, es decir que el número de Importaciones se va incrementando; y también tiene estacionalidad, ya que se presentan caídas y picos en ciertos meses, también se aprecia muestra varianza creciente.
#Graficando para encontrar estacionalidad#
ggseasonplot(IMSEMILLAS)
Al utilizar el Gráfico del paquete ggplot, se puede observar más claramente la presencia de los principales meses que destacan de acuerdo con la importación de semillas para siembra, se pueden observar picos que se presentan en los meses de mayo, junio y septiembre, pero entre estos destaca principalmente el mes de junio donde se ve que parece incrementarse.
ggseasonplot(IMSEMILLAS,polar = TRUE)
En este otro gráfico, se muestran de igual forma como los meses de enero, mayo y junio destacan alejándose más del centro.
#CREAR VECTOR#
base<-read.csv("C:/Users/halo0/Desktop/Importación de semillas para siembra_Miles de dólares_MensualCorr11.csv")
IMSEMILLAs<-ts(base$IMSEMILLAs, start = c(2010,1),frequency = 12)
mes <-c ("E","F","M","A","M","J","J","A","S","O","N","D")
plot(IMSEMILLAs,type="l")
points(IMSEMILLAs,pch=mes)
Analizando y colocando los meses dentro del gráfico, se puede observar que Julio es el mes que destaca en los últimos años.
##el modelo se observa mediante un ajuste##
ggplot(IMSEMILLAS, aes(y=IMSEMILLAS, x=time(IMSEMILLAS))) +
geom_point() +
geom_smooth(se=FALSE)
## Don't know how to automatically pick scale for object of type ts. Defaulting to continuous.
## Don't know how to automatically pick scale for object of type ts. Defaulting to continuous.
## `geom_smooth()` using method = 'loess'
La serie parece tener una tendencia, y no es una nube de puntos, por lo que utilizamos una descomposición multiplicativa.
#Nos apoyamos de una descomposición clásica##
fit <-decompose(IMSEMILLAS, type = 'multiplicative')
autoplot(fit)
Se aprecia primeramente nuestra serie original, abajo la repetición del patrón estacional, y en la tendencia observamos que la serie presenta un poco de ruido.
3. Si es necesario, utilizar transformaci´on Box-Cox / logaritmos para estabilizar la varianza. Presentar grá???ca.
#transformación Box-Cox#
BoxCox.ar(IMSEMILLAS)
## Warning in arima0(x, order = c(i, 0L, 0L), include.mean = demean): possible
## convergence problem: optim gave code = 1
## Warning in arima0(x, order = c(i, 0L, 0L), include.mean = demean): possible
## convergence problem: optim gave code = 1
## Warning in arima0(x, order = c(i, 0L, 0L), include.mean = demean): possible
## convergence problem: optim gave code = 1
## Warning in arima0(x, order = c(i, 0L, 0L), include.mean = demean): possible
## convergence problem: optim gave code = 1
## Warning in arima0(x, order = c(i, 0L, 0L), include.mean = demean): possible
## convergence problem: optim gave code = 1
## Warning in arima0(x, order = c(i, 0L, 0L), include.mean = demean): possible
## convergence problem: optim gave code = 1
## Warning in arima0(x, order = c(i, 0L, 0L), include.mean = demean): possible
## convergence problem: optim gave code = 1
## Warning in arima0(x, order = c(i, 0L, 0L), include.mean = demean): possible
## convergence problem: optim gave code = 1
La transformación Box-Cox nos indica que nuestro modelo podría mejorar con una transformación de raíz cuadrada.
Aplicamos logaritmos a la base para estabilizar la varianza
#SEG parcial#
logIMSEMILLAS<- log(IMSEMILLAS)
autoplot(logIMSEMILLAS) + ggtitle('Importación de Semillas (logIMSEMILLAS ORIGINAL)')
Se aplicó logaritmos a la serie original para estabilizar la varianza y se observa que la varianza parece expandirse.
4. Modelar la serie de tiempo elegida como función de una tendencia, tendencia cuacuadrática y/o medias estacionales. Presente el diagnóstico del modelo elegido.
#Probamos aplicando variables dummy#
#Modelo lineal usando la serie elegida como variable dependiente y el tiempo como independiente#
base<-read.csv("C:/Users/halo0/Desktop/Importación de semillas para siembra_Miles de dólares_MensualCorr1.csv")
IMSEMILLAS <-ts(base$IMSEMILLAS,start=c(1993,1),frequency = 12)
modelo1 <-lm(IMSEMILLAS~time(IMSEMILLAS))
summary(modelo1)
##
## Call:
## lm(formula = IMSEMILLAS ~ time(IMSEMILLAS))
##
## Residuals:
## Min 1Q Median 3Q Max
## -11686.5 -3340.2 -302.1 3046.7 17079.3
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.498e+06 7.434e+04 -33.60 <2e-16 ***
## time(IMSEMILLAS) 1.255e+03 3.707e+01 33.85 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4726 on 302 degrees of freedom
## Multiple R-squared: 0.7915, Adjusted R-squared: 0.7908
## F-statistic: 1146 on 1 and 302 DF, p-value: < 2.2e-16
Al estimar la variable tiempo como independiente en el modelo se puede apreciar que es significativa, la R cuadrada es tan alta, está arriba de 0.5, quedando en 0.7875.
#RESIDUOS del modelo 1#
#histograma#
hist(rstudent(modelo1),col = 'blue', main= 'Histograma residuos IMSEMILLAS lm')
De acuerdo con el histograma, la curtosis se muestra un poco más normal la distribución
qqnorm(rstudent(modelo1), main ='Q-Q PLOT');qqline(rstudent(modelo1), col= "Gray50",lwd="2")
En el caso del Q-Q plot, se puede apreciar que los residuos parecen estar distribuidos casi de manera normal, excepto por unos cuantos que parecen dispersos.
#shapiro-Wilk test de normalidad##
shapiro.test(rstudent(modelo1))
##
## Shapiro-Wilk normality test
##
## data: rstudent(modelo1)
## W = 0.98875, p-value = 0.01877
H0= Los residuos se distribuyen de manera normal. Ha= Los residuos no están normalmente distribuidos. En esta prueba de normalidad, al ser el valor p menor a 0.05, se rechaza la H0, de que exista normalidad en los residuos.
#Función de autocorrelación muestral##
#correlograma##
autoplot(acf(rstudent(modelo1), plot = F))
En la prueba de autocorrelación se muestra que las líneas se salen de las bandas, por lo que presenta autocorrelación.
autoplot(modelo1, which=1:6, ncol=2, label.size=3)
Los residuos se ven distribuidos sobre la media; en el QQ plot los residuos parecen estar distribuidos de manera casi normal, aunque presenta algunas observaciones dispersas. Y en la distribución de Cook’s presenta puntos atípicos de influencia.
modelo2<-lm(log(IMSEMILLAS)~time(log(IMSEMILLAS)))
summary(modelo2)
##
## Call:
## lm(formula = log(IMSEMILLAS) ~ time(log(IMSEMILLAS)))
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.18677 -0.18805 0.00601 0.22664 0.68472
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.423e+02 4.639e+00 -30.68 <2e-16 ***
## time(log(IMSEMILLAS)) 7.579e-02 2.313e-03 32.77 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2949 on 302 degrees of freedom
## Multiple R-squared: 0.7805, Adjusted R-squared: 0.7798
## F-statistic: 1074 on 1 and 302 DF, p-value: < 2.2e-16
Al estimar la variable tiempo como independiente y con logaritmos en el modelo, se puede apreciar que también es significativa, y que la R cuadrada es ligeramente menos significativa que cuando no aplicamos logaritmos, quedando en 0.7789.
#RESIDUOS del modelo 2#
#histograma#
hist(rstudent(modelo2),col = 'blue', main= 'Histograma residuos logIMSEMILLAS~ tiempo')
De acuerdo con el histograma, la curtosis se muestra laticúrtica, con una inclinación del lado derecho.
qqnorm(rstudent(modelo2), main ='Q-Q PLOT');qqline(rstudent(modelo2), col= "Gray50",lwd="2")
En el caso del Q-Q plot, se puede apreciar que los residuos parecen estar distribuidos casi de manera normal.
#shapiro-Wilk test de normalidad##
shapiro.test(rstudent(modelo2))
##
## Shapiro-Wilk normality test
##
## data: rstudent(modelo2)
## W = 0.97716, p-value = 9.052e-05
H0= Los residuos se distribuyen de manera normal. Ha= Los residuos no están normalmente distribuidos. En esta prueba de normalidad, al ser el valor p menor a 0.05, se rechaza la H0, de que exista normalidad en los residuos.
#Función de autocorrelación muestral##
#correlograma##
autoplot(acf(rstudent(modelo2), plot = F))
En la prueba de autocorrelación se muestra que las líneas se salen de las bandas, por lo que presenta autocorrelación.
#ANÁLISIS RESIDUAL##
autoplot(modelo2, which=1:6, ncol=2, label.size=3)
Los residuos se ven distribuidos sobre la media; en el QQ plot los residuos parecen estar distribuidos de manera casi normal, aunque presenta algunas observaciones dispersas. Y en la distribución de Cook’s presenta puntos atípicos de influencia.
modelo3<-lm(log(IMSEMILLAS)~time(log(IMSEMILLAS)) + I(time(log(IMSEMILLAS))^2))
summary(modelo3)
##
## Call:
## lm(formula = log(IMSEMILLAS) ~ time(log(IMSEMILLAS)) + I(time(log(IMSEMILLAS))^2))
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.17873 -0.17124 0.00562 0.20918 0.67740
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.615e+03 1.411e+03 -2.563 0.0109 *
## time(log(IMSEMILLAS)) 3.539e+00 1.407e+00 2.516 0.0124 *
## I(time(log(IMSEMILLAS))^2) -8.633e-04 3.507e-04 -2.462 0.0144 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2925 on 301 degrees of freedom
## Multiple R-squared: 0.7848, Adjusted R-squared: 0.7834
## F-statistic: 548.9 on 2 and 301 DF, p-value: < 2.2e-16
Al estimar la variable tiempo como independiente y al cuadrado, se puede apreciar que también es estadísticamente significativa al 0.05%, y que, la R cuadrada es de 0.781, un poco inferior que cuando solo aplicamos logaritmos.
#RESIDUOS del modelo 3#
#histograma#
hist(rstudent(modelo3),col = 'blue', main= 'Histograma residuos logIMSEMILLAS~tiempo^2')
De acuerdo con el histograma, la curtosis se muestra laticúrtica, con una inclinación del lado derecho.
qqnorm(rstudent(modelo3), main ='Q-Q PLOT');qqline(rstudent(modelo3), col= "Gray50",lwd="2")
En el caso del Q-Q plot, se puede apreciar que los residuos parecen estar distribuidos casi de manera normal.
#shapiro-Wilk test de normalidad##
shapiro.test(rstudent(modelo3))
##
## Shapiro-Wilk normality test
##
## data: rstudent(modelo3)
## W = 0.98031, p-value = 0.000343
H0= Los residuos se distribuyen de manera normal. Ha= Los residuos no están normalmente distribuidos. En esta prueba de normalidad, al ser el valor p menor a 0.05, se rechaza la H0, de que exista normalidad en los residuos.
#Función de autocorrelación muestral##
#correlograma##
autoplot(acf(rstudent(modelo3), plot = F))
En la prueba de autocorrelación se muestra que las líneas se salen de las bandas, por lo que presenta autocorrelación.
autoplot(modelo3, which=1:6, ncol=2, label.size=3)
Los residuos se ven distribuidos sobre la media; en el QQ plot los residuos parecen estar distribuidos de manera casi normal, aunque presenta algunas observaciones dispersas. Y en la distribución de Cook’s presenta puntos atípicos de influencia.
#Modelo lineal usando la serie elegida con logaritmo como variable dependiente y el tiempo como independiente#
mes. <- season(IMSEMILLAS)
modelo4<-lm(log(IMSEMILLAS)~mes.)
summary(modelo4)
##
## Call:
## lm(formula = log(IMSEMILLAS) ~ mes.)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.58124 -0.44480 0.06377 0.49966 1.16699
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 9.59541 0.11911 80.562 <2e-16 ***
## mes.February -0.15140 0.16844 -0.899 0.3695
## mes.March -0.08691 0.16844 -0.516 0.6063
## mes.April -0.32251 0.16844 -1.915 0.0565 .
## mes.May -0.11824 0.17012 -0.695 0.4876
## mes.June 0.11948 0.17012 0.702 0.4830
## mes.July 0.32599 0.17012 1.916 0.0563 .
## mes.August 0.30242 0.17012 1.778 0.0765 .
## mes.September 0.19533 0.17012 1.148 0.2518
## mes.October 0.24155 0.17012 1.420 0.1567
## mes.November 0.11176 0.17012 0.657 0.5117
## mes.December 0.24773 0.17012 1.456 0.1464
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6073 on 292 degrees of freedom
## Multiple R-squared: 0.09984, Adjusted R-squared: 0.06593
## F-statistic: 2.944 on 11 and 292 DF, p-value: 0.001031
En este modelo con dummys estacionales, aplicados a la serie de Importación de semillas para siembra, se puede observar que los valores t de los meses abril, julio y agosto son significativos.
#RESIDUOS del modelo 4#
#histograma#
hist(rstudent(modelo4),col = 'blue', main= 'Histograma residuos logIMSEMILLAS lm')
De acuerdo con el histograma, la curtosis se muestra con una inclinación del lado derecho y cargada en la media.
qqnorm(rstudent(modelo4), main ='Q-Q PLOT');qqline(rstudent(modelo3), col= "Gray50",lwd="2")
En el caso del Q-Q plot, se puede apreciar que los residuos parecen no estar distribuidos de manera normal.
#shapiro-Wilk test de normalidad##
shapiro.test(rstudent(modelo4))
##
## Shapiro-Wilk normality test
##
## data: rstudent(modelo4)
## W = 0.98017, p-value = 0.0003217
H0= Los residuos se distribuyen de manera normal. Ha= Los residuos no están normalmente distribuidos. En esta prueba de normalidad, al ser el valor p menor a 0.05, se rechaza la H0, de que exista normalidad en los residuos.
#Función de autocorrelación muestral##
#correlograma##
autoplot(acf(rstudent(modelo4), plot = F))
En la prueba de autocorrelación se muestra que las líneas se salen de las bandas, por lo que presenta autocorrelación; y en ese sentido al notar que dichas barras exceden los límites y presentan el mismo comportamiento, es decir, todas se encuentran por arriba de la línea media, lo que solo nos confirma que aún en este nuevo modelo existe la presencia de estacionalidad.
autoplot(modelo4, which=1:6, ncol=2, label.size=3)
Los residuos no se ven distribuidos sobre la media; en el QQ plot los residuos parecen estar distribuidos de manera casi normal, aunque presenta algunas observaciones dispersas. Y en la distribución de Cook’s presenta puntos atípicos de influencia.
#Modelo lineal usando la serie elegida con logaritmo como variable dependiente y el tiempo al cuadrado como independiente#
modelo5<-lm(IMSEMILLAS~mes.+time(IMSEMILLAS)+I(time(IMSEMILLAS)^2))
summary(modelo5)
##
## Call:
## lm(formula = IMSEMILLAS ~ mes. + time(IMSEMILLAS) + I(time(IMSEMILLAS)^2))
##
## Residuals:
## Min 1Q Median 3Q Max
## -9024.6 -2311.2 -124.4 2156.1 12358.5
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.121e+08 1.712e+07 6.545 2.70e-10 ***
## mes.February -1.551e+03 9.837e+02 -1.577 0.115959
## mes.March -5.712e+02 9.837e+02 -0.581 0.561953
## mes.April -2.848e+03 9.837e+02 -2.895 0.004081 **
## mes.May 1.395e+03 9.937e+02 1.404 0.161389
## mes.June 5.334e+03 9.937e+02 5.368 1.64e-07 ***
## mes.July 7.304e+03 9.937e+02 7.350 2.03e-12 ***
## mes.August 5.207e+03 9.937e+02 5.240 3.09e-07 ***
## mes.September 2.696e+03 9.937e+02 2.713 0.007065 **
## mes.October 3.596e+03 9.937e+02 3.619 0.000349 ***
## mes.November 1.965e+03 9.937e+02 1.978 0.048899 *
## mes.December 3.881e+03 9.937e+02 3.906 0.000117 ***
## time(IMSEMILLAS) -1.130e+05 1.707e+04 -6.617 1.76e-10 ***
## I(time(IMSEMILLAS)^2) 2.848e+01 4.256e+00 6.691 1.14e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3547 on 290 degrees of freedom
## Multiple R-squared: 0.8872, Adjusted R-squared: 0.8822
## F-statistic: 175.5 on 13 and 290 DF, p-value: < 2.2e-16
En este modelo con dummys estacionales en la serie de Importación de semillas, se puede observar que las variables este modelo de acuerdo con el valor p, muestran que el tiempo y el tiempo al cuadrado son significativos. En el caso de los meses todos son significativos excepto febrero y mayo.
#RESIDUOS del modelo 5#
#histograma#
hist(rstudent(modelo5),col = 'blue', main= 'Histograma residuos logIMSEMILLAS~tiempo^2')
De acuerdo con el histograma, la curtosis se muestra con una inclinación en la media.
qqnorm(rstudent(modelo5), main ='Q-Q PLOT');qqline(rstudent(modelo5), col= "Gray50",lwd="2")
En el caso del Q-Q plot, se puede apreciar que los residuos parecen estar distribuidos casi de manera normal, aunque presenta algunos residuos dispersos.
#shapiro-Wilk test de normalidad##
shapiro.test(rstudent(modelo5))
##
## Shapiro-Wilk normality test
##
## data: rstudent(modelo5)
## W = 0.9893, p-value = 0.02485
H0= Los residuos se distribuyen de manera normal. Ha= Los residuos no están normalmente distribuidos. En esta prueba de normalidad, al ser el valor p menor a 0.05, se rechaza la H0, de que exista normalidad en los residuos.
#Función de autocorrelación muestral##
#correlograma##
autoplot(acf(rstudent(modelo5), plot = F))
En la prueba de autocorrelación se muestra que las líneas se salen de las bandas, por lo que presenta autocorrelación.
autoplot(modelo5, which=1:6, ncol=2, label.size=3)
Los residuos no se ven distribuidos sobre la media; en el QQ plot los residuos parecen estar distribuidos de manera casi normal, aunque presenta algunas observaciones dispersas. Y en la distribución de Cook’s presenta puntos atípicos de influencia.
#Medias Móviles##
p1<-autoplot(IMSEMILLAS,series = "Data")+
autolayer(ma(IMSEMILLAS,3),series = "3-MA")+
xlab("Year")+ylab("Miles de Dólares")+
ggtitle("Importación de Semillas")+
scale_color_manual(values=c("Data"="grey50","3-MA"="Red"))
p2<-autoplot(IMSEMILLAS,series = "Data")+
autolayer(ma(IMSEMILLAS,5),series = "5-MA")+
xlab("Year")+ylab("Miles de Dólares")+
ggtitle("Importación de Semillas")+
scale_color_manual(values=c("Data"="grey50","5-MA"="Blue"))
p3<-autoplot(IMSEMILLAS,series = "Data")+
autolayer(ma(IMSEMILLAS,7),series = "7-MA")+
xlab("Year")+ylab("Miles de Dólares")+
ggtitle("Importación de Semillas")+
scale_color_manual(values=c("Data"="grey50","7-MA"="Green"))
p4<-autoplot(IMSEMILLAS,series = "Data")+
autolayer(ma(IMSEMILLAS,9),series = "9-MA")+
xlab("Year")+ylab("Miles de Dólares")+
ggtitle("Importación de Semillas")+
scale_color_manual(values=c("Data"="grey50","9-MA"="Purple"))
grid.arrange(p1,p2,p3,p4); main= ("Varios MA")
## Warning: Removed 2 rows containing missing values (geom_path).
## Warning: Removed 4 rows containing missing values (geom_path).
## Warning: Removed 6 rows containing missing values (geom_path).
## Warning: Removed 8 rows containing missing values (geom_path).
En este panel de gráficos se puede apreciar que al aplicar medias móviles: MA(3), MA(5),MA(7) y MA(9), usando la función MA() del paquete fpp, podemos observar que conforme se van incrementando, la serie se va suavizando, y se tiene un comportamiento más estable, pero también se van perdiendo observaciones.
Aplicamos diferencias típicas o no estacionales al logaritmo para estabilizar la media
diflogIMSEMILLAS <- diff(log(IMSEMILLAS))
autoplot(diflogIMSEMILLAS)+ ggtitle('Importación de Semillas (diflogIMSEMILLAS ORIGINAL)')
Al comparar los gráficos, parece que estabilizamos la serie
par(mfrow=c(1,3))
plot(IMSEMILLAS,main='Importación de Semillas')
plot(log(IMSEMILLAS),main='Log(IMSEMILLAS)')
plot(diff(log(IMSEMILLAS)),main='Difference Log(IMSEMILLAS)')
En la primera imagen del panel se observa la gráfica con la serie original, que presenta tendencia positiva. En la segunda imagen se aplicó logaritmos a la serie original para estabilizar la varianza y se observa que la varianza parece expandirse. En la tercera imagen aplicamos una diferencia a la serie a la que ya le habíamos aplicado logaritmos, para estabilizar la media y observamos que parece estabilizarse, y vemos que solo necesitó una diferencia para estabilizarla.
Pero al observar los rezagos, aún existen remanentes de estacionalidad
#diferencia típica
ggtsdisplay(diff(logIMSEMILLAS,1),main='Dif típica del log de las importaciones')
Se aprecia muchos rezagos saliendo de las bandas y tenemos el mismo patrón de los rezagos 12, 24, y 36.
5. En caso de estacionalidad de la serie de tiempo, aplicar diferencias estacionales. Presentar gráfica.
Aplicando Diferencias estacionales
#Diferencias estacionales##
ggtsdisplay(diff(logIMSEMILLAS,12),main='Dif estacional del log del total de la Importación')
En este caso nuestro modelo como presenta comportamientos tanto estacionales como no estacionales. Por lo que buscaremos el ARIMA apropiado basándonos en la prueba de autocorrelación ACF y la de autocorrelación parcial PACF. Observamos un pico significativo en el rezago 1 del ACF, lo que podría sugerirnos es un componente MA (1) no estacional así como un MA(1) estacional por el rezago 12; también observamos un pico significativo en el rezago 1 del PACF sugiere un componente AR (1) no estacional y otro pico en el rezago 12, lo que podría indicarnos un AR(1) estacional.
Ahora aplicaremos diferencia típica a la diferencia estacional
#Diferencia de la difencia estacional#
ggtsdisplay(diff(diff(logIMSEMILLAS,12)),main='Dif de la Dif estacional del log de la importación')
Se observa que, en los gráficos de los datos de la diferencia de la diferencia estacional, hay patrones parecidos en la ACF y PACF en los rezagos 1 y 12. Esto nos dice que es posible iniciar con un patrón en AR o MA. Ya que es un ARIMA multiplicativo. Por lo que iremos proponiendo modelos.
6. Usar pruebaDickey-Fuller para evaluar el orden de integración de la serie.Diferenciar hasta que la serie sea estacionaria.
Se Usará la prueba Dickey-Fuller para evaluar el orden de integración de la serie. Y de ser el caso, se Diferenciará hasta que la serie sea estacionaria.
#Prueba de raíces Unitarias#
ur.df(IMSEMILLAS)
##
## ###############################################################
## # Augmented Dickey-Fuller Test Unit Root / Cointegration Test #
## ###############################################################
##
## The value of the test statistic is: -1.3188
Como el valor p <0.05 se rechaza la H0 de que haya raíz unitaria en la serie. Por lo que nuestra serie es un proceso estacionario.
#la serie tiene tendencia #la serie con tasa de crecimiento no tienen tencencia= none h0= no estacionalidad
summary(ur.df(diflogIMSEMILLAS,type = "none",selectlags = "AIC"))
##
## ###############################################
## # 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.9743 -0.1654 0.0091 0.1858 0.7405
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## z.lag.1 -1.20824 0.08642 -13.981 <2e-16 ***
## z.diff.lag 0.07532 0.05760 1.308 0.192
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2756 on 299 degrees of freedom
## Multiple R-squared: 0.5645, Adjusted R-squared: 0.5615
## F-statistic: 193.8 on 2 and 299 DF, p-value: < 2.2e-16
##
##
## Value of test-statistic is: -13.9807
##
## Critical values for test statistics:
## 1pct 5pct 10pct
## tau1 -2.58 -1.95 -1.62
H0= la serie es no estacionaria, por lo que, si no pasa los valores críticos, la serie es no estacionaria. La prueba nos indica que el valor estadístico es de -13.88, el cual es mayor que cualquiera de los valores críticos de -2.58, -1.95 y -1.62, por lo que estamos por mucho rebasando los valores críticos y por lo tanto estamos en la zona de rechazo de la H0, la cual es no estacionalidad, por lo tanto, esta serie con una primera diferencia ya es estacional.
summary(ur.df(logIMSEMILLAS,type = "trend",selectlags = "AIC"))
##
## ###############################################
## # Augmented Dickey-Fuller Test Unit Root Test #
## ###############################################
##
## Test regression trend
##
##
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.10932 -0.13261 0.01223 0.14965 0.63139
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.3316626 0.4720997 9.175 < 2e-16 ***
## z.lag.1 -0.4971147 0.0541856 -9.174 < 2e-16 ***
## tt 0.0031345 0.0003793 8.264 4.68e-15 ***
## z.diff.lag 0.1239490 0.0575128 2.155 0.032 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2445 on 298 degrees of freedom
## Multiple R-squared: 0.2325, Adjusted R-squared: 0.2247
## F-statistic: 30.09 on 3 and 298 DF, p-value: < 2.2e-16
##
##
## Value of test-statistic is: -9.1743 28.1205 42.088
##
## Critical values for test statistics:
## 1pct 5pct 10pct
## tau3 -3.98 -3.42 -3.13
## phi2 6.15 4.71 4.05
## phi3 8.34 6.30 5.36
La prueba nos indica que los valores estadísticos son de -9.17, 28.15 y 42.10, los cuales son mayores por mucho que los valores críticos de -2.58, -1.95 y -1.62, por lo que estamos rechazando la H0 de que exista no estacionalidad. Por lo que ya sabiendo que es estacional podemos proponer modelos con las herramientas.
7. Usar herramientas ACF,PACF,EACFy/o criterios de Akaike/Bayes para construir propuestas de modelos. Se usarán las herramientas ACF, PACF, EACF y criterios de Akaike/ Bayes para construir propuestas de modelos.
##PARA ESPECIFICACIÓN E IDENTIFICACIÓN DEL MODELO YA CON SERIE ESTABLE EN MEDIA Y VARIANZA##
# Función de autocorrelación
par(mfrow=c(1,1))
acf(diflogIMSEMILLAS)
En esta prueba de Autocorrelación, podemos observar que se siguen saliendo varios rezagos, incluyendo el 12 y el 24, por lo que nos indica que tenemos un componente estacional, y podemos intentar con un MA (1) estacional.
Función de autocorrelación parcial (PACF)
# Función de autocorrelación parcial
pacf(diflogIMSEMILLAS)
En la función de autocorrelación parcial, podemos ver que de igual forma se siguen saliendo muchos rezagos, también se sale el rezago 12, por lo que podemos probar con un AR (1) estacional.
Función de autocorrelación extendida (eacf)
# Función de autocorrelación extendida
eacf(diflogIMSEMILLAS)
## AR/MA
## 0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x o o x o x o x o o o x o o
## 1 x o o x o x o x o o o x x o
## 2 x o o x o o o x o o o x x o
## 3 x o x x o o o x o o o x x o
## 4 x x x x o o o o o o o x o x
## 5 x x x o x o o o o o o x x x
## 6 x x x o x o o o o o o x x x
## 7 x x x x x o o o o x o x o x
Aquí normalmente se busca el triángulo de ceros para buscar el modelo más parsimonioso, pero en nuestro caso, no parece ayudarnos.
Con ggtsdisplay
ggtsdisplay(diflogIMSEMILLAS)
Notamos en la prueba de autocorrelación muestra rezagos fuera de las bandas en el 12, 24, y 36. De igual forma la prueba de autocorrelación parcial muestra muchos rezagos fuera de las bandas por lo que podemos proponer modelos de combinación ARIMA estacionales y no estacionales.
Criterio de Bayes
###Criterio Bayesiano de Schwarz BIC) ####
res<-armasubsets(y=diflogIMSEMILLAS,nar=12,nma=12,y.name='diflogIMSEMILLAS',ar.method='ols')
plot(res)
El criterio bayesiano de Schwarz (BIC), debe ser lo más pequeño, lo más negativo, entre más coloreado esté y más consistente y arriba mejor, con base en lo que esté coloreado se elige el modelo. En este caso nos dice que para nuestro modelo en teoría debería incluir un intercepto, aquí tomamos 12 rezagos, y vemos que está coloreado el rezago 11 y 12, lo que nos sugiere para escoger el modelo podría ser un AR(2) estacional, también se colorean el rezago 1 y 2, por lo que nos sugiere un MA(2) no estacional, así como un MA(1) estacional, ya que está coloreado el rezago 12.
8. Propuestas de modelos ARIMA, y Como parte del diagnóstico del modelo, analizar los residuos y aplicar la prueba Ljung-Box Propuesta 1:
#propuestas#
#######propuestas con Arima multiplicativo#
prop1 <- arima(logIMSEMILLAS, order= c(2,1,2), seasonal=c(1,1,2))
prop1
##
## Call:
## arima(x = logIMSEMILLAS, order = c(2, 1, 2), seasonal = c(1, 1, 2))
##
## Coefficients:
## ar1 ar2 ma1 ma2 sar1 sma1 sma2
## 1.0559 -0.1462 -1.7926 0.7926 -0.6835 0.1959 -0.4920
## s.e. 0.1448 0.0882 0.1243 0.1241 0.1730 0.1671 0.0845
##
## sigma^2 estimated as 0.02911: log likelihood = 96.23, aic = -178.46
Podemos ver que en esta propuesta 1, el criterio de Akaike, que mientras más pequeño negativo mejor, en este caso es de -175.01. En el caso de la prueba Ljung-Box es una prueba de autocorrelación parcial, donde la H0=No correlación serial para grupos de rezagos, el valor p es de 0.018, por lo que al ser menor que 0.05 se rechaza la H0 de No correlación serial, por lo que el modelo si tiene correlación serial.
checkresiduals(prop1)
##
## Ljung-Box test
##
## data: Residuals from ARIMA(2,1,2)(1,1,2)[12]
## Q* = 31.794, df = 17, p-value = 0.01596
##
## Model df: 7. Total lags used: 24
Tenemos arriba la gráfica de los residuos, la cual no parece tener ningún patrón y se ve un poco aleatoria. Abajo a la Izquierda podemos ver la prueba de autocorrelación en la cual destaca un rezago que se sale de la banda por mucho. Y abajo a la derecha está un histograma de la distribución de los residuos, en la cual parecen normales.
Propuesta 2
prop2 <- arima(logIMSEMILLAS, order= c(2,1,1), seasonal=c(1,2,2))
prop2
##
## Call:
## arima(x = logIMSEMILLAS, order = c(2, 1, 1), seasonal = c(1, 2, 2))
##
## Coefficients:
## ar1 ar2 ma1 sar1 sma1 sma2
## 0.2010 0.0136 -0.919 0.2735 -1.7288 0.7680
## s.e. 0.0794 0.0764 0.056 0.1123 0.0940 0.0978
##
## sigma^2 estimated as 0.03216: log likelihood = 54.97, aic = -97.93
Podemos ver que en esta propuesta 1, el criterio de Akaike, que mientras más pequeño negativo mejor, en este caso es de -93.5. En el caso de la prueba Ljung-Box es una prueba de autocorrelación parcial, donde la H0=No correlación serial para grupos de rezagos, el valor p es de 0.097, por lo que al ser mayor que 0.05 se acepta la H0 de No correlación serial, por lo que el modelo no tiene correlación serial.
checkresiduals(prop2)
##
## Ljung-Box test
##
## data: Residuals from ARIMA(2,1,1)(1,2,2)[12]
## Q* = 26.523, df = 18, p-value = 0.08839
##
## Model df: 6. Total lags used: 24
Tenemos arriba la gráfica de los residuos, la cual no parece tener ningún patrón y se ve aleatoria. Abajo a la Izquierda podemos ver la prueba de autocorrelación en la cual destacan aún tres rezagos que se salen de la banda. Y abajo a la derecha está un histograma de la distribución de los residuos, en la cual parecen normales.
Propuesta 3
prop3 <- arima(logIMSEMILLAS, order= c(2,1,2), seasonal=c(2,1,2))
prop3
##
## Call:
## arima(x = logIMSEMILLAS, order = c(2, 1, 2), seasonal = c(2, 1, 2))
##
## Coefficients:
## ar1 ar2 ma1 ma2 sar1 sar2 sma1 sma2
## -0.7129 0.2036 0.0599 -0.9399 -0.6619 0.0822 0.1824 -0.5768
## s.e. 0.0850 0.0843 0.0554 0.0553 0.1603 0.1166 0.1488 0.1252
##
## sigma^2 estimated as 0.02874: log likelihood = 97.7, aic = -179.4
Podemos ver que en esta propuesta 1, el criterio de Akaike, que mientras más pequeño negativo mejor, en este caso es de -175.86. En el caso de la prueba Ljung-Box es una prueba de autocorrelación parcial, donde la H0=No correlación serial para grupos de rezagos, el valor p es de 0.03, por lo que al ser menor que 0.05 se rechaza la H0 de No correlación serial, por lo que el modelo si tiene correlación serial.
checkresiduals(prop3)
##
## Ljung-Box test
##
## data: Residuals from ARIMA(2,1,2)(2,1,2)[12]
## Q* = 27.78, df = 16, p-value = 0.03359
##
## Model df: 8. Total lags used: 24
Tenemos arriba la gráfica de los residuos, la cual no parece tener ningún patrón y se ve aleatoria y sin patrones. Abajo a la Izquierda podemos ver la prueba de autocorrelación en la cual destacan un solo rezago que sale de la banda y uno que ya casi entra a la banda. Y abajo a la derecha está un histograma de la distribución de los residuos, en la cual parecen normales.
Propuesta 4
prop4 <- arima(logIMSEMILLAS, order= c(1,1,1), seasonal=c(1,1,1))
prop4
##
## Call:
## arima(x = logIMSEMILLAS, order = c(1, 1, 1), seasonal = c(1, 1, 1))
##
## Coefficients:
## ar1 ma1 sar1 sma1
## 0.2747 -0.9605 0.2057 -0.7163
## s.e. 0.0877 0.0602 0.1014 0.0700
##
## sigma^2 estimated as 0.03009: log likelihood = 92.73, aic = -177.46
Podemos ver que en esta propuesta 1, el criterio de Akaike, que mientras más pequeño negativo mejor, en este caso es de -173.95. En el caso de la prueba Ljung-Box es una prueba de autocorrelación parcial, donde la H0=No correlación serial para grupos de rezagos, el valor p es de 0.0426, por lo que al ser menor que 0.05 se rechaza la H0 de No correlación serial, por lo que el modelo si tiene correlación serial.
checkresiduals(prop4)
##
## Ljung-Box test
##
## data: Residuals from ARIMA(1,1,1)(1,1,1)[12]
## Q* = 32.081, df = 20, p-value = 0.04244
##
## Model df: 4. Total lags used: 24
Tenemos arriba la gráfica de los residuos, la cual no parece tener ningún patrón y se ve aleatoria. Abajo a la Izquierda podemos ver la prueba de autocorrelación en la cual destacan dos rezagos, estos son el 33 y el 23 que se salen de la banda. Y abajo a la derecha está un histograma de la distribución de los residuos, en la cual parecen normales.
Propuesta 5
prop5 <- arima(logIMSEMILLAS, order= c(1,1,1), seasonal=c(2,1,1))
prop5
##
## Call:
## arima(x = logIMSEMILLAS, order = c(1, 1, 1), seasonal = c(2, 1, 1))
##
## Coefficients:
## ar1 ma1 sar1 sar2 sma1
## 0.2674 -0.9552 0.1675 -0.0540 -0.6745
## s.e. 0.0838 0.0542 0.1173 0.0805 0.0978
##
## sigma^2 estimated as 0.03005: log likelihood = 92.95, aic = -175.9
Podemos ver que en esta propuesta 1, el criterio de Akaike, que mientras más pequeño negativo mejor, en este caso es de -172.44. En el caso de la prueba Ljung-Box es una prueba de autocorrelación parcial, donde la H0=No correlación serial para grupos de rezagos, el valor p es de 0.040, por lo que al ser menor que 0.05 se rechaza la H0 de No correlación serial, por lo que el modelo si tiene correlación serial.
checkresiduals(prop5)
##
## Ljung-Box test
##
## data: Residuals from ARIMA(1,1,1)(2,1,1)[12]
## Q* = 31.182, df = 19, p-value = 0.03855
##
## Model df: 5. Total lags used: 24
Tenemos arriba la gráfica de los residuos, la cual no parece tener ningún patrón y se ve sin patrones. Abajo a la Izquierda podemos ver la prueba de autocorrelación en la cual destacan aún dos rezagos que se salen de la banda, son el 26 y el 33. Y abajo a la derecha está un histograma de la distribución de los residuos, en la cual parecen normales.
** 9. Usaremos la función auto.arima () y compararé los resultados con los modelos propuestos anteriormente. AUTOARIMA**
##con autoarima##
propuesta.auto <- auto.arima(diflogIMSEMILLAS)
propuesta.auto
## Series: diflogIMSEMILLAS
## ARIMA(1,0,1)(2,1,1)[12]
##
## Coefficients:
## ar1 ma1 sar1 sar2 sma1
## 0.2674 -0.9552 0.1675 -0.0540 -0.6745
## s.e. 0.0838 0.0542 0.1173 0.0805 0.0978
##
## sigma^2 estimated as 0.03058: log likelihood=92.95
## AIC=-173.9 AICc=-173.6 BIC=-151.86
Podemos ver que en esta propuesta que nos hace el Auto.arima, el criterio de Akaike, que mientras más pequeño negativo mejor, en este caso es de -170.44. En el caso de la prueba Ljung-Box es una prueba de autocorrelación parcial, donde la H0=No correlación serial para grupos de rezagos, el valor p es de 0.040, por lo que al ser menor que 0.05 se rechaza la H0 de No correlación serial, por lo que el modelo que nos propone tiene correlación serial.
checkresiduals(propuesta.auto)
##
## Ljung-Box test
##
## data: Residuals from ARIMA(1,0,1)(2,1,1)[12]
## Q* = 31.184, df = 19, p-value = 0.03854
##
## Model df: 5. Total lags used: 24
Tenemos arriba la gráfica de los residuos, la cual no parece tener ningún patrón y se ve aleatoria. Abajo a la Izquierda podemos ver la prueba de autocorrelación en la cual destacan aún los dos rezagos que se salen de la banda, el 26 y el 33. Y abajo a la derecha está un histograma de la distribución de los residuos, en la cual parece normal.
Buscando un modelo usando stewise Como el Auto arima nos quita la diferencia no estacional, la fijamos
fitRd1 <- auto.arima(logIMSEMILLAS, d=1, stepwise=FALSE, approximation=FALSE)
fitRd1
## Series: logIMSEMILLAS
## ARIMA(1,1,1)(2,0,0)[12]
##
## Coefficients:
## ar1 ma1 sar1 sar2
## 0.2764 -0.9352 0.5479 0.2471
## s.e. 0.0673 0.0279 0.0565 0.0575
##
## sigma^2 estimated as 0.03174: log likelihood=89.06
## AIC=-168.12 AICc=-167.92 BIC=-149.55
Y vemos que el criterio de Akaike, que mientras más pequeño negativo mejor, en este caso es de -164.53. En el caso de la prueba Ljung-Box es una prueba de autocorrelación parcial, donde la H0=No correlación serial para grupos de rezagos, el valor p es de 0.005, por lo que al ser menor que 0.05 se rechaza la H0 de No correlación serial, por lo que el modelo que nos propone tiene correlación serial.
checkresiduals(fitRd1)
##
## Ljung-Box test
##
## data: Residuals from ARIMA(1,1,1)(2,0,0)[12]
## Q* = 40.105, df = 20, p-value = 0.004845
##
## Model df: 4. Total lags used: 24
Tenemos arriba la gráfica de los residuos, la cual no parece tener ningún patrón y se ve aleatoria. Abajo a la Izquierda podemos ver la prueba de autocorrelación en la cual destacan aún algunos rezagos que se salen de las bandas, en especial el 23. Y abajo a la derecha está un histograma de la distribución de los residuos, en la cual tiene un poco una inclinación a la derecha y no parece normal.
Y como nos quita la diferencia estacional ahora y aún tiene problemas, entonces fijo las dos restricciones:
fit2R <- auto.arima(logIMSEMILLAS, d=1, D=1, stepwise=FALSE, approximation=FALSE)
fit2R
## Series: logIMSEMILLAS
## ARIMA(1,1,1)(1,1,2)[12]
##
## Coefficients:
## ar1 ma1 sar1 sma1 sma2
## 0.2442 -0.9391 -0.6779 0.1682 -0.5121
## s.e. 0.0803 0.0479 0.1775 0.1704 0.0871
##
## sigma^2 estimated as 0.03036: log likelihood=93.99
## AIC=-175.99 AICc=-175.69 BIC=-153.95
Y vemos que el criterio de Akaike, que mientras más pequeño negativo mejor, en este caso es de -150.62. En el caso de la prueba Ljung-Box es una prueba de autocorrelación parcial, donde la H0=No correlación serial para grupos de rezagos, el valor p es de 0.03, por lo que al ser menor que 0.05 se rechaza la H0 de No correlación serial, por lo que el modelo que nos propone tiene correlación serial.
checkresiduals(fit2R)
##
## Ljung-Box test
##
## data: Residuals from ARIMA(1,1,1)(1,1,2)[12]
## Q* = 31.752, df = 19, p-value = 0.03333
##
## Model df: 5. Total lags used: 24
Tenemos arriba la gráfica de los residuos, la cual no parece tener ningún patrón y se ve aleatoria. Abajo a la Izquierda podemos ver la prueba de autocorrelación en la cual destacan tres rezagos que se salen de las bandas, en especial el 23 y el 33. Y abajo a la derecha está un histograma de la distribución de los residuos, en la cual parece normal.
** 10. Presente la ecuación final y describa**
De las opciones de modelos propuestas, se decidió elegir la dos, tomando en cuenta y dando mayor peso a la correlación serial del modelo, este superó el 0.05, aunque aún presenta rezagos que salen de las bandas, también el criterio de Akaike no es el más negativo, pero es el único que no presentó correlación serial.
*****Propuesta 2*****
prop2 <- arima(logIMSEMILLAS, order= c(2,1,1), seasonal=c(1,2,2))
prop2
##
## Call:
## arima(x = logIMSEMILLAS, order = c(2, 1, 1), seasonal = c(1, 2, 2))
##
## Coefficients:
## ar1 ar2 ma1 sar1 sma1 sma2
## 0.2010 0.0136 -0.919 0.2735 -1.7288 0.7680
## s.e. 0.0794 0.0764 0.056 0.1123 0.0940 0.0978
##
## sigma^2 estimated as 0.03216: log likelihood = 54.97, aic = -97.93
Podemos ver que en esta propuesta 1, el criterio de Akaike, que mientras más pequeño negativo mejor, en este caso es de -93.5. En el caso de la prueba Ljung-Box es una prueba de autocorrelación parcial, donde la H0=No correlación serial para grupos de rezagos, el valor p es de 0.097, por lo que al ser mayor que 0.05 se acepta la H0 de No correlación serial, por lo que el modelo no tiene correlación serial.
checkresiduals(prop2)
##
## Ljung-Box test
##
## data: Residuals from ARIMA(2,1,1)(1,2,2)[12]
## Q* = 26.523, df = 18, p-value = 0.08839
##
## Model df: 6. Total lags used: 24
Tenemos arriba la gráfica de los residuos, la cual no parece tener ningún patrón y se ve aleatoria. Abajo a la Izquierda podemos ver la prueba de autocorrelación en la cual destacan aún tres rezagos que se salen de la banda, el 32, el 25 y el 23. Y abajo a la derecha está un histograma de la distribución de los residuos, en la cual parecen bastante normales.
** 11. Realizar el pronóstico ARIMA para dos años. Obteniendo la Raíz del error medio:**
getrmse <- function(x,h,...)
{
train.end <- time(x)[length(x)-h]
test.start <- time(x)[length(x)-h+1]
train <- window(x,end=train.end)
test <- window(x,start=test.start)
fit <- Arima(train,...)
fc <- forecast(fit,h=h)
return(accuracy(fc,test)[2,"RMSE"]) }
getrmse(logIMSEMILLAS, h=12, order=c(1,1,0), seasonal=c(1,1,0))
## [1] 0.3315661
getrmse(logIMSEMILLAS, h=12, order=c(1,1,1), seasonal=c(1,1,0))
## [1] 0.1345303
getrmse(logIMSEMILLAS, h=12, order=c(1,1,0), seasonal=c(0,1,0))
## [1] 0.3514722
getrmse(logIMSEMILLAS, h=12, order=c(2,1,0), seasonal=c(1,1,0))
## [1] 0.2737955
getrmse(logIMSEMILLAS, h=12, order=c(2,1,1), seasonal=c(1,1,0))
## [1] 0.1281812
getrmse(logIMSEMILLAS, h=12, order=c(2,1,1), seasonal=c(1,1,1))
## [1] 0.1308658
getrmse(logIMSEMILLAS, h=12, order=c(2,1,1), seasonal=c(0,1,1))
## [1] 0.1281027
getrmse(logIMSEMILLAS, h=12, order=c(1,0,0), seasonal=c(1,1,0))
## [1] 0.1619205
getrmse(logIMSEMILLAS, h=12, order=c(1,0,1), seasonal=c(1,1,0))
## [1] 0.1594557
getrmse(logIMSEMILLAS, h=12, order=c(1,0,1), seasonal=c(1,1,1))
## [1] 0.1605171
getrmse(logIMSEMILLAS, h=12, order=c(2,0,1), seasonal=c(0,1,1))
## [1] 0.1397807
getrmse(logIMSEMILLAS, h=12, order=c(1,1,0), seasonal=c(1,0,0))
## [1] 0.3683681
getrmse(logIMSEMILLAS, h=12, order=c(1,1,1), seasonal=c(0,0,1))
## [1] 0.2008069
getrmse(logIMSEMILLAS, h=12, order=c(0,1,1), seasonal=c(0,0,1))
## [1] 0.3689053
Tenemos quela raíz del Error medio al cuadrado más pequeña es un ARIMA (1,1,0)(1,1,0)[12], con un valor de 0.1706866
PIMSEMILLAS <- Arima(logIMSEMILLAS, order=c(1,1,0), seasonal=c(1,1,0))
PIMSEMILLAS
## Series: logIMSEMILLAS
## ARIMA(1,1,0)(1,1,0)[12]
##
## Coefficients:
## ar1 sar1
## -0.4298 -0.3631
## s.e. 0.0534 0.0551
##
## sigma^2 estimated as 0.04284: log likelihood=45.5
## AIC=-85.01 AICc=-84.93 BIC=-73.99
autoplot(forecast(PIMSEMILLAS))
Se puede apreciar que el pronóstico está tomando la tendencia y la estacionalidad de la serie.
12. Utilizando métodos de pronósticos simples y/o suavizamiento exponencial generar un pronóstico para dos años. Elegir el método que presente la raíz del error medio al cuadrado más pequeño.
IMSEMILLAS2<-window(IMSEMILLAS,start=1993, End=c(2016,12))
autoplot(IMSEMILLAS2)+forecast::autolayer(meanf(IMSEMILLAS2,h=24),PI=FALSE,series="Mean") + forecast::autolayer(naive(IMSEMILLAS2,h=24),PI=FALSE,series="Naïve") +
forecast::autolayer(snaive(IMSEMILLAS2,h=24),PI=FALSE,series="Seasonal naïve") +
forecast::autolayer(rwf(IMSEMILLAS2,drift=TRUE,h=24),PI=FALSE,series="Drift") +
ggtitle("Pronóstico para la importación de semillas mensual")+xlab("Year") + ylab("Miles de Dólares") + guides(colour=guide_legend(title="Forecast"))
Al graficar el pronóstico, se puede observar que la media (linea roja), no ayuda debido a que nuestra serie tiene tendencia, el caso del naïve, tampoco ayuda ya que de igual forma solo desplaza una línea sobre la última observación. Por lo que es evidente que el que mejor nos ayuda a pronosticar es el Seasonal naïve o Naïve estacional, ya que nuestra serie tiene estacionalidad, y este replica el comportamiento del último año de la serie. También incluimos el método Drift, ya que nuestra serie tiene tendencia
IMSEMILLAS3<-window(IMSEMILLAS,start=2010, End=c(2016,12))
autoplot(IMSEMILLAS2)+forecast::autolayer(meanf(IMSEMILLAS2,h=24), PI=FALSE,series="Mean") + forecast::autolayer(naive(IMSEMILLAS2,h=24),PI=FALSE,series="Naïve") +
forecast::autolayer(snaive(IMSEMILLAS2,h=24),PI=FALSE,series="Seasonal naïve") +
forecast::autolayer(rwf(IMSEMILLAS2,drift=TRUE,h=24),PI=FALSE,series="Drift") +
ggtitle("Pronóstico para la importación de semillas mensual")+xlab("Year") + ylab("Miles de Dólares") + guides(colour=guide_legend(title="Forecast"))
IMSEMILLAS3 <- window(IMSEMILLAS, start=1993,End=c(2018,12))
IMSEMILLASfit1<-meanf(IMSEMILLAS,h=24)
IMSEMILLASfit2<-rwf(IMSEMILLAS,h=24)
IMSEMILLASfit3<-snaive(IMSEMILLAS,h=24)
IMSEMILLASfit4 <- rwf(IMSEMILLAS, drift=TRUE, h=24)
autoplot(window(IMSEMILLAS,start= 2010)) +
forecast::autolayer(IMSEMILLASfit1,series="Mean", PI=FALSE) +
forecast::autolayer(IMSEMILLASfit2,series="Naïve",PI=FALSE) +
forecast::autolayer(IMSEMILLASfit3,series="Seasonal naïve",PI=FALSE) +
forecast::autolayer(IMSEMILLASfit4,series="Drift",PI=FALSE) +
xlab("Year")+ylab("Miles de dólares") +
guides(colour=guide_legend(title="Forecast"))
Aquí se acerca un poco la gráfica para ver mejor el pronóstico
Suavizamiento Exponencial
Holt
IMSEMILLAS.ST <- holt(IMSEMILLAS, h=24)
IMSEMILLAS.ST2 <- holt(IMSEMILLAS, damped=TRUE, h=24)
autoplot(IMSEMILLAS) +
autolayer(IMSEMILLAS.ST, series="Holt's method", PI=FALSE) +
autolayer(IMSEMILLAS.ST2, series="Damped Holt's method", PI=FALSE) +
ggtitle("Forecasts from Holt's method") + xlab("Year") +
ylab("Importación de semillas (Miles de dólares)") +
guides(colour=guide_legend(title="Forecast"))
Holt-Winters
# Holt-Winters' seasonal method#
#Holt-Winters' additive/multiplicative method#
IMSEMILLAS.SE <- window(IMSEMILLAS, start=2010)
fit2 <- hw(IMSEMILLAS.SE,seasonal="multiplicative")
autoplot(IMSEMILLAS.SE) +
autolayer(fit2, series="HW multiplicative forecasts",PI=FALSE) +
xlab("Year") +
ylab("Miles de dólares") +
ggtitle("Importación de semillas") +
guides(colour=guide_legend(title="Forecast"))
hw(IMSEMILLAS.SE, damped=TRUE, seasonal="multiplicative")
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## May 2018 41772.61 35425.74 48119.48 32065.90 51479.32
## Jun 2018 48866.56 41398.75 56334.38 37445.53 60287.60
## Jul 2018 47424.51 40133.09 54715.94 36273.25 58575.78
## Aug 2018 39469.47 33362.76 45576.18 30130.06 48808.88
## Sep 2018 35511.02 29980.70 41041.33 27053.13 43968.91
## Oct 2018 36965.45 31169.53 42761.38 28101.35 45829.56
## Nov 2018 36079.99 30383.24 41776.73 27367.57 44792.41
## Dec 2018 35286.94 29675.22 40898.67 26704.55 43869.34
## Jan 2019 32049.49 26914.86 37184.11 24196.75 39902.22
## Feb 2019 32756.79 27469.03 38044.55 24669.85 40843.73
## Mar 2019 34916.07 29236.02 40596.11 26229.19 43602.94
## Apr 2019 31915.20 26682.25 37148.14 23912.10 39918.30
## May 2019 42907.63 35815.56 49999.71 32061.24 53754.03
## Jun 2019 50154.41 41796.65 58512.17 37372.32 62936.50
## Jul 2019 48636.86 40464.64 56809.08 36138.53 61135.20
## Aug 2019 40448.27 33594.71 47301.82 29966.66 50929.87
## Sep 2019 36365.36 30151.12 42579.60 26861.50 45869.22
## Oct 2019 37828.30 31308.42 44348.18 27857.01 47799.59
## Nov 2019 36897.14 30482.51 43311.78 27086.80 46707.48
## Dec 2019 36062.44 29738.01 42386.87 26390.06 45734.82
## Jan 2020 32732.99 26941.84 38524.14 23876.20 41589.79
## Feb 2020 33434.75 27466.98 39402.53 24307.83 42561.68
## Mar 2020 35617.43 29203.39 42031.46 25808.01 45426.84
## Apr 2020 32537.42 26625.60 38449.25 23496.07 41578.78
14. Analizar un VAR, necesita incluir los puntos siguientes: a) Buscar otra variable (incluso más variables) y redactar la teoría que se encuentra detrás de la relación entre variables que propone.
Se utilizó la variable: Índice de tipo de cambio interno en pesos por dólar Consultada de la página de banxico: http://www.banxico.org.mx/SieInternet/consultarDirectorioInternetAction.do?accion=consultarCuadro&idCuadro=CR183§or=2&locale=es* La nueva variable tiene las siguientes especificaciones: Periodo disponible: Ene 1990 - May 2018 Periodicidad : Mensual Cifra: Indices Base: 1990*
Se decidió tomar la variable del tipo de cambio, por la razón de que ésta refleja la oferta y demanda de divisas de un país, en que la oferta proviene básicamente de las exportaciones y los flujos de entrada de capitales, y la demanda de la necesidad de importar bienes y servicios.
En la mayor parte de las circunstancias, el tipo de cambio también responde a las tasas de inflación interna, por la siguiente razón: un incremento en los precios nacionales superior al aumento de precios en los socios comerciales torna las exportaciones del país menos competitivas y sus importaciones más atractivas. Por lo tanto, si los otros factores no varían, esto disminuirá la oferta futura de divisas con relación a su demanda, y por ende hará que el tipo de cambio se deprecie (se requerirán más unidades de moneda nacional por unidad de moneda extranjera). En este sentido simple, haciendo abstracción de los flujos de capital, el tipo de cambio no controlado tenderá a moverse con el tiempo en consonancia con el diferencial entre la inflación interna y la externa, manteniendo así la “paridad del poder adquisitivo” entre el país y sus socios comerciales. Esta es la tendencia a largo plazo, pero pueden haber variaciones considerables en el corto plazo alrededor de esta tendencia, especialmente en respuesta a las fluctuaciones de los flujos de capital.
Dado que la depreciación del tipo de cambio encarece las importaciones, los movimientos del tipo de cambio alimentan adicionalmente la inflación interna. Sin embargo, los aumentos de la tasa de inflación inducidos por el tipo de cambio tienden a ser proporcionalmente menores que la depreciación cambiaria misma. Por lo tanto, si la inflación se puede controlar con políticas fiscales y monetarias apropiadas, los movimientos del tipo de cambio y la tasa de inflación disminuirán y eventualmente cesarán, dando como resultado la estabilidad de los precios.
b) Evaluar la estacionalidad de la nueva variable.
base<-read.csv("C:/Users/halo0/Desktop/TCreal.csv")
Tcreal<-ts(base$Tcreal, start = c(1993,1),frequency = 12)
#Graficando para encontrar estacionalidad#
autoplot(Tcreal) + xlab("Year")+ylab("Pesos/dólares") +
ggtitle("Tipo de cambio real (original)")
La serie presenta tendencia positiva, es decir que el Tipo de cambio real de la relación pesos sobre dólares se va incrementando en el tiempo; pero no parece presentar estacionalidad
ggseasonplot(Tcreal)
Al utilizar el Gráfico del paquete ggplot, se puede observar más claramente que no existe la presencia de meses específicos que destaquen de acuerdo con el tipo de cambio real, y tampoco se observan picos que se presenten en algunos meses específicos
ggseasonplot(Tcreal,polar = TRUE)
En este otro gráfico, se muestran de igual forma que no se muestra que destaquen meses específicos
#CREAR VECTOR#
base<-read.csv("C:/Users/halo0/Desktop/TCreall.csv")
Tcreall<-ts(base$Tcreal, start = c(2014,1),frequency = 12)
mes <-c ("E","F","M","A","M","J","J","A","S","O","N","D")
plot(Tcreall,type="l")
points(Tcreall,pch=mes)
Analizando y colocando los meses dentro del gráfico, se puede observar que no existe un comportamiento específico en algunos meses.
c) Proponga el orden de rezagos óptimo para el VAR y presentar la estimaciÓn.
base<-read.csv("C:/Users/halo0/Desktop/Importación de semillas para siembra_TCREAL2.csv")
plot(base)
plot.ts(base)
Se observan las fos bases, en la que es muy claro que la de la importación de semillas tiene estacionalidad, y el tipo de cambio real no, pero ambas tienen tendencia positiva
ts.IMSEMILLAS <-ts(base$IMSEMILLAS, start = c(1993,1), frequency = 12)
ts.Tcreal <-ts(base$Tcreal, start = c(1993,1), frequency = 12)
ts.ddlogIMSEMILLAS<- diff(diff(log(ts.IMSEMILLAS),12))
ts.dlogTcreal<-diff(ts.Tcreal)
base2<-cbind.zoo(ts.IMSEMILLA = ts.ddlogIMSEMILLAS, ts.Tcreal = ts.dlogTcreal)
plot(base2)
base3<- base2[-c(1:12),]
plot(base3)
VARselect(base3, lag.max = 24)
## $selection
## AIC(n) HQ(n) SC(n) FPE(n)
## 13 3 2 13
##
## $criteria
## 1 2 3 4 5 6 7
## AIC(n) 1.786358 1.681037 1.638747 1.627830 1.621065 1.625280 1.652822
## HQ(n) 1.818740 1.735007 1.714303 1.724974 1.739797 1.765600 1.814729
## SC(n) 1.866971 1.815391 1.826842 1.869667 1.916644 1.974601 2.055883
## FPE(n) 5.967693 5.371173 5.148836 5.093071 5.058947 5.080626 5.222931
## 8 9 10 11 12 13 14
## AIC(n) 1.676687 1.694879 1.717799 1.655635 1.614283 1.573046 1.588830
## HQ(n) 1.860182 1.899961 1.944469 1.903893 1.884128 1.864479 1.901851
## SC(n) 2.133490 2.205423 2.282085 2.273663 2.286052 2.298557 2.368083
## FPE(n) 5.349653 5.448610 5.575880 5.240891 5.029814 4.828004 4.906451
## 15 16 17 18 19 20 21
## AIC(n) 1.613235 1.622870 1.641606 1.667913 1.649305 1.614279 1.638503
## HQ(n) 1.947843 1.979066 2.019389 2.067284 2.070263 2.056826 2.102637
## SC(n) 2.446229 2.509606 2.582083 2.662132 2.697265 2.715981 2.793947
## FPE(n) 5.029592 5.080506 5.179148 5.320156 5.225309 5.048932 5.176666
## 22 23 24
## AIC(n) 1.638825 1.584719 1.612540
## HQ(n) 2.124546 2.092029 2.141437
## SC(n) 2.848010 2.847646 2.929208
## FPE(n) 5.182664 4.914207 5.057903
En el criterio de Akaike nos indica 13 rezagos. El de Hannan y Quinn nos indica 3 rezagos. El de Schwarz nos indica 2 rezagos. Y el criterio de error de predicción final de Lutkepohl, nos indica 13 rezagos. En este caso tomaremos la propuestra del criterio con menos número de rezagos para basarnos en nuestro Vector Autorregresivo (VAR), en este caso es el criterio de Schwarz, con 2 rezagos
d) Probar la correlaciÓn serial y normalidad en los residuos.
#Con 2 Rezagos#
var2 <- VAR(base3, p=2)
summary(var2)
##
## VAR Estimation Results:
## =========================
## Endogenous variables: ts.IMSEMILLA, ts.Tcreal
## Deterministic variables: const
## Sample size: 289
## Log Likelihood: -1071.476
## Roots of the characteristic polynomial:
## 0.5394 0.5394 0.2755 0.2755
## Call:
## VAR(y = base3, p = 2)
##
##
## Estimation results for equation ts.IMSEMILLA:
## =============================================
## ts.IMSEMILLA = ts.IMSEMILLA.l1 + ts.Tcreal.l1 + ts.IMSEMILLA.l2 + ts.Tcreal.l2 + const
##
## Estimate Std. Error t value Pr(>|t|)
## ts.IMSEMILLA.l1 -0.5436135 0.0568547 -9.561 < 2e-16 ***
## ts.Tcreal.l1 -0.0010729 0.0011079 -0.968 0.334
## ts.IMSEMILLA.l2 -0.3016822 0.0567674 -5.314 2.17e-07 ***
## ts.Tcreal.l2 0.0017917 0.0011080 1.617 0.107
## const 0.0001587 0.0127813 0.012 0.990
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 0.2129 on 284 degrees of freedom
## Multiple R-Squared: 0.2571, Adjusted R-squared: 0.2466
## F-statistic: 24.57 on 4 and 284 DF, p-value: < 2.2e-16
##
##
## Estimation results for equation ts.Tcreal:
## ==========================================
## ts.Tcreal = ts.IMSEMILLA.l1 + ts.Tcreal.l1 + ts.IMSEMILLA.l2 + ts.Tcreal.l2 + const
##
## Estimate Std. Error t value Pr(>|t|)
## ts.IMSEMILLA.l1 -3.48358 3.05190 -1.141 0.2546
## ts.Tcreal.l1 0.29511 0.05947 4.962 1.2e-06 ***
## ts.IMSEMILLA.l2 -0.19252 3.04721 -0.063 0.9497
## ts.Tcreal.l2 -0.07209 0.05948 -1.212 0.2265
## const 1.42637 0.68608 2.079 0.0385 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 11.43 on 284 degrees of freedom
## Multiple R-Squared: 0.08189, Adjusted R-squared: 0.06896
## F-statistic: 6.333 on 4 and 284 DF, p-value: 6.8e-05
##
##
##
## Covariance matrix of residuals:
## ts.IMSEMILLA ts.Tcreal
## ts.IMSEMILLA 0.04533 0.1626
## ts.Tcreal 0.16261 130.6294
##
## Correlation matrix of residuals:
## ts.IMSEMILLA ts.Tcreal
## ts.IMSEMILLA 1.00000 0.06682
## ts.Tcreal 0.06682 1.00000
Nos sale el resultado de la estimación para cada ecuación, en este caso, en la ecuación de la importación de semillas, la única que es significativa es la importación de semillas; para la acuación del Tipo de cambio real, sólo el tipo de cambio real es significativo; pero no parece muy buena la opción.
#Evaluación de Residuos, con una prueba de diagnóstico de los residuales del VAR2#
serial.test(var2,lags.pt=24,type="PT.asymptotic")
##
## Portmanteau Test (asymptotic)
##
## data: Residuals of VAR object var2
## Chi-squared = 151.58, df = 88, p-value = 2.992e-05
La Prueba Portmanteu evalúa correlación serial, aunque si la hay, no sabemos de que tipo es, las hipótesis son: La H0= No correlación serial. La Ha= Correlación Serial. Nos da 0.0000299, es menor que el 1, lo que esperamos es un valor mayor a 0.05, por lo que rechazamos la H0 de no correlación serial, lo que nos indica que este modelo presenta correlación seril, y por lo tanto no parece una buena propuesta de modelo
Seguiremos intentando modelos hasta encontrar uno que no tenga correlación serial, como 13 rezagos que nos proponían en los criterios son demasiadas, iremos proponiendo modelos:
#Con 3 Rezagos#
var3 <- VAR(base3, p=3)
summary(var3)
##
## VAR Estimation Results:
## =========================
## Endogenous variables: ts.IMSEMILLA, ts.Tcreal
## Deterministic variables: const
## Sample size: 288
## Log Likelihood: -1057.277
## Roots of the characteristic polynomial:
## 0.6493 0.6493 0.623 0.4508 0.4508 0.2076
## Call:
## VAR(y = base3, p = 3)
##
##
## Estimation results for equation ts.IMSEMILLA:
## =============================================
## ts.IMSEMILLA = ts.IMSEMILLA.l1 + ts.Tcreal.l1 + ts.IMSEMILLA.l2 + ts.Tcreal.l2 + ts.IMSEMILLA.l3 + ts.Tcreal.l3 + const
##
## Estimate Std. Error t value Pr(>|t|)
## ts.IMSEMILLA.l1 -0.610090 0.057812 -10.553 < 2e-16 ***
## ts.Tcreal.l1 -0.001161 0.001077 -1.079 0.2817
## ts.IMSEMILLA.l2 -0.443231 0.063310 -7.001 1.87e-11 ***
## ts.Tcreal.l2 0.002080 0.001122 1.853 0.0649 .
## ts.IMSEMILLA.l3 -0.252646 0.057703 -4.378 1.69e-05 ***
## ts.Tcreal.l3 -0.001406 0.001085 -1.296 0.1961
## const 0.003108 0.012504 0.249 0.8039
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 0.2061 on 281 degrees of freedom
## Multiple R-Squared: 0.311, Adjusted R-squared: 0.2963
## F-statistic: 21.14 on 6 and 281 DF, p-value: < 2.2e-16
##
##
## Estimation results for equation ts.Tcreal:
## ==========================================
## ts.Tcreal = ts.IMSEMILLA.l1 + ts.Tcreal.l1 + ts.IMSEMILLA.l2 + ts.Tcreal.l2 + ts.IMSEMILLA.l3 + ts.Tcreal.l3 + const
##
## Estimate Std. Error t value Pr(>|t|)
## ts.IMSEMILLA.l1 -3.95187 3.21340 -1.230 0.2198
## ts.Tcreal.l1 0.29050 0.05984 4.855 2e-06 ***
## ts.IMSEMILLA.l2 -1.69119 3.51897 -0.481 0.6312
## ts.Tcreal.l2 -0.05598 0.06239 -0.897 0.3703
## ts.IMSEMILLA.l3 -2.51867 3.20736 -0.785 0.4330
## ts.Tcreal.l3 -0.05788 0.06033 -0.960 0.3381
## const 1.52247 0.69502 2.191 0.0293 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 11.46 on 281 degrees of freedom
## Multiple R-Squared: 0.08733, Adjusted R-squared: 0.06784
## F-statistic: 4.481 on 6 and 281 DF, p-value: 0.0002365
##
##
##
## Covariance matrix of residuals:
## ts.IMSEMILLA ts.Tcreal
## ts.IMSEMILLA 0.04248 0.1209
## ts.Tcreal 0.12088 131.2402
##
## Correlation matrix of residuals:
## ts.IMSEMILLA ts.Tcreal
## ts.IMSEMILLA 1.0000 0.0512
## ts.Tcreal 0.0512 1.0000
Nos sale el resultado de la estimación para cada ecuación, en este caso en la ecuación de la importación de semillas, es significativa la importación de semillas y el Tipo de cambio real al 0.1; para la acuación del Tipo de cambio real, sólo el tipo de cambio real es significativo; yno parece muy buena la opción.
#Evaluación de Residuos, con una prueba de diagnóstico de los residuales del VAR3#
serial.test(var3,lags.pt=24,type="PT.asymptotic")
##
## Portmanteau Test (asymptotic)
##
## data: Residuals of VAR object var3
## Chi-squared = 129.18, df = 84, p-value = 0.001128
La Prueba Portmanteu evalúa correlación serial, aunque si la hay, no sabemos de que tipo es, las hipótesis son: La H0= No correlación serial. La Ha= Correlación Serial. Nos da 0.001128, es menor que el 1, lo que esperamos es un valor mayor a 0.05, por lo que rechazamos la H0 de no correlación serial, lo que nos indica que este modelo presenta correlación serial, y no parece una buena propuesta de modelo
#Con 4 Rezagos#
var4 <- VAR(base3, p=4)
summary(var4)
##
## VAR Estimation Results:
## =========================
## Endogenous variables: ts.IMSEMILLA, ts.Tcreal
## Deterministic variables: const
## Sample size: 287
## Log Likelihood: -1048.864
## Roots of the characteristic polynomial:
## 0.6419 0.6419 0.6156 0.6156 0.6039 0.6039 0.4702 0.409
## Call:
## VAR(y = base3, p = 4)
##
##
## Estimation results for equation ts.IMSEMILLA:
## =============================================
## ts.IMSEMILLA = ts.IMSEMILLA.l1 + ts.Tcreal.l1 + ts.IMSEMILLA.l2 + ts.Tcreal.l2 + ts.IMSEMILLA.l3 + ts.Tcreal.l3 + ts.IMSEMILLA.l4 + ts.Tcreal.l4 + const
##
## Estimate Std. Error t value Pr(>|t|)
## ts.IMSEMILLA.l1 -0.6523534 0.0595820 -10.949 < 2e-16 ***
## ts.Tcreal.l1 -0.0012819 0.0010709 -1.197 0.2323
## ts.IMSEMILLA.l2 -0.5078683 0.0678653 -7.483 9.57e-13 ***
## ts.Tcreal.l2 0.0020346 0.0011174 1.821 0.0697 .
## ts.IMSEMILLA.l3 -0.3493603 0.0681417 -5.127 5.52e-07 ***
## ts.Tcreal.l3 -0.0012450 0.0011276 -1.104 0.2705
## ts.IMSEMILLA.l4 -0.1527340 0.0592697 -2.577 0.0105 *
## ts.Tcreal.l4 -0.0005535 0.0010823 -0.511 0.6095
## const 0.0043778 0.0125565 0.349 0.7276
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 0.2046 on 278 degrees of freedom
## Multiple R-Squared: 0.328, Adjusted R-squared: 0.3086
## F-statistic: 16.96 on 8 and 278 DF, p-value: < 2.2e-16
##
##
## Estimation results for equation ts.Tcreal:
## ==========================================
## ts.Tcreal = ts.IMSEMILLA.l1 + ts.Tcreal.l1 + ts.IMSEMILLA.l2 + ts.Tcreal.l2 + ts.IMSEMILLA.l3 + ts.Tcreal.l3 + ts.IMSEMILLA.l4 + ts.Tcreal.l4 + const
##
## Estimate Std. Error t value Pr(>|t|)
## ts.IMSEMILLA.l1 -5.44362 3.32670 -1.636 0.1029
## ts.Tcreal.l1 0.28914 0.05979 4.836 2.2e-06 ***
## ts.IMSEMILLA.l2 -4.60015 3.78919 -1.214 0.2258
## ts.Tcreal.l2 -0.05221 0.06239 -0.837 0.4034
## ts.IMSEMILLA.l3 -6.49566 3.80462 -1.707 0.0889 .
## ts.Tcreal.l3 -0.07311 0.06296 -1.161 0.2465
## ts.IMSEMILLA.l4 -6.58397 3.30926 -1.990 0.0476 *
## ts.Tcreal.l4 0.04783 0.06043 0.792 0.4293
## const 1.47585 0.70108 2.105 0.0362 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 11.42 on 278 degrees of freedom
## Multiple R-Squared: 0.1017, Adjusted R-squared: 0.07589
## F-statistic: 3.936 on 8 and 278 DF, p-value: 0.0001991
##
##
##
## Covariance matrix of residuals:
## ts.IMSEMILLA ts.Tcreal
## ts.IMSEMILLA 0.04187 0.08296
## ts.Tcreal 0.08296 130.52601
##
## Correlation matrix of residuals:
## ts.IMSEMILLA ts.Tcreal
## ts.IMSEMILLA 1.00000 0.03548
## ts.Tcreal 0.03548 1.00000
Nos sale el resultado de la estimación para cada ecuación, en este caso en la ecuación de la importación de semillas, es significativa la importación de semillas y el Tipo de cambio real al 0.1; para la acuación del Tipo de cambio real, el tipo de cambio real es significativo y ya es significativa la importación de semillas al 0.1 y 0.05.
#Evaluación de Residuos, con una prueba de diagnóstico de los residuales del VAR4#
serial.test(var4,lags.pt=24,type="PT.asymptotic")
##
## Portmanteau Test (asymptotic)
##
## data: Residuals of VAR object var4
## Chi-squared = 119.5, df = 80, p-value = 0.002799
La Prueba Portmanteu evalúa correlación serial, aunque si la hay, no sabemos de que tipo es, las hipótesis son: La H0= No correlación serial. La Ha= Correlación Serial. Nos da 0.002799, es menor que el 1, lo que esperamos es un valor mayor a 0.05, por lo que rechazamos la H0 de no correlación serial, lo que nos indica que este modelo presenta correlación serial, y no parece una buena propuesta de modelo
#Con 5 Rezagos#
var5 <- VAR(base3, p=5)
summary(var5)
##
## VAR Estimation Results:
## =========================
## Endogenous variables: ts.IMSEMILLA, ts.Tcreal
## Deterministic variables: const
## Sample size: 286
## Log Likelihood: -1042.032
## Roots of the characteristic polynomial:
## 0.7172 0.7172 0.6392 0.6392 0.6083 0.6083 0.5847 0.5847 0.5603 0.5603
## Call:
## VAR(y = base3, p = 5)
##
##
## Estimation results for equation ts.IMSEMILLA:
## =============================================
## ts.IMSEMILLA = ts.IMSEMILLA.l1 + ts.Tcreal.l1 + ts.IMSEMILLA.l2 + ts.Tcreal.l2 + ts.IMSEMILLA.l3 + ts.Tcreal.l3 + ts.IMSEMILLA.l4 + ts.Tcreal.l4 + ts.IMSEMILLA.l5 + ts.Tcreal.l5 + const
##
## Estimate Std. Error t value Pr(>|t|)
## ts.IMSEMILLA.l1 -0.6721610 0.0600346 -11.196 < 2e-16 ***
## ts.Tcreal.l1 -0.0015047 0.0010729 -1.402 0.16190
## ts.IMSEMILLA.l2 -0.5519122 0.0710616 -7.767 1.60e-13 ***
## ts.Tcreal.l2 0.0020064 0.0011144 1.800 0.07288 .
## ts.IMSEMILLA.l3 -0.4132981 0.0741110 -5.577 5.86e-08 ***
## ts.Tcreal.l3 -0.0012214 0.0011244 -1.086 0.27832
## ts.IMSEMILLA.l4 -0.2347792 0.0713106 -3.292 0.00112 **
## ts.Tcreal.l4 -0.0006393 0.0011268 -0.567 0.57092
## ts.IMSEMILLA.l5 -0.1292556 0.0601279 -2.150 0.03245 *
## ts.Tcreal.l5 0.0001547 0.0010787 0.143 0.88605
## const 0.0040073 0.0126267 0.317 0.75121
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 0.2036 on 275 degrees of freedom
## Multiple R-Squared: 0.3402, Adjusted R-squared: 0.3162
## F-statistic: 14.18 on 10 and 275 DF, p-value: < 2.2e-16
##
##
## Estimation results for equation ts.Tcreal:
## ==========================================
## ts.Tcreal = ts.IMSEMILLA.l1 + ts.Tcreal.l1 + ts.IMSEMILLA.l2 + ts.Tcreal.l2 + ts.IMSEMILLA.l3 + ts.Tcreal.l3 + ts.IMSEMILLA.l4 + ts.Tcreal.l4 + ts.IMSEMILLA.l5 + ts.Tcreal.l5 + const
##
## Estimate Std. Error t value Pr(>|t|)
## ts.IMSEMILLA.l1 -5.10332 3.37457 -1.512 0.1316
## ts.Tcreal.l1 0.29824 0.06031 4.945 1.32e-06 ***
## ts.IMSEMILLA.l2 -3.85311 3.99440 -0.965 0.3356
## ts.Tcreal.l2 -0.05617 0.06264 -0.897 0.3707
## ts.IMSEMILLA.l3 -4.82719 4.16581 -1.159 0.2476
## ts.Tcreal.l3 -0.07848 0.06320 -1.242 0.2154
## ts.IMSEMILLA.l4 -4.68499 4.00840 -1.169 0.2435
## ts.Tcreal.l4 0.07006 0.06334 1.106 0.2697
## ts.IMSEMILLA.l5 3.26242 3.37982 0.965 0.3353
## ts.Tcreal.l5 -0.06849 0.06063 -1.130 0.2596
## const 1.56308 0.70975 2.202 0.0285 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 11.44 on 275 degrees of freedom
## Multiple R-Squared: 0.1085, Adjusted R-squared: 0.07609
## F-statistic: 3.347 on 10 and 275 DF, p-value: 0.0003943
##
##
##
## Covariance matrix of residuals:
## ts.IMSEMILLA ts.Tcreal
## ts.IMSEMILLA 0.04145 0.1012
## ts.Tcreal 0.10115 130.9554
##
## Correlation matrix of residuals:
## ts.IMSEMILLA ts.Tcreal
## ts.IMSEMILLA 1.00000 0.04342
## ts.Tcreal 0.04342 1.00000
Nos sale el resultado de la estimación para cada ecuación, en este caso en la ecuación de la importación de semillas, es significativa la importación de semillas y el Tipo de cambio real al 0.1; para la acuación del Tipo de cambio real, el tipo de cambio real es significativo y ya es significativa la importación de semillas al 0.1 y 0.05.
#Evaluación de Residuos, con una prueba de diagnóstico de los residuales del VAR5#
serial.test(var5,lags.pt=24,type="PT.asymptotic")
##
## Portmanteau Test (asymptotic)
##
## data: Residuals of VAR object var5
## Chi-squared = 106, df = 76, p-value = 0.01309
La Prueba Portmanteu evalúa correlación serial, aunque si la hay, no sabemos de que tipo es, las hipótesis son: La H0= No correlación serial. La Ha= Correlación Serial. Nos da 0.002799, es menor que el 1, lo que esperamos es un valor mayor a 0.05, por lo que rechazamos la H0 de no correlación serial, lo que nos indica que este modelo presenta correlación serial, y no parece una buena propuesta de modelo
#Con Rezagos#
var5 <- VAR(base3, p=5)
summary(var5)
##
## VAR Estimation Results:
## =========================
## Endogenous variables: ts.IMSEMILLA, ts.Tcreal
## Deterministic variables: const
## Sample size: 286
## Log Likelihood: -1042.032
## Roots of the characteristic polynomial:
## 0.7172 0.7172 0.6392 0.6392 0.6083 0.6083 0.5847 0.5847 0.5603 0.5603
## Call:
## VAR(y = base3, p = 5)
##
##
## Estimation results for equation ts.IMSEMILLA:
## =============================================
## ts.IMSEMILLA = ts.IMSEMILLA.l1 + ts.Tcreal.l1 + ts.IMSEMILLA.l2 + ts.Tcreal.l2 + ts.IMSEMILLA.l3 + ts.Tcreal.l3 + ts.IMSEMILLA.l4 + ts.Tcreal.l4 + ts.IMSEMILLA.l5 + ts.Tcreal.l5 + const
##
## Estimate Std. Error t value Pr(>|t|)
## ts.IMSEMILLA.l1 -0.6721610 0.0600346 -11.196 < 2e-16 ***
## ts.Tcreal.l1 -0.0015047 0.0010729 -1.402 0.16190
## ts.IMSEMILLA.l2 -0.5519122 0.0710616 -7.767 1.60e-13 ***
## ts.Tcreal.l2 0.0020064 0.0011144 1.800 0.07288 .
## ts.IMSEMILLA.l3 -0.4132981 0.0741110 -5.577 5.86e-08 ***
## ts.Tcreal.l3 -0.0012214 0.0011244 -1.086 0.27832
## ts.IMSEMILLA.l4 -0.2347792 0.0713106 -3.292 0.00112 **
## ts.Tcreal.l4 -0.0006393 0.0011268 -0.567 0.57092
## ts.IMSEMILLA.l5 -0.1292556 0.0601279 -2.150 0.03245 *
## ts.Tcreal.l5 0.0001547 0.0010787 0.143 0.88605
## const 0.0040073 0.0126267 0.317 0.75121
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 0.2036 on 275 degrees of freedom
## Multiple R-Squared: 0.3402, Adjusted R-squared: 0.3162
## F-statistic: 14.18 on 10 and 275 DF, p-value: < 2.2e-16
##
##
## Estimation results for equation ts.Tcreal:
## ==========================================
## ts.Tcreal = ts.IMSEMILLA.l1 + ts.Tcreal.l1 + ts.IMSEMILLA.l2 + ts.Tcreal.l2 + ts.IMSEMILLA.l3 + ts.Tcreal.l3 + ts.IMSEMILLA.l4 + ts.Tcreal.l4 + ts.IMSEMILLA.l5 + ts.Tcreal.l5 + const
##
## Estimate Std. Error t value Pr(>|t|)
## ts.IMSEMILLA.l1 -5.10332 3.37457 -1.512 0.1316
## ts.Tcreal.l1 0.29824 0.06031 4.945 1.32e-06 ***
## ts.IMSEMILLA.l2 -3.85311 3.99440 -0.965 0.3356
## ts.Tcreal.l2 -0.05617 0.06264 -0.897 0.3707
## ts.IMSEMILLA.l3 -4.82719 4.16581 -1.159 0.2476
## ts.Tcreal.l3 -0.07848 0.06320 -1.242 0.2154
## ts.IMSEMILLA.l4 -4.68499 4.00840 -1.169 0.2435
## ts.Tcreal.l4 0.07006 0.06334 1.106 0.2697
## ts.IMSEMILLA.l5 3.26242 3.37982 0.965 0.3353
## ts.Tcreal.l5 -0.06849 0.06063 -1.130 0.2596
## const 1.56308 0.70975 2.202 0.0285 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
##
## Residual standard error: 11.44 on 275 degrees of freedom
## Multiple R-Squared: 0.1085, Adjusted R-squared: 0.07609
## F-statistic: 3.347 on 10 and 275 DF, p-value: 0.0003943
##
##
##
## Covariance matrix of residuals:
## ts.IMSEMILLA ts.Tcreal
## ts.IMSEMILLA 0.04145 0.1012
## ts.Tcreal 0.10115 130.9554
##
## Correlation matrix of residuals:
## ts.IMSEMILLA ts.Tcreal
## ts.IMSEMILLA 1.00000 0.04342
## ts.Tcreal 0.04342 1.00000
Nos quedamos con el modelo VAR 5, ya que, el número de rezagos no es tan grande y aunque tiene correlación serial, ya que rechazamos la H0, de no correlación serial de la prueba de Portmanteau, es el más cercano a 0.05
#Pruebas de diagnóstico
var5.serial<-serial.test(var5,lags.pt=24,type="PT.asymptotic")
plot(var5.serial,names="ts.IMSEMILLAS")
## Warning in plot.varcheck(var5.serial, names = "ts.IMSEMILLAS"):
## Invalid residual name(s) supplied, using residuals of first variable.
Nos resultan seis graficos de: Gráfico de los Residuos Histograma de los residuos Función de Autocorrelación Función de Autocorrelación Parcial Función de Autocorrelación para los residuos al cuadrado Función de Autocorrelación Parcial para los residuos al cuadrado En general no se ven tan mal, y no se salen muchos rezagos, en algunos sólo se sale el 12, hay un poco de estacionalidad
plot(var5.serial,names= "ts.Tcreal")
En la otra variable, de igual forma nos resultan seis graficos de: Gráfico de los Residuos Histograma de los residuos Función de Autocorrelación Función de Autocorrelación Parcial Función de Autocorrelación para los residuos al cuadrado Función de Autocorrelación Parcial para los residuos al cuadrado En general no se ven tan mal, y no se salen muchos rezagos, en algunos sólo se sale el rezago 6, hay un poquito de estacionalidad
Estabilidad en la relación entre las variables de los residuos acumulados:
cusum<-stability(var5,type="OLS-CUSUM")
plot(cusum)
Nos da las graficas para los residuos acumulados para las dos ecuaciones. Si se saliera de las bandas habría cambios estructurales, en el sentido de que la relación entre las dos variables pudo pasar de fuerte a débil o se pudo volver fuerte, es decir la relación de la estabilidad aplicada a los residuos En este caso no se salen de las bandas, y no aparenta haber un problema
Estabilidad en la relación entre las variables de los residuos recursivos:
#Pruebas de diagnóstico
rec.cusum<-stability(var5,type="Rec-CUSUM")
plot(rec.cusum)
Tomo la estabilidad de la función llamada stability, y voy a formar los residuos que tengan cierta estabilidad para mis ecuaciones Esto nos da las graficas para los residuos recursivos para las dos ecuaciones. Si se saliera de las bandas habría cambios estructurales, indica la relación de la estabilidad aplicada a los residuos En este caso no se salen de las bandas, parece que el tipo de cambio solo fué estable al principio en los primeros alos de la regresión, mientras que para importación de semillas parece estable
#Pruebas de diagnóstico
var.norm<-normality.test(var5,multivariate.only=TRUE)
var.norm
## $JB
##
## JB-Test (multivariate)
##
## data: Residuals of VAR object var5
## Chi-squared = 352.32, df = 4, p-value < 2.2e-16
##
##
## $Skewness
##
## Skewness only (multivariate)
##
## data: Residuals of VAR object var5
## Chi-squared = 32.638, df = 2, p-value = 8.179e-08
##
##
## $Kurtosis
##
## Kurtosis only (multivariate)
##
## data: Residuals of VAR object var5
## Chi-squared = 319.68, df = 2, p-value < 2.2e-16
Considerando las hipótesis: H0= Existe Normalidad Ha=No normalidad En este modelo se puede apreciar que se rechaza la H0 de normalidad por lo que los residuos no parecen normales
e) Resultados de la prueba de causalidad de Granger, y
causality(var5,cause = 'ts.Tcreal')$Granger
##
## Granger causality H0: ts.Tcreal do not Granger-cause ts.IMSEMILLA
##
## data: VAR object var5
## F-Test = 1.0283, df1 = 5, df2 = 550, p-value = 0.4
Esta prueba nos ayuda a ver si los rezagos de una variable nos ayudan a explicar a otra variable, se avaluará si los rezagos de las importaciones nos ayudan a explicar el tipo de cambio real, y si los rezagos del tipo de cambio real nos ayudan a explicar las importaciones de semillas las hipótesis son: La H0= No Granger causa. La Ha= Granger Causa El tipo de cambio no granger causa a las importaciones
causality(var5,cause = 'ts.IMSEMILLA')$Granger
##
## Granger causality H0: ts.IMSEMILLA do not Granger-cause ts.Tcreal
##
## data: VAR object var5
## F-Test = 1.3496, df1 = 5, df2 = 550, p-value = 0.2419
Esta prueba nos ayuda a ver si los rezagos de una variable nos ayudan a explicar a otra variable, se avaluará si los rezagos de las importaciones nos ayudan a explicar el tipo de cambio real, y si los rezagos del tipo de cambio real nos ayudan a explicar las importaciones de semillas las hipótesis son: La H0= No Granger causa. La Ha= Granger Causa
f) Crear un pronóstico para dos años usando el VAR especificado.
predictions<-predict(var5,n.ahead=24,ci=0.95)
class(predictions)
## [1] "varprd"
plot(predictions,names="ts.IMSEMILLAS")
## Warning in plot.varprd(predictions, names = "ts.IMSEMILLAS"):
## Invalid variable name(s) supplied, using first variable.
fanchart(predictions,names="ts.Tcreal")
g) Interpretar las funciones impulso-respuesta.
plot(irf(var5, impulse= 'ts.IMSEMILLA', response = 'ts.Tcreal'))
Aquí lo que se hace es ver como ante un impulso de una variable, como responde la otra. En este caso la línea negra es la función impulso respuesta y las continuas representan bandas al 0.95. Ante un choque, en el tipo de cambio real las importaciones suben un poco y luego caen.
plot(irf(var5,impulse="ts.Tcreal",response="ts.IMSEMILLA",ortho=T))
Aquí lo que se hace es ver como ante un impulso de una variable, como responde la otra. En este caso la línea negra es la función impulso respuesta y las continuas representan bandas al 0.95. Ante un choque, en las importaciones de semillas, el tipo de cambio real sube un 0.07% , para luego volver a subir y luego se disipa
## Forecast error variance decomposition
fevd.var<-fevd(var5,n.ahead=10)
fevd.var
## $ts.IMSEMILLA
## ts.IMSEMILLA ts.Tcreal
## [1,] 1.0000000 0.000000000
## [2,] 0.9951223 0.004877673
## [3,] 0.9812654 0.018734594
## [4,] 0.9761152 0.023884775
## [5,] 0.9756910 0.024309037
## [6,] 0.9755994 0.024400554
## [7,] 0.9748525 0.025147476
## [8,] 0.9747409 0.025259110
## [9,] 0.9747467 0.025253295
## [10,] 0.9747377 0.025262345
##
## $ts.Tcreal
## ts.IMSEMILLA ts.Tcreal
## [1,] 0.001885183 0.9981148
## [2,] 0.007256136 0.9927439
## [3,] 0.008221014 0.9917790
## [4,] 0.009633605 0.9903664
## [5,] 0.010033996 0.9899660
## [6,] 0.019416820 0.9805832
## [7,] 0.019401371 0.9805986
## [8,] 0.019851561 0.9801484
## [9,] 0.020189488 0.9798105
## [10,] 0.020284473 0.9797155
Esto puede ser explicado mejor en el siguiente gráfico
plot(fevd.var,addbars=2)
Para explicar las importaciones, no hay nada blanquito, para explicar la varianza de las importaciones, son las mismas importaciones Para explicar el tipo de cambio real, no hay solo un poco negrito el las barras, por lo que para explicar la varianza del tipo de cambio real, es el tipo de cambio real mismo
15.Evaluarla potencial cointegración usandola metodología de Engle-Granger y Johansen.
base<-read.csv("C:/Users/halo0/Desktop/Importación de semillas para siembra_TCREAL2.csv")
ts.IMSEMILLAS <-ts(base$IMSEMILLAS, start = c(1993,1), frequency = 12)
ts.Tcreal <-ts(base$Tcreal, start = c(1993,1), frequency = 12)
par(mfrow=c(1,2))
plot(ts.IMSEMILLAS,main="Importación de semillas")
plot(ts.Tcreal,main="Tipo de cambio real")
Podemos ver los dos graficos, ambos con tendencia positiva
ur.df(ts.IMSEMILLAS)
##
## ###############################################################
## # Augmented Dickey-Fuller Test Unit Root / Cointegration Test #
## ###############################################################
##
## The value of the test statistic is: -1.3188
Como el valor p <0.05 se rechaza la H0 de que haya raíz unitaria en la serie. Por lo que nuestra serie es un proceso estacionario.
ur.df(ts.Tcreal)
##
## ###############################################################
## # Augmented Dickey-Fuller Test Unit Root / Cointegration Test #
## ###############################################################
##
## The value of the test statistic is: 1.4831
Como el valor p>0.05 se rechaza la H0 de que haya raíz unitaria en la serie. Por lo que nuestra serie al parecer no es un proceso estacionario.
lr.reg<-dynlm(ts.Tcreal~L(ts.Tcreal)+ts.IMSEMILLAS+L(ts.IMSEMILLAS))
summary(lr.reg)
##
## Time series regression with "ts" data:
## Start = 1993(2), End = 2018(4)
##
## Call:
## dynlm(formula = ts.Tcreal ~ L(ts.Tcreal) + ts.IMSEMILLAS + L(ts.IMSEMILLAS))
##
## Residuals:
## Min 1Q Median 3Q Max
## -42.995 -5.559 -1.979 4.182 64.684
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.8628910 2.1155282 2.299 0.0222 *
## L(ts.Tcreal) 0.9807938 0.0087466 112.135 <2e-16 ***
## ts.IMSEMILLAS -0.0000247 0.0001556 -0.159 0.8739
## L(ts.IMSEMILLAS) 0.0002613 0.0001560 1.675 0.0950 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 11.52 on 299 degrees of freedom
## Multiple R-squared: 0.9928, Adjusted R-squared: 0.9928
## F-statistic: 1.38e+04 on 3 and 299 DF, p-value: < 2.2e-16
dwtest(lr.reg)
##
## Durbin-Watson test
##
## data: lr.reg
## DW = 1.477, p-value = 1.564e-06
## alternative hypothesis: true autocorrelation is greater than 0
error<-residuals(lr.reg)
ur.df(error)
##
## ###############################################################
## # Augmented Dickey-Fuller Test Unit Root / Cointegration Test #
## ###############################################################
##
## The value of the test statistic is: -11.2438
Como el valor p <0.05 se rechaza la H0 de que haya raíz unitaria en la serie. Por lo que nuestra serie es un proceso estacionario.
data<-ts.intersect(ts.IMSEMILLAS,ts.Tcreal, error)
ecm.reg<-dynlm(d(ts.Tcreal)~L(error)+L(d(ts.IMSEMILLAS))+L(d(ts.Tcreal)),data=data)
summary(ecm.reg)
##
## Time series regression with "ts" data:
## Start = 1993(4), End = 2018(4)
##
## Call:
## dynlm(formula = d(ts.Tcreal) ~ L(error) + L(d(ts.IMSEMILLAS)) +
## L(d(ts.Tcreal)), data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -42.566 -5.697 -1.442 4.302 58.494
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.455e+00 1.001e+00 -1.454 0.147095
## L(error) -1.571e+00 4.348e-01 -3.614 0.000355 ***
## L(d(ts.IMSEMILLAS)) 1.079e-05 1.502e-04 0.072 0.942784
## L(d(ts.Tcreal)) 1.813e+00 4.315e-01 4.202 3.51e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 10.96 on 297 degrees of freedom
## Multiple R-squared: 0.1186, Adjusted R-squared: 0.1097
## F-statistic: 13.33 on 3 and 297 DF, p-value: 3.488e-08