library(pacman)
p_load("tidyverse", "lubridate", "forecast", "TTR", "MLmetrics", "tseries", "fpp", "TSstudio", "prettydoc", "DT", "xfun", "readr", "ggplot2", "scales", "base64enc", "mime", "dplyr", "ggplot2", "readxl")

Datos

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))

Temperatura media

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()

Temparatura máxima

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()

Precipitaciones

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()