# Modelo SARIMA(0,1,1)(0,1,1)12
fit <- Arima(milho_log, order=c(0,1,1), seasonal=c(0,1,1))

# 2. Diagnóstico de Resíduos (Gráficos padrão de ACF, PACF e Normalidade)
checkresiduals(fit)

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(0,1,1)(0,1,1)[12]
## Q* = 24.418, df = 22, p-value = 0.3257
## 
## Model df: 2.   Total lags used: 24

# Testes Adicionais
# Box-Pierce
bp_test <- Box.test(residuals(fit), type="Box-Pierce", lag=12)
print("Resultado Teste Box-Pierce:")
## [1] "Resultado Teste Box-Pierce:"
print(bp_test)
## 
##  Box-Pierce test
## 
## data:  residuals(fit)
## X-squared = 15.262, df = 12, p-value = 0.2274
# Ljung-Box
lb_test <- Box.test(residuals(fit), type="Ljung-Box", lag=12)
print("Resultado Teste Ljung-Box:")
## [1] "Resultado Teste Ljung-Box:"
print(lb_test)
## 
##  Box-Ljung test
## 
## data:  residuals(fit)
## X-squared = 16.476, df = 12, p-value = 0.1704
# Gráfico visual da estatística dos testes (Box-Pierce/Ljung-Box) ao longo dos lags
tsdisplay(residuals(fit), main="Diagnóstico Detalhado dos Resíduos")

# Previsão
fc <- forecast(fit, h=12)
plot(fc, main="Previsão SARIMA - Milho 1ª Safra (Log)", ylab="Log(Produção)")

# Retornar à escala original
plot(exp(fc$mean), main="Previsão em Escala Original", ylab="Produção Prevista", col="darkgreen", type="b")

# 7. Testes Estatísticos
bp_test <- Box.test(residuals(fit), type="Box-Pierce", lag=12)
lb_test <- Box.test(residuals(fit), type="Ljung-Box", lag=12)
print("Resultado Teste Box-Pierce:")
## [1] "Resultado Teste Box-Pierce:"
print(bp_test)
## 
##  Box-Pierce test
## 
## data:  residuals(fit)
## X-squared = 15.262, df = 12, p-value = 0.2274
print("Resultado Teste Ljung-Box:")
## [1] "Resultado Teste Ljung-Box:"
print(lb_test)
## 
##  Box-Ljung test
## 
## data:  residuals(fit)
## X-squared = 16.476, df = 12, p-value = 0.1704
# 8. Previsão
fc <- forecast(fit, h=12)
previsao_original <- exp(fc$mean)
# Imprimir valores no console
cat("--- Valores Previstos (Próximos 12 meses) ---\n")
## --- Valores Previstos (Próximos 12 meses) ---
print(previsao_original)
##          Jan     Feb     Mar     Apr     May     Jun     Jul     Aug     Sep
## 2024                                                 4786059 4780888 4768822
## 2025 4721273 4703742 4684735 4652684 4632069 4624551                        
##          Oct     Nov     Dec
## 2024 4753303 4748522 4744129
## 2025
# 9. Plotagem Consolidada (Série Histórica + Previsão)
# Zoom nos anos recentes para melhor visualização
plot(milho_1, main="Série Histórica e Previsão (12 meses)", 
     ylab="Produção", xlab="Data", col="blue", 
     xlim=c(2022, 2027.6))
lines(previsao_original, col="red", lwd=2, type="o")
legend("topleft", legend=c("Histórico", "Previsão"), col=c("blue", "red"), lty=1, pch=1)