Os dados foram importados a partir de um arquivo texto (TREE_RIO_CISNE.txt). Este conjunto de dados representa medições relacionadas ao crescimento dos anéis de árvores, onde se assume que o índice trsgi reflete as variações no crescimento anual das árvores.
dados <- read.table("TREE_RIO_CISNE.txt", header = TRUE)
dados <- dados[order(dados$age_CE), ]
d1 <- ts(dados$trsgi, start = 441, frequency = 1)
Observa-se que a série apresenta uma elevada variabilidade ao longo de todo o período, com oscilações constantes em torno de um valor médio próximo de 1. Não há uma tendência evidente de crescimento ou decaimento persistente no longo prazo. Os picos da série não parecem seguir um padrão regular, indicando, a princípio, uma possível ausência de sazonalidade evidente.
O gráfico da Função de Autocorrelação revela um decaimento lento. Há autocorrelações significativas nos primeiros lags, com um padrão oscilatório que reforça a ideia de ciclos.
No gráfico de Função de AUtocorrelação Parcial, os valores da PACF oscilam próximos de zero, com alguns picos esporádicos ligeiramente significativos
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.4000 0.8305 0.9860 1.0000 1.1470 1.9420
A linha azul mostra que, apesar da forte variabilidade entre os anos, não há uma tendência de crescimento ou decréscimo consistente ao longo dos séculos.
Não há evidência estatística de tendência determinística na série.
## Teste H0 p_valor Conclusao
## 1 Cox Stuart NAO tendencia 0.6911 NAO tendencia
## 2 Cox and Stuart Trend NAO tendencia 0.6371 NAO tendencia
## 3 Mann-Kendall Trend NAO tendencia 0.2007 NAO tendencia
## 4 Mann-Kendall NAO tendencia 0.2007 NAO tendencia
## 5 KPSS Trend NAO tendencia 0.1000 NAO tendencia
Os três testes são consistentes ao indicar que a série não apresenta raiz unitária, ou seja, é estacionária em nível.Dessa forma, não há necessidade de aplicar diferenciação.
## Teste H0 p_valor Conclusao
## 1 ADF Tendencia 0.01 NAO tendencia
## 2 PP Tendencia 0.01 NAO tendencia
## 3 KPSS Level NAO tendencia 0.10 NAO tendencia
A série não apresenta sazonalidade estatisticamente significativa.
## Teste H0 p_valor Conclusao
## 1 Kruskall-Wallis NAO Sazonal 0.7714 NAO Sazonal
## 2 Friedman NAO Sazonal 0.4365 NAO Sazonal
Este modelo captura bem a dinâmica da série, com resíduos praticamente não autocorrelacionados e com erro médio próximo de zero.
Embora os testes formais de sazonalidade não tenham indicado presença de sazonalidade na série, a inclusão de termos sazonais no modelo SARIMA proporcionou uma melhoria estatística significativa, evidenciada pela redução dos critérios AIC e BIC e pela melhora na qualidade dos resíduos. Assim, a sazonalidade aqui é interpretada como uma dependência periódica estatística, utilizada como ferramenta de modelagem.
mod_sarima <- Arima(d1, order = c(2, 0, 3), seasonal = list(order = c(2, 0, 0), period = 10))
summary(mod_sarima)
## Series: d1
## ARIMA(2,0,3)(2,0,0)[10] with non-zero mean
##
## Coefficients:
## ar1 ar2 ma1 ma2 ma3 sar1 sar2 mean
## 1.8591 -0.8695 -1.3497 0.3029 0.0709 -0.0071 -0.0114 1.0007
## s.e. 0.0227 0.0219 0.0345 0.0435 0.0302 0.0268 0.0262 0.0103
##
## sigma^2 = 0.03064: log likelihood = 500.35
## AIC=-982.7 AICc=-982.58 BIC=-934.68
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 7.275323e-05 0.1745786 0.1327838 -3.411787 14.45584 0.8838226
## ACF1
## Training set -0.001587118
lmtest::coeftest(mod_sarima)
##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ar1 1.8591446 0.0226957 81.9162 < 2.2e-16 ***
## ar2 -0.8694699 0.0218992 -39.7032 < 2.2e-16 ***
## ma1 -1.3497207 0.0345017 -39.1204 < 2.2e-16 ***
## ma2 0.3029390 0.0435034 6.9636 3.318e-12 ***
## ma3 0.0709203 0.0302465 2.3447 0.01904 *
## sar1 -0.0071468 0.0267999 -0.2667 0.78972
## sar2 -0.0114455 0.0261901 -0.4370 0.66210
## intercept 1.0006780 0.0103039 97.1160 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Observa-se que os resíduos estão distribuídos de forma aproximadamente aleatória em torno de zero, sem apresentar qualquer padrão aparente de tendência ou sazonalidade
As autocorrelações estão, na sua maioria, dentro dos limites de confiança . Isso sugere que os resíduos são essencialmente ruído branco
A distribuição dos resíduos é aproximadamente simétrica e centrada em zero
O QQ plot confirma que a maior parte dos resíduos segue razoavelmente uma distribuição normal, com exceções apenas nas caudas
checkresiduals(mod_sarima)
##
## Ljung-Box test
##
## data: Residuals from ARIMA(2,0,3)(2,0,0)[10] with non-zero mean
## Q* = 8.9699, df = 3, p-value = 0.02969
##
## Model df: 7. Total lags used: 10
# Resíduos
res_mod <- residuals(mod_sarima)
# Teste de autocorrelação
Box.test(res_mod, lag = 15, type = "Ljung")
##
## Box-Ljung test
##
## data: res_mod
## X-squared = 16.948, df = 15, p-value = 0.322
# Teste de normalidade
nortest::ad.test(res_mod)
##
## Anderson-Darling normality test
##
## data: res_mod
## A = 3.9686, p-value = 6.993e-10
# Raiz unitária nos resíduos
raiz_unit(res_mod)
## Teste H0 p_valor Conclusao
## 1 ADF Tendencia 0.01 NAO tendencia
## 2 PP Tendencia 0.01 NAO tendencia
## 3 KPSS Level NAO tendencia 0.10 NAO tendencia
# QQ Plot
ggqqplot(res_mod)
A previsão segue uma trajetória levemente crescente e bastante estável, o que é coerente com o comportamento observado na série histórica.
forecast_sarima <- forecast(mod_sarima, h = 12)
autoplot(forecast_sarima) +
autolayer(forecast_sarima$fitted, series = "Ajustado", color = "blue") +
labs(title = "Previsão SARIMA(2,0,3)(2,0,0)[10]",
x = "Tempo", y = "Índice de Crescimento") +
theme_minimal()
forecast_sarima
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 1975 0.9403225 0.7160053 1.164640 0.5972590 1.283386
## 1976 0.9601952 0.7084485 1.211942 0.5751818 1.345209
## 1977 0.9830481 0.7172213 1.248875 0.5765012 1.389595
## 1978 1.0030787 0.7268034 1.279354 0.5805521 1.425605
## 1979 1.0180438 0.7340646 1.302023 0.5837351 1.452352
## 1980 1.0281558 0.7385709 1.317741 0.5852739 1.471038
## 1981 1.0407934 0.7472084 1.334378 0.5917939 1.489793
## 1982 1.0490735 0.7527093 1.345438 0.5958236 1.502323
## 1983 1.0536880 0.7554605 1.351916 0.5975884 1.509788
## 1984 1.0608399 0.7614217 1.360258 0.6029192 1.518761
## 1985 1.0634819 0.7634582 1.363506 0.6046352 1.522329
## 1986 1.0682752 0.7679066 1.368644 0.6089010 1.527649
O índice de crescimento dos anéis de árvores se mostrou relativamente estável ao longo do tempo, com oscilações normais e sem tendências estruturais de longo prazo.
O modelo SARIMA escolhido demonstra ser uma ferramenta robusta para monitoramento e previsão desse índice.
Esta análise reforça que a modelagem de séries temporais ambientais pode se beneficiar da flexibilidade de modelos sazonais, mesmo em séries onde a sazonalidade não é explicitamente visível.