library(pacman)
p_load("tidyverse", "lubridate", "forecast", "TTR", "MLmetrics", "tseries", "fpp", "TSstudio", "prettydoc", "DT", "xfun", "readr", "ggplot2", "scales", "base64enc", "mime", "dplyr", "ggplot2", "readxl")
datosPB<- read_excel("ProdBovinoSonora.xlsx")
datosPB <- data.frame(datosPB)
datatable(datosPB)
series de tiempo
TSTempMedia <- ts(data=datosPB$Temperatura_media_promedio_Celsius, start=c(2005))
TSTempMax <- ts(data=datosPB$Temperatura_maxima_promedio_celsius, start=c(2005))
TSMM <- ts(data=datosPB$Precipitacion_media_historica_mm, start=c(2005))
Entrenar modelo
test_media <- tail(TSTempMedia, 12)
train_media <- head(TSTempMedia, length(TSTempMedia)-12)
modelo sarima
media_auto <- auto.arima(y= train_media, seasonal = T)
summary(media_auto)
## Series: train_media
## ARIMA(0,0,0) with non-zero mean
##
## Coefficients:
## mean
## 22.5000
## s.e. 0.1225
##
## sigma^2 = 0.08: log likelihood = -0.05
## AIC=4.1 AICc=16.1 BIC=2.87
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 5.023537e-12 0.244949 0.2 -0.01174927 0.8851117 1 0.1666667
grafica
train_media %>%
autoplot(series="actual") +
autolayer(media_auto$fitted, series ="SARIMA auto") +
theme_minimal()
Entrenar modelo
test_max <- tail(TSTempMax, 12)
train_max <- head(TSTempMax, length(TSTempMax)-12)
modelo sarima
max_auto <- auto.arima(y= train_max, seasonal = T)
summary(max_auto)
## Series: train_max
## ARIMA(1,0,1) with non-zero mean
##
## Coefficients:
## ar1 ma1 mean
## 0.2009 0.4310 31.3582
## s.e. 0.9890 0.7937 0.4348
##
## sigma^2 = 1.007: log likelihood = -3.12
## AIC=14.25 AICc=-25.75 BIC=11.79
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -0.1083322 0.5017319 0.462048 -0.3702895 1.468786 0.9901029
## ACF1
## Training set -0.3303817
grafica
train_max %>%
autoplot(series="actual") +
autolayer(max_auto$fitted, series ="SARIMA auto") +
theme_minimal()
Entrenar modelo
test_mm <- tail(TSMM, 12)
train_mm <- head(TSMM, length(TSMM)-12)
modelo sarima
mm_auto <- auto.arima(y= train_mm, seasonal = T)
summary(mm_auto)
## Series: train_mm
## ARIMA(0,0,0) with non-zero mean
##
## Coefficients:
## mean
## 421.50
## s.e. 0.25
##
## sigma^2 = 0.3333: log likelihood = -2.9
## AIC=9.81 AICc=21.81 BIC=8.58
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set -5.985612e-11 0.5 0.5 -0.0001407167 0.1186241 0.75 -0.25
grafica
train_mm %>%
autoplot(series="actual") +
autolayer(mm_auto$fitted, series ="SARIMA auto") +
theme_minimal()