###Examen Parcial 1
### Rodrigo DomÃguez 1016119
###Parte 1
##¿Qué es una serie de tiempo?
#Una serie de tiempo es una herramienta importante para entender cómo una variable ha cambiado a lo largo del tiempo y cómo puede cambiar en el futuro.
##¿Para que sirve una serie de tiempo?
#Las series de tiempo son útiles para entender el comportamiento de una variable a lo largo del tiempo, identificar patrones y tendencias, hacer pronósticos y analizar la relación causal entre variables.
##Describa e identifique las componentes de una serie de tiempo
#1. Tendencia: dirección general en la que la serie se mueve a lo largo del tiempo, puede ser, creciente, decreciente o constante.
#2. Estacionalidad: variación periódica de la tendencia, ayuda a predecir la dirección futura de la tendencia.
#3. Ciclo: Fluctuación periódica en la serie de tiempo la cual no esta relacionada con la estacionalidad, este, puede tener diferentes variaciones los cuales pueden ser causados por factores económicos.
#4. Ruido: variación aleatoria en la serie de tiempo que no se logra explicar por la tendencia, etacionalidad o ciclo, este se debe a factores impredecibles.
##¿Qué es una ecuación en diferencia? Describa los tipos vistos en clase y sus diferencias
#es una ecuación matemática que describe la relación entre los valores sucesivos de una serie de tiempo. Se utiliza para modelar y predecir el comportamiento de una serie de tiempo a lo largo del tiempo.
#1. Ecuaciones de primer orden: Estas ecuaciones describen la relación entre el valor actual de la serie de tiempo y su valor en el perÃodo anterior.
#2. Ecuaciones de segundo orden: Estas ecuaciones describen la relación entre el valor actual de la serie de tiempo y sus valores en los dos perÃodos anteriores.
#3. Ecuaciones AR(p): Estas ecuaciones son un tipo de ecuaciones autorregresivas que describen la relación entre el valor actual de la serie de tiempo y sus valores en los p perÃodos anteriores.
#4. Ecuaciones MA(q): Estas ecuaciones son un tipo de ecuaciones de media móvil que describen la relación entre el valor actual de la serie de tiempo y los q términos de error anteriores.
#5. Ecuaciones ARIMA: Estas ecuaciones son un tipo de ecuaciones que combinan las ecuaciones AR(p) y MA(q).
##Defina la diferencia entre estacionariedad y estacionalidad
#Son conceptos diferentes en el análisis de series de tiempo.
#Estacionariedad: se refiere a la estabilidad estadÃstica de los datos a lo largo del tiempo
#Estacionalidad: se refiere a patrones repetitivos en los datos que se repiten en intervalos regulares.
##Describa los componentes p,q,d del modelo ARIMA
#1.p: Es el número de términos autorregresivos (AR) en el modelo. Un término AR es una variable que representa la influencia de los valores anteriores de la serie de tiempo en el valor actual. Si p = 1, el modelo utiliza el valor anterior de la serie de tiempo para predecir el valor actual. Si p = 2, el modelo utiliza los valores de dos perÃodos anteriores para predecir el valor actual, y asà sucesivamente.
#2.d: Es el número de veces que se ha diferenciado la serie de tiempo para convertirla en estacionaria. La diferenciación es un proceso en el que se resta cada valor de la serie de tiempo del valor del perÃodo anterior. Si d = 1, la serie de tiempo se ha diferenciado una vez para hacerla estacionaria. Si d = 2, la serie de tiempo se ha diferenciado dos veces.
#3.q: Es el número de términos de media móvil (MA) en el modelo. Un término MA es una variable que representa la influencia de los términos de error anteriores en el valor actual. Si q = 1, el modelo utiliza el término de error anterior para predecir el valor actual. Si q = 2, el modelo utiliza los dos términos de error anteriores, y asà sucesivamente.
#el modelo ARIMA utiliza los componentes p, d y q para describir la estructura de la serie de tiempo y hacer predicciones precisas. El valor de p, d y q se determina mediante técnicas de análisis de series de tiempo y puede variar dependiendo de la serie de tiempo especÃfica que se esté analizando.
##Parte 2
#Número 1
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.20 ✔ expsmooth 2.3
##
data(auscafe)
ggtsdisplay(auscafe)

#Se logra observar una tendencia creciente en la serie de tiempo desde finales de la década de 1980 hasta mediados del a década de 1990. Luego, esta, se estabiliza hasta el año 2005, donde comeienza a mostrar una tendencia creciente nuevamente.
# La serie de tiempo nos muestra una estacionalidad anual, donde se observa que hay un aumento en el consumo de café durante los primeros meses del año, seguido de una dismimución durante el resto del año.
#Asimismo, se logran observar algunos valores atÃpicos en la serie de tiempo, que pueden indicar la presencia de factores externos que afectan al consumo del café
#Número 2
eq_f_1o <-function(t,A,B,y_0) {
y_x <- (A^t)*y_0 + B*((1-A^t)/(1-A))
}
y_x <- eq_f_1o(15, 1.15,-5, 1000)
y_x
## [1] 7899.16
serie <- list()
for (i in 1:15) {
serie <- c(serie,eq_f_1o(i,1.15,-5,1000))
}
plot(1:15, serie, type = "l")

serie
## [[1]]
## [1] 1145
##
## [[2]]
## [1] 1311.75
##
## [[3]]
## [1] 1503.512
##
## [[4]]
## [1] 1724.039
##
## [[5]]
## [1] 1977.645
##
## [[6]]
## [1] 2269.292
##
## [[7]]
## [1] 2604.686
##
## [[8]]
## [1] 2990.389
##
## [[9]]
## [1] 3433.947
##
## [[10]]
## [1] 3944.039
##
## [[11]]
## [1] 4530.645
##
## [[12]]
## [1] 5205.242
##
## [[13]]
## [1] 5981.028
##
## [[14]]
## [1] 6873.182
##
## [[15]]
## [1] 7899.16
#La inversión sigue siendo rentable después de 15 años. La ganancia total después de 15 años es de $7899.16
#Número 3
library(forecast)
library(seasonal)
library(tseries)
library(fpp2)
data <- a10
plot(data)

tseries::adf.test(data)
## Warning in tseries::adf.test(data): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: data
## Dickey-Fuller = -4.1233, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary
tseries::adf.test(data)
## Warning in tseries::adf.test(data): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: data
## Dickey-Fuller = -4.1233, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary
diff_ts<-diff(data)
tseries::adf.test(data)
## Warning in tseries::adf.test(data): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: data
## Dickey-Fuller = -4.1233, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary
plot(diff_ts)
diff_ts<-diff(data)
tseries::adf.test(diff_ts)
## Warning in tseries::adf.test(diff_ts): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: diff_ts
## Dickey-Fuller = -8.4365, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary
plot(diff_ts)

#q
acf(diff_ts)

#p
pacf(diff_ts)

# p d q
# 2 0 1
# 3 0 3
modelo1 = Arima(data, order=c(2,0,1), include.drift = T)
modelo2 = Arima(data, order=c(3,0,3), include.drift = T)
modelo1$aic
## [1] 856.7812
modelo2$aic
## [1] 853.6491
modelo2 = Arima(data, order=c(3,0,3), include.drift = T)
a<-forecast::forecast(modelo2, h=20)
plot(a)

checkresiduals(modelo2$residuals)
## Warning in modeldf.default(object): Could not find appropriate degrees of
## freedom for this model.

#q
acf(modelo1$residuals)

#p
pacf(modelo1$residuals)

# p d q
# 2 0 2
modelo2 = Arima(data, order=c(2,0,2), seasonal= list(order=c(3,0,3),period=1), include.drift = T)
a<-forecast::forecast(modelo2, h=20)
plot(a)
