5  Suavização exponencial

Autor

Robson Bruno Dutra Pereira

5.1 Suavização exponencial simples

A suavização exponencial consiste em uma média ponderada das observações anteriores, com peso decaindo exponencialmente à medida que as observações ficam mais distantes no tempo.

A previsão para a suavização exponencial simples pode ser denotada conforme Equação 5.1

\[ \hat y_{T+1|T} = \alpha y_T + \alpha(1-\alpha)y_{T-1} + \alpha(1-\alpha)^2y_{T-2}+... \tag{5.1}\]

onde \(0< \alpha <1\) consiste no parâmetro de suavização. A previsão um passo à frente consiste em uma média ponderada das observações anteriores, \(y_1,...,y_T\), com taxa de decrescimento dos pesos controlada pelo parâmetro \(\alpha\). A Tabela 5.1 expõe os pesos para as cinco últimas observações para distintos valores de \(\alpha\). Observa-se que a soma dos pesos é próxima de 1.

Tabela 5.1: Pesos na suavização exponencial simples
Observação \(\alpha=0.2\) \(\alpha=0.5\) \(\alpha=0.8\)
\(y_T\) 0.200000 0.500000 0.800000
\(y_{T-1}\) 0.160000 0.250000 0.160000
\(y_{T-2}\) 0.128000 0.125000 0.032000
\(y_{T-3}\) 0.102400 0.062500 0.006400
\(y_{T-4}\) 0.081920 0.031250 0.001280
\(y_{T-5}\) 0.065536 0.015625 0.000256

A Figura 5.1 expõe os mesmos pesos plotados segundo o tempo. Observa-se que quanto maior o \(\alpha\), maior a taxa de decrescimento dos pesos da última observação em relação às anteriores.

Figura 5.1: Pesos na suavização exponencial simples

O modelo exposto para prever a observação futura pode ser descrito sempre considerando a última observação e a previsão desta, conforme Equação 5.2.

\[ \hat y_{T+1|T} = \alpha y_T +(1-\alpha)\hat y_{T|T-1} \tag{5.2}\]

De forma similar, os valores ajustados para a série ficam conforme Equação 5.3.

\[ \hat y_{t+1|t} = \alpha y_t +(1-\alpha)\hat y_{t|t-1}, \tag{5.3}\]

para \(t=1,...,T\).

Seja \(l_0\) o valor estimado para a primeira observação, \(t=1\), então:

\[ \begin{align} \hat y_{2|1} &= \alpha y_1 +(1-\alpha) l_0 \\ \hat y_{3|2} &= \alpha y_2 +(1-\alpha) \hat y_{2|1} \\ \hat y_{4|3} &= \alpha y_3 +(1-\alpha) \hat y_{3|2} \\ \vdots \\ \hat y_{T|T-1} &= \alpha y_{T-1} +(1-\alpha) \hat y_{T-1|T-2} \\ \hat y_{T+1|T} &= \alpha y_{T} +(1-\alpha) \hat y_{T|T-1} \\ \end{align} \]

Observe que cada equação pode ser substituída na posterior, conforme Equação 5.4.

\[ \begin{align} \hat y_{3|2} &= \alpha y_2 +(1-\alpha) [\alpha y_1 +(1-\alpha) l_0] \\ &= \alpha y_2 + \alpha(1-\alpha)y_1 +(1-\alpha)^2 l_0\\ \hat y_{4|3} &= \alpha y_3 +(1-\alpha)[\alpha y_2 + \alpha(1-\alpha) y_1 +(1-\alpha)^2 l_0] \\ &= \alpha y_3 +\alpha(1-\alpha) y_2 +\alpha(1-\alpha)^2 y_1 +(1-\alpha)^3 l_0 \\ \vdots \\ \hat y_{T+1|T} &= \sum_{j=0}^{T-1} \alpha (1-\alpha)^j y_{T-j}+ (1-\alpha)^T l_0 \\ \end{align} \tag{5.4}\]

Como o último termo fica muito pequeno para \(T\) grande, então a equação fica conforme o modelo apresentado inicialmente.

A representação em componentes também é comum para a suavização exponencial, sendo o caso simples expresso na Equação 5.5.

\[ \begin{align} \text{Equação de previsão: } \hat y_{t+h} &= l_t\\ \text{Equação de suavização: } l_t &= \alpha y_t + (1-\alpha)l_{t-1},\\ \end{align} \tag{5.5}\]

onde \(l_t\) consiste no nível no período \(t\) e \(\hat y_{t+h} = l_t\) a previsão no período \(t+h\).

Se \(h=0\), tem-se o valor ajustado para \(y_t\), enquanto se \(t=T\) e \(h \geq1\), tem-se a previsão para além dos dados observados ou disponíveis para treino ou estimativa da série. Fazendo \(l_t = \hat y_{t+1|t}\) e \(l_{t-1} = \hat y_{t|t-1}\), tem-se o modelo ponderado já exposto. Tal representação não é tão útil para o caso simples, porém, quando considerados termos de tendência e suavização, será. O modelo simples, até aqui explicitado é recomendado para casos sem tendência e sazonalidade.

A Figura 5.2 expõe o resultado da suavização exponencial simples para a série do IPCA no Brasil a partir de 2019. Os parâmetros estimados, \(\alpha\) e \(l_0\), expostos na Tabela 5.2 foram estimados minimizando a soma dos quadrados dos erros para as estimativas um passo à frente.

Tabela 5.2: Parâmetros de suavização exponencial simples para a série do IPCA no Brasil a partir de 2019
term estimate
alpha 0,5722074
l[0] 0,3963222
Figura 5.2: Previsão e valores ajustados para o IPCA via suavização exponencial simples

A Tabela 5.3 apresenta os valores ajustados \(\hat y_t\) para as últimas observações da série.

Tabela 5.3: Pesos na suavização exponencial simples
Data Variação y_hat
2025 fev 1,31 0,30
2025 mar 0,56 0,88
2025 abr 0,43 0,70
2025 mai 0,26 0,54
2025 jun 0,24 0,38
2025 jul 0,26 0,30

5.2 Suavização exponencial com tendência

Em casos com tendência pode-se aplicar o método de Holt (2004), o qual considera uma equação para o nível, \(l_t\), uma para a tendência, \(b_t\), e a de previsão, \(\hat y_{t+h|t}\), conforme Equação 5.6.

\[ \begin{align} \text{Equação de previsão: } \hat y_{t+h} &= l_t + hb_t\\ \text{Equação do nível: } l_t &= \alpha y_t + (1-\alpha)(l_{t-1}+b_{t-1})\\ \text{Equação de tendência: } b_t &= \beta^*(l_t-l_{t-1})+(1-\beta^*)b_{t-1} \end{align} \tag{5.6}\]

Neste caso \(l_t\) é uma média ponderada da observação \(y_t\) e da previsão um passo a frente, dada por \(l_{t-1}+b_{t-1}\). A equação de tendência, \(b_t\), consiste em uma média ponderada da tendência no tempo \(t\), baseada em \(l_t-l_{t-1}\), e na estimativa anterior da tendência, \(b_{t-1}\).

A Figura 5.3 expõe a série anual da população projetada para o Brasil até 2010, revisada em 2008, disponível em IBGE. Observa-se tendência de crescimento próxima de linear.

Figura 5.3: População do Brasil

A Tabela 5.4 expõe os parâmetros estimados de suavização exponencial com tendência para a série da populaçao projetada do Brasil.

Tabela 5.4: Parâmetros de suavização exponencial com tendência para a série da população projetada do Brasil
Termo Estimativa
alpha 1,00
beta 0,44
l[0] 116948789,80
b[0] 2842713,24

5.2.1 Suavização exponencial com tendência amortecida

Um problema do método de Holt (2004) para suavização exponencial com tendência é que ele costuma apresentar uma estimativa linear que em longos horizontes de previsão que não se confirma. Uma opção é a abordagem de Gardner e Mckenzie (1985) que propõe amortecer as previsões. O método inclui o parâmetro de amortecimento \(0<\phi<1\).

\[ \begin{align} \text{Equação de previsão: } \hat y_{t+h} &= l_t + (\phi+\phi^2+...+\phi^h)b_t\\ \text{Equação do nível: } l_t &= \alpha y_t + (1-\alpha)(l_{t-1}+\phi b_{t-1})\\ \text{Equação de tendência: } b_t &= \beta^*(l_t-l_{t-1})+(1-\beta^*)\phi b_{t-1} \end{align} \]

Caso \(\phi=1\), então tem-se o método de Holt já exposto. O método tende a gerar previsões com tendência não linear para curtos períodos que se tornam constantes em longos horizontes à frente das observações. A Figura 5.4 expõe as previsões 15 anos à frente para a população do Brasil considerando os dados projetados até 2010. Observa-se que o método de Holt projetaria 216 milhões de pessoas em 2022, enquanto o mesmo amortecido projetaria 210,8 milhões para o mesmo ano. Foi considerado neste caso \(\phi=0,97\). Dados já observados do censo de 2022 indicam que a população do Brasil neste ano atingiu 210,3 milhões de pessoas.

Figura 5.4: População do Brasil

A Figura 5.5 expõe os resultados das previsões obtidas pelos mesmos métodos aplicados à série anual de emissão de gases de efeito estufa pela indústria, em Gg de CO2 equivalente, disponível em SIRENE - Sistema de Registro Nacional de Emissões. Foi considerado um \(\phi = 0,90\) para o caso com amortecimento. O amortecimento é importante, uma vez que o método Holt apresenta geralmente tendência acentuada, com inclinação com mais peso em relação ao observado nos últimos anos, que pode não se confirmar a médio prazo.

Figura 5.5: Emissões de gases de efeito estufa pela indústria

5.3 Suavização exponencial com sazonalidade

Holt (2004) e Winters (1960) adicionaram a sazonalidade na suavização exponencial. Logo, além das equações de previsão, nível e tendência, o método inclui uma equação adicional para a sazonalidade. O método considera ambos os casos aditivo e multiplicativo.

O método Holt-Winters aditivo é denotado conforme a Equação 5.7.

\[ \begin{align} \text{Equação de previsão: } \hat y_{t+h} &= l_t + hb_t + s_{t+h-m(k+1)}\\ \text{Equação do nível: } l_t &= \alpha (y_t-s_{t-m}) + (1-\alpha)(l_{t-1}+b_{t-1})\\ \text{Equação de tendência: } b_t &= \beta^*(l_t-l_{t-1})+(1-\beta^*)b_{t-1}\\ \text{Equação de sazonalidade: } s_t &= \gamma(y_t-l_{t-1}-b_{t-1})+(1-\gamma)s_{t-1}, \end{align} \tag{5.7}\]

onde \(k\) consiste na parte inteira de \((h−1)/m\) que garante que a estimativa dos índices sazonais usados para previsão vêm do último período sazonal da série. A equação de nível consiste em uma média ponderada entre a observação ajustada sazonalmente, \(y_t-s_{t-m}\), e a previsão não sazonal, \(l_{t-1}+b_{t-1}\), para o tempo \(t\). A equação de tendência não muda e a sazonal considera uma média móvel do índice sazonal atual, \(y_t-l_{t-1}-b_{t-1}\), e do mesmo período da estação anterior, \(s_{t-1}\).

O caso multiplicativo é exposto na Equação 5.8.

\[ \begin{align} \text{Equação de previsão: } \hat y_{t+h} &= (l_t + hb_t) s_{t+h-m(k+1)}\\ \text{Equação do nível: } l_t &= \alpha \frac{y_t}{s_{t-m}} + (1-\alpha)(l_{t-1}+b_{t-1})\\ \text{Equação de tendência: } b_t &= \beta^*(l_t-l_{t-1})+(1-\beta^*)b_{t-1}\\ \text{Equação de sazonalidade: } s_t &= \gamma \frac {y_t}{(l_{t-1}-b_{t-1})}+(1-\gamma)s_{t-1}, \end{align} \tag{5.8}\]

A Figura 5.6 plota a série temporal de exportações do Brasil em US$ FOB, disponível em Resultados do Comércio Exterior Brasileiro - Dados Consolidados. Observa-se em geral tendência de crescimento, estagnação de 2011 a 2021, dada a crise político-econômica e a pandemia, seguida de nova tendência de crescimento nos anos pós-pandemia.

Figura 5.6: Exportações do Brasil

A Figura 5.7 expõe o gráfico sazonal da mesma série. O padrão cíclico não é tão claro, mas, especialmente nos últimos anos, nota-se maior volume de exportações de março a agosto.

Figura 5.7: Gráfico sazonal para a série de exportações do Brasil

A Figura 5.8 expõe modelos de suavização exponencial com tendência e sazonalidade para a série de exportações do Brasil. Os modelos foram estimados considerando dados de até 2022, sendo as previsões realizadas para 3 anos à frente. O resultado foi plotado a partir de 2020, para melhor visualização.

Figura 5.8: Modelos de suavização exponencial com tendência e sazonalidade para a série de exportações do Brasil

5.3.1 Suavização exponencial com tendência amortecida e sazonalidade

O método de Holt-Winters também pode considerar o amortecimento. O caso multiplicativo geralmente fornece bons resultados, sendo descrito conforme Equação 5.9.

\[ \begin{align} \text{Equação de previsão: } \hat y_{t+h} &= [l_t + (\phi+\phi^2+...+\phi^h)b_t] s_{t+h-m(k+1)}\\ \text{Equação do nível: } l_t &= \alpha \frac{y_t}{s_{t-m}} + (1-\alpha)(l_{t-1}+\phi b_{t-1})\\ \text{Equação de tendência: } b_t &= \beta^*(l_t-l_{t-1})+(1-\beta^*)\phi b_{t-1}\\ \text{Equação de sazonalidade: } s_t &= \gamma \frac {y_t}{(l_{t-1}-\phi b_{t-1})}+(1-\gamma)s_{t-1}, \end{align} \tag{5.9}\]

A Figura 5.9 expõe modelos de suavização exponencial com tendência amortecida e sazonalidade para a série de exportações do Brasil. O caso multiplicativo parece uma opção interessante com boa adequação aos períodos disponíveis, fazendo uma projeção à frente mais conservadora em comparação ao sem amortecimento.

Figura 5.9: Modelos de suavização exponencial com tendência amortecida e sazonalidade para a série de exportações do Brasil

Para melhor avaliação dos resultados plotados para os modelos com sazonalidade com e sem amortecimento, a Tabela 5.5 resume os resultados das métricas de erro dos modelos para previsão de 2020 à frente, conformando que o modelo multiplicativo com amortecimento apresentou melhores resultados.

Tabela 5.5: Resultados das métricas de teste para os modelos de suavização com tendência e sazonalidade com e sem amortecimento
modelo RMSE MAE MAPE
aditivo sazonal 2195052170 1834091706 6,62
aditivo sazonal amort 2384479823 2028508291 7,24
mult sazonal 1979894926 1550871084 5,54
mult sazonal amort 1961497440 1353227812 4,73

5.4 Modelos de ETS e definição de espaço de estados

Os modelos de suavização exponencial podem ser concebidos como modelos de espaço de estados, com uma equação de medição, que descreve os dados observados, e outras de estados, por exemplo as de nível, tendência e sazonalidade, que descrevem como os componentes ou estados mudam no horizonte de tempo. Outro aspecto importante ainda não abordado é que, além de considerar o erro aditivo, há a possibilidade de considerar o erro multiplicativo nos modelos de suavização exponencial.

Os modelos de suavização exponencial são geralmente denotados por ETS(E,T,S) para descrever as três componentes (erro, tendência, suavização). O erro pode ser aditivo ou multiplicativo, E={A,M}. A tendência pode ser não considerada (N), aditiva (A) ou aditiva amortecida (damped) (Ad), T ={N,A,Ad}. Por fim, a sazonalidade pode ser desconsiderada, ou pode ser aditiva ou multiplicativa, S={N,A,M}. Logo, há 18 modelos possíveis.

Retomando a suavização exponencial simples representada em componentes:

\[ \begin{align} \text{Equação de previsão: } \hat y_{t+h} &= l_t\\ \text{Equação de suavização: } l_t &= \alpha y_t + (1-\alpha)l_{t-1}.\\ \end{align} \]

Manipulando a Equação de suavização, tem-se o resultado apresentado na Equação 5.10.

\[ \begin{align} l_t &= l_{t-1} + \alpha(y_t-l_{t-1}) \\ &= l_{t-1} + \alpha e_t, \end{align} \tag{5.10}\]

onde \(e_t=y_t-l_{t-1}=y_t - \hat{y}_{t|t-1}\) é o resíduo no tempo \(t\). Pode-se, portanto, considerar que a observação de treino é igual ao nível anterior adicionado do erro, \(y_t=l_{t-1}+e_t\). Logo, deve-se assumir os resíduos como ruído branco, \(e_t = \varepsilon_t \sim NID(0,\sigma_\varepsilon^2)\) ou normalmente e identicamente distribuídos.

Quando o erro é multiplicativo no caso simples tem-se \(e_t=(y_t - \hat{y}_{t|t-1})/\hat{y}_{t|t-1}\).

A título de exemplo serão apresentados os modelos Holt-Winters aditivos com erro aditivo ETS(A,A,A) e multiplicativo ETS(M,A,A).

5.4.1 Modelo de Holt-Winters aditivo, ETS(A,A,A)

Para este caso, considerando o erro igual a \(\varepsilon_t =y_t - l_{t-1} + b_{t-1} + s_{t-m}\), tem-se o modelo exposto na Equação 5.11.

\[ \begin{align} y_t &= l_{t-1} + b_{t-1} + s_{t-m} + \varepsilon_t\\ l_t &= l_{t-1}+b_{t-1}+ \alpha \varepsilon_t\\ b_t &=b_{t-1} + \beta\varepsilon_t \\ s_t &= s_{t-m} + \gamma\varepsilon_t, \\ \end{align} \tag{5.11}\]

onde \(\beta=\beta^*\alpha\).

5.4.2 Modelo de Holt-Winters multiplicativo, ETS(M,A,A)

Para o caso com erro multiplicativo o erro com tendência e sazonalidade aditiva, o erro é calculado conforme a Equação 5.12.

\[ e_t= \frac{y_t - (l_{t-1} + b_{t-1} + s_{t-m})}{(l_{t-1} + b_{t-1} + s_{t-m} )} \tag{5.12}\]

O modelo fica conforme a Equação 5.13.

\[ \begin{align} y_t &= (l_{t-1} + b_{t-1} + s_{t-m} ) (1+\varepsilon_t)\\ l_t &= l_{t-1}+b_{t-1}+ \alpha (l_{t-1}-b_{t-1}-s_{t-m})\varepsilon_t\\ b_t &=b_{t-1} + \beta(l_{t-1} + b_{t-1} + s_{t-m} ) \varepsilon_t \\ s_t &= s_{t-m} + \gamma(l_{t-1} + b_{t-1} + s_{t-m} ) \varepsilon_t\\ \end{align} \tag{5.13}\]

Aqui foram apresentados apenas alguns modelos, sendo dois deles explicitados em notação de espaço de estados. RJ Hyndman e Athanasopoulos (2021) explicitam todos os 18 modelos possíveis de suavização exponencial com a notação de estado de espaços.

5.5 Previsão e intervalo de confiança com ETS

A previsão com modelos de ETS pode ser realizada iterando as equações à frente, \(t=T+1, ..., T+h\). Por exemplo, para o modelo ETS(M,A,A) a previsão para o primeiro período não disponível seria \(\hat y_{T+1} = l_{T} + b_{T} + s_{T}\).

O intervalo de confiança pode ser calculado conforme já exposto anteriormente, \(\hat{y}_{T+h|T} \pm1,96 \hat\sigma_h\), com 1,96 sendo o valor do quantil da distribuição \(z\) para 0,95 de confiança. O desvio-padrão depende do método ETS usado e a estimativa é bastante complexa. Rob Hyndman et al. (2008) fornece os cálculos detalhados.

A Figura 5.10 apresenta novamente as séries temporais de exportação, importação e produção de fertilizantes no Brasil em um mesmo painel gráfico, viabilizando a comparação entre estas. Observa-se de forma mais clara a preponderância das importações, especialmente nos últimos anos.

Figura 5.10: Exportação, importação e Produção de fertilizantes no Brasil

A série do volume de fertilizantes disponível no Brasil pode ser obtida somando os volumes de importação e exportação e subtraindo o volume de exportações. Tal série é plotada na Figura 5.11. Observa-se tendência de crescimento com variação sazonal homogênea no tempo. O ano de 2022 apresentou disponibilidade mais baixa, possivelmente em reflexo à pandemia.

Figura 5.11: Disponibilidade de fertilizantes no Brasil

A Figura 5.12 expõe o gráfico da série de disponibilidade de fertilizantes para o Brasil. Observa-se aumento da disponibilidade ao longo dos anos e maior disponibilidade no segundo semestre dos anos de observação.

Figura 5.12: Gráfico sazonal para Disponibilidade de fertilizantes

A Figura 5.13 exibe novamente a série com resultados de previsões a partir de 2022 para 4 distintos modelos ETS, aditivos e multiplicativos, com e sem amortecimento na tendência.

Figura 5.13: Previsão para Disponibilidade de fertilizantes usando distintos modelos ETS

A Tabela 5.6 resume o desempenho dos modelos considerando os dados de 2022 à frente. Observa-se que o modelo aditivo com amortecimento, ETS(A,Ad,A), apresentou melhor resultado para todas as métricas de erro.

Tabela 5.6: Desempenho dos modelos ETS para prever a disponibilidade de fertilizantes
modelo RMSE MAE MAPE
ETS(A,A,A) 835934,1 703718,4 20,76
ETS(A,Ad,A) 679257,2 538313,3 15,96
ETS(M,A,M) 838989,4 706033,3 20,06
ETS(M,Ad,M) 765089,4 573111,9 16,59

A Figura 5.14 expõe os gráficos de resíduos para o modelo ETS(A,Ad,A). Observa-se padrão aleatório na série residual, bom ajuste à normal e autocorrelação residual com significância para duas defasagens apenas. Para esclarecer se esta autocorrelação pode representar um problema, a Tabela 5.7 exibe o resultado do teste. Não se pode garantir a ausência de autocorrelação residual.

Figura 5.14: Gráficos de resíduos para o modelo ETS(A,Ad,A)
Tabela 5.7: Teste de Ljung-Box para o modelo ETS(A,Ad,A) para a série de fertilizantes
estatística pvalor
32,92371 0,0343968

Finalmente, a Figura 5.15 expõe a previsão usando o modelo ETS(A,Ad,A) para quatro anos à frente. Observa-se boa aproximação às observações recentes, especialmente nos últimos dois anos.

Figura 5.15: Previsão com intervalo de confiança via ETS(A,Ad,A) para disponibilidade de fertilizantes

5.6 Implementação em R

A seguir são apresentadas boa parte das implementações na linguagem R para obter os dados, gráficos e análises expostos no presente capítulo.

Carregando pacotes.

library(ggplot2)
library(tsibble)
library(fable)
library(fabletools)
library(forecast)
library(feasts)
library(lubridate)
library(dplyr)
library(tidyr)
library(knitr)
library(ipeadatar)
theme_set(theme_bw())

Série do IPCA a partir de 2019. Esta série já foi apresentada no primeiro capítulo.

ipca_2019_ <- ipca_ts |> 
  filter_index("2019-01"~.)

Modelo de suavização exponencial simples para a série do IPCA. Usa-se a função ETS e deve-se definir os tipos de termos de erro, tendência e sazonalidade com error, trend e season.

fit_ipca <- ipca_2019_  |>
  model(ETS(ipca ~ error("A") + trend("N") + season("N")))

tidy(fit_ipca)[,-1]

Previsão 5 meses à frente.

fc_ipca <- fit_ipca |>
  forecast(h = 5)
fc_ipca

Plotando a série com os valores ajustados e a previsão.

fc_ipca |> 
  autoplot(ipca_2019_) +
  geom_line(aes(y = .fitted), col="orangered",
            data = augment(fit_ipca)) +
  labs(y = "IPCA", x = "", 
        title="IPCA no Brasil a partir de 2019") +
  guides(colour = "none")

Valores ajustados e observados para os últimos meses da série.

augment(fit_ipca) |> 
  tail()

População projetada no Brasil.

pop_br <- read.csv("populacao_br.csv", header=T)
pop_br <- pop_br |> filter(ano<=2010)

pop_ts <- pop_br |>
  mutate(data = year(as.Date(as.character(ano),format="%Y"))) |>
  select(-ano) |>
  as_tsibble(index=data)
pop_ts |> autoplot(pop) +
  labs(title = "População projetada do Brasil",
       y = "Pessoas", x="")

Modelo de suavização exponencial com tendência (método de Holt).

fit <- pop_ts |>
  model(
    `Holt` = ETS(pop ~ error("A") + trend("A") + season("N")),
    `Holt amortecido` = ETS(pop ~ error("A") +
                       trend("Ad", phi = 0.9) + season("N"))
  )

tidy(fit)

Previsão com modelos de Holt e Holt amortecido.

fc_pop <- fit |>
  forecast(h = 15) 

fc_pop |>
  autoplot(pop_ts, level = NULL) +
  labs(title = "População do Brasil",
       y = "Milhões",x="") +
  guides(colour = guide_legend(title = "Forecast"))

Série de emissões de CO2.

emissoes <- read.csv("emissoes.csv", header = T)

emissoes_ts <- emissoes |>
  mutate(Ano = year(as.Date(paste(Ano,"01 01"), format = "%Y %m %d"))) |>
  as_tsibble(index = Ano)

Modelo de Holt e Holt amortecido para Emissões de Co2 pela indústria.

emissoes_ts |>
  model(
    `Holt` = ETS(Industria ~ error("A") +
                       trend("A") + season("N")),
    `Holt amortecido` = ETS(Industria ~ error("A") +
                       trend("Ad", phi = 0.90) + season("N"))
  ) |>
  forecast(h = 15) |>
  autoplot(emissoes_ts , level = NULL) +
  labs(title = "Emissões de gases de efeito estufa pela indústria",
       y = "Gg de CO2e",x="") +
  guides(colour = guide_legend(title = "Previsão"))

Seja a série de exportações do Brasil. A série já foi lida no capítulo 2. Gráfico sazonal da série.

exp_ts |> gg_season(Exp) +
  labs(x="",y="Exportações [US$ FOB]: Gráfico sazonal")

Modelos de suavização exponencial com sazonalidade aditiva e multiplicativa para exportações e com tendência amortecida ou não.

fit_export <- exp_ts |> 
  filter(year(date) <=2022) |>
  model(
    `ETS(A,A,A)` = ETS(Exp ~ error("A") + trend("A") +
                                                season("A")),
    `ETS(M,A,M)` = ETS(Exp ~ error("M") + trend("A") +
                                                season("M")),
    `ETS(A,Ad,A)` = ETS(Exp ~ error("A") + trend("Ad") +
                                                season("A")),
    `ETS(M,Ad,M)` = ETS(Exp ~ error("M") + trend("Ad") +
                                                season("M"))
  )
fc_export <- fit_export |> forecast(h = "3 years")
fc_export |>
  autoplot(exp_ts |> 
  filter(year(date) >=2020), level = NULL) +
  labs(title="Suavização com tendência e sazonalidade para a série de exportações",
       y="") +
  guides(colour = guide_legend(title = "Previsão"))

A série de disponibilidade de fertilizantes é obtida considerando as séries de exportação, importação e produção de fertilizantes, já apresentadas no capítulo 4.

fert_ <- fert |> 
  pivot_wider(names_from=id,
              values_from=valor)

fert_disp <- fert_ |>
  filter_index("2013-01"~.) |>
  mutate(disponibilidade = producao+importacao-exportacao)

Plotando a série.

Gráfico sazonal.

fert_disp |>
  gg_season(disponibilidade, labels = "right",
            labels_repel = T)

Estimando 4 modelos ETS para a disponibilidade até 2021.

fit_disp <- fert_disp |> 
  filter_index(~"2021-12") |>
  model(
    `ETS(A,A,A)` = ETS(disponibilidade ~ error("A") + trend("A") + season("A")),
    `ETS(M,A,M)` = ETS(disponibilidade ~ error("M") + trend("A") + season("M")),
    `ETS(A,Ad,A)` = ETS(disponibilidade ~ error("A") + trend("Ad") + season("A")),
    `ETS(M,Ad,M)` = ETS(disponibilidade ~ error("M") + trend("Ad") + season("M"))
  )

Previsão de 2022 até o fim de 2025.

fc_disp <- fit_disp |> 
  forecast(h = "4 years")

fc_disp |>
  autoplot(fert_disp, level = NULL) +
  labs(title="Previsão via ETS para disponibilidade de fertilizantes",
       y="") +
  guides(colour = guide_legend(title = "Modelo"))

Avaliando a acuracidade dos modelos usando dados de 2022 até junho de 2025.

accuracy(fc_disp, fert_disp |> 
           filter_index("2022-01"~.)) |>
  select(.model, RMSE, MAE, MAPE)

Gráficos de resíduos do melhor modelo.

fit_disp |>
  select(`ETS(A,Ad,A)`) |>
  gg_tsresiduals()

Teste de Ljung-Box para os resíduos do melhor modelo. Consideram-se 4 termos no modelo no caso amortecido.

augment(fit_disp |>
          select(`ETS(A,Ad,A)`)) |>
  features(.innov, ljung_box, dof = 4, lag = 24)

Previsão com intervalo de confiança para o melhor modelo.

fc_disp |>
  filter(.model=="ETS(A,Ad,A)") |>
  autoplot(fert_disp) +
  labs(title="Previsão via ETS(A,Ad,A) para disponibilidade de fertilizantes",
       y="")

5.7 Exercícios propostos

  1. Seja a série de produção de grãos. Separe os últimos cinco anos para testar o modelo. Aplique um modelo de suavização exponencial com tendência. Considere também o caso amortecido com \(\phi = 0,9\) e \(\phi=0,95\).
  1. Avalie os resíduos dos modelos obtidos.
  1. Calcule as métricas de ajuste para os dados de teste e escolha o melhor modelo.
  1. Seja a série de volume de exportações do Brasil exposta neste capítulo. Considerando os modelos obtidos de suavização exponencial com sazonalidade aditiva e multiplicativa e com tendência simples ou amortecida, avalie os resíduos de todos os modelos. Calcule as métricas de teste para os dados de 2023 à frente e escolha o melhor modelo.

Seja a série de produção de asfalto obtida conforme segue a partir da série de derivados do petróleo do capítulo 4.

asfalto <- petro_ts |>
  filter(derivado == "asfalto") |>
  select(!derivado)

asfalto |> autoplot(volume)
  1. Filtre a série até o fim do ano de 2023 e estime 8 modelos ETS usando sazonalidade aditiva ou multiplicativa, tendência com ou sem amortecimento e erro aditivo ou multiplicativo e plote os resultados.
  1. Faça a previsão 2 anos à frente para a série.
  1. Avalie o desempenho dos modelos considerando observações disponíveis de 2024.
  1. Avalie os resíduos do modelo que apresentou menor erro.
  1. Faça o teste de Ljung-Box para o melhor modelo.

Seja a série de passageiros em vôos do Brasil já apresentada no capítulo 3.

  1. Filtre a série até o fim do ano de 2017 e estime 8 modelos ETS usando sazonalidade aditiva ou multiplicativa, tendência com ou sem amortecimento e erro aditivo ou multiplicativo e plote os resultados.
  1. Faça a previsão 2 anos à frente para a série.
  1. Avalie o desempenho dos modelos considerando observações disponíveis de 2024.
  1. Avalie os resíduos do modelo que apresentou menor erro.
  1. Faça o teste de Ljung-Box para o melhor modelo.