Leitura e Processamento de Dados

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)

Análise Exploratória

Visualização da Série

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.

ACF e PACF

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

Estatísticas Descritivas

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.4000  0.8305  0.9860  1.0000  1.1470  1.9420

Suavização da Série

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.

Testes Estatísticos

Teste de Tendência

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

Teste de Raíz Unitária

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

Teste de Sazonalidade

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

Modelagem - SARIMA (2,0,3)(2,0,0)[10]

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

Diagnóstico dos Resíduos

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)

Previsão

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

Conclusão