Análise de Séries Temporal: Casos Acumulados de Covid no Brasil

1 Introdução

Uma série temporal é uma coleção de observações feitas sequencialmente ao longo do tempo, as séries temporais existem nas mais variadas áreas de aplicação, como: finanças, marketing, economia, seguros, demografia, ciências sociais, meteorologia, energia, epidemiologia, etc.

A utilização da análise de series temporais nos permite obter varios resultados a respeito dos dados ao longo do tempo, dentre os mais importantes temos a possibilidade de realizar previsões de valores futuros assim como descrever as propriedades da serie, na qual pode-se ser dividido em padrão de tendência, variação sazonal, dados discrepantes e estacionaridade.

Podemos explicar as propriedades das series da seguinte forma :

• Sazonalidade: Se refere ao comportamento da série temporal tende a se repetir a cada \(s\) períodos de tempo. Por exemplo, vendas mensais de brinquedos terão um pico no mês de dezembro e talvez um pico secundário em outubro. Este padrão possivelmente se repetirá ao longo de vários anos.

A Sazonalidade pode ser dividido em dois tipos, sendo ele Aditiva e Multiplicativa. Na adtiva a série apresenta flutuações sazonais mais ou menos constantes não importando o nível global da série. Já na multiplicativa o tamanho das flutuações sazonais varia dependendo do nível global da série.

• Tendência: Globalmente, uma série pode exibir tendência de crescimento (ou decrescimento) com vários possíveis padrões. Como o crescimento linear ou o crecimento exponencial.

No Crescimento linear, por exemplo, a cada ano o aumento esperado nas vendas de um certo brinquedo é de 1 milhão de reais. Ou seja, é quando se espera um aumento de venda X em determinado ano. Já no crescimento exponencial, por exemplo, a cada ano as vendas de um certo brinquedo aumentam de um fator 1.3. Ou seja, é quando se espera um aumento de venda X ao longo de cada ano.

2 Materiais e Metodos

2.1 Materiais

Nesse trabalho a análise de séries temporal foi aplicada na área epidemiologica, com um banco de dados real retirados do site Saude covid gov. O banco de dados em estudo apresentava 16 variaveis, sendo elas:

• Regiao;

• Estado;

• Municipio;

• Coduf;

• Codmun;

• CodRegiao;

• NomeRegiao;

• Data;

• Semana;

• Casos acumulados;

• Casos novos;

• Obitos acumulados;

• Obitos novos;

• Recuperados novos;

• Recuperados em acompanhamento.

Dentre todas as variaveis apresentadas as escolhidas para estudos foram os casos acumulados em todo o territorio brasileiro, com seu t (tempo) separado em meses.

2.2 Métodos

Uma série temporal pode ser denominada como contínua ou discreta na qual cada uma é apresentada por uma denotação diferente.

Uma série temporal é contínua quando as observações são feitas continuamente no tempo. A série temporal será denotada por \(\{X(t) : t ∈ T\}, T = \{t : t_1 < t < t_2\}.\)

Já uma série temporal é discreta se as observações são feitas em tempos especícos, geralmente equiespaçados. A série temporal será denotada por \(\{X(t) : t ∈ T\}, T = \{t_1, t_2, . . . , t_n\}\).

Podemos realizar varias formas de suavização nas série, porém cada série apresenta uma forma de suavização melhor, no caso da série estudada nesse trabalho as melhores suavizações foram as de medias moveis assim como de holt, modelo na qual apenas a tendecia interfere na série. Seque a seguinte explicações para as analises mencionadas acima

Na técnica de media móvel consiste em calcular a média aritmédica das \(r\) observações mais recentes, isto é,

\[M_t =\frac{Z_t + Z_t−1+...+Z_{t-r+1}}{r}\]

A previsão de todos os valores futuros é dada pela ultima média movel calculada por:

\[\hat{Z_t}(h)=M_t,\forall>0,\]

Holt criou uma extensão ao método de suavização simples que permite prever dados com tendência que possui dois parâmetros α e β. Matematicamente, temos:

\[\hat{y}_{t+h}=l_t + hT_t\] \[l_t = \alpha y_t + (1 - \alpha)(l_{t-1} + T_{t-1})\]

\[T_t = \beta (l_t - l_{t-1}) + (1 - \beta)T_{t-1}\]

Onde \(T_t\) corresponde a uma estimativa do componente de tendência e \(l_t\) uma estimativa do componente de nível da série no período t. Assim como α, o parâmetro β também está definido no intervalo [0,1].Recomenda-se que
\(l_0\) e \(T_0\) sejam inicializados como \(y_1\) e \(y_2\)\(y_1\), respectivamente.

As vantagens são o facil entendimento, aplicação não dispendiosa (caro). A desvantagem principal é a diculdade em determinar os valores mais apropriados das duas contates de suavização, A e C.

Modelo de regressão

\[Yt = α + βx_t + a_t,t = 1, . . . , N,\]

com f(t) = α + βxt, sendo \(x_t\) uma quantidade (fixa) observável.Novamente, f(t) é uma função linear dos parâmetros.Nestes casos, onde f(t) é uma função linear dos parâmetros, estes podem ser estimados usando-se o método de mínimos quadrados.

Considerando o modelo já apresentado para tendência, vamos acrescentar uma componente sazonal da seguinte forma:

\[Z_t = T_t + S_t + a_t,\]

onde \(T_t\), \(S_t\), e \(a_t\). Assim, um procedimento de ajustamento sazonal consiste em obter estimativas \(S_t\). calcularda com :

\[Z^{SA}_t = Z_t − S^t.\]

3 Aplicação

3.1 Série Temporal

Primeiramente chamamos os pacotes que seram utilizados na analise:

library(readxl)
library(forecast)
library(fpp)
library(TSA)
library(TTR)

Após chamar os pacotes importamos o banco de dados que sera estudado:

stcovid <- read_excel("Serie covid.xlsx")

Importado o banco de dados tranformamos os valores de casos acumulados em uma série tempora (ts) e geramos um “t” defenindo o tempo da serie temporal:

casos<- ts(stcovid$`Casos acumulados`, start = c(2020,2), 
   frequency = 12)
t<-1:33

Com isso já é possivel gerar o grafico do numero de casos acumulados durante t meses:

plot.ts(casos,xlab = "Meses",ylab = "Casos de Covid");title("Análise de serie temporal para os casos 
acumulados de Covid no Brasil" )

Logo podemos concluir que a série apresenta uma tendencia.

Além de gerar o grafico da série podemos estimar com uma média móvel simples, nesse caso foi realizado uma com ordem 3 (meses) e outra com ordem 6 (meses):

casosMMS <- SMA(casos,n=3)
casosMMS1 <- SMA(casos,n=6)
plot.ts(casos,lwd = 3,xlab = "Meses",ylab = "Casos de Covid");lines(casosMMS, add=T, pch = 20, col = 2, lwd = 3);lines(casosMMS1, add=T, pch = 20, col = 4, lwd = 3);title("Análise de serie temporal para os casos 
acumulados de Covid no Brasil")

A linha vermelha representa a estimativa da movel com 3 meses e a azul a estimatva da media movel com 6 meses.

3.2 Realizando os teste para verificar as propriedades da serie

Primeiramente realizamos o teste de tendência, na qual como foi visto no grafico podemos concluir que a serie possui tendência, mas pra confirmar realizamos o runs.test, teste no qual nos fornece as seguintes hipoteses:

\(H_0\) Não possui um comportamento de tendência

\(H_1\) Possui um comportamento de tendência

library(randtests)
runs.test(casos)
## 
##  Runs Test
## 
## data:  casos
## statistic = -5.391, runs = 2, n1 = 16, n2 = 16, n = 32, p-value =
## 7.008e-08
## alternative hypothesis: nonrandomness

Com isso podemos concluir que com p value= 7.008e-08 < 0.05, logo ao nivel de 5% de signifcância rejeitamos a hipotese \(H_0\), portanto série possui tendência.

Também se tem interresse verificar se a serie apresenta sazonalidade, para isso se utiliza o comando kruskal.test, na qual colocamos a série em relação ao tempo. O teste formula as seguintes hipoteses:

\(H_0\) Não possui sazonalidade

\(H_1\) Possui sazonalidade

kruskal.test(casos ~ t)
## 
##  Kruskal-Wallis rank sum test
## 
## data:  casos by t
## Kruskal-Wallis chi-squared = 32, df = 32, p-value = 0.4667

Após isso temos p value =0.4667 > 0.05, logo com 5% de significância não rejeitamos a hipotese \(H_0\), portanto temos evidências estatisticas de que a série não possui sazonalidade.

3.3 Analise de regressão polinomial

Antes de realizar a previsão do modelo, podemos realizar uma analise de Regressão Polinomial de Grau 1 :

lm(stcovid$`Casos acumulados`~t)
## 
## Call:
## lm(formula = stcovid$`Casos acumulados` ~ t)
## 
## Coefficients:
## (Intercept)            t  
##    -4209701      1244373

Com isso podemos concluir que Y= -4209701 + 1244373*t, onde O intercepto, β_0= -4209701 e a mudança na resposta média a cada unidade de alteração em t (tempo),quando as demais variáveis são mantidas fixas. β_1= 1244373.

De forma pratica poderiamos estimar o valor , por exemplo, para o t=5, seria dado da seguinte forma :

# Y= -4209701 + 1244373*t
 -4209701 +  1244373*5
## [1] 2012164

Logo se espera que no més 5 o numero de casos acumulados seja de 2012164.

Realizado uma analise de regressão simples partimos para a previsão da série, na qual realizamos um modelo ajustado da regressão da série temporal:

mod_ajustado <- tslm(casos~trend)
forecast(mod_ajustado, h=4)
##          Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## Nov 2022       38098969 36226532 39971407 35182614 41015325
## Dec 2022       39343342 37461211 41225473 36411889 42274795
## Jan 2023       40587715 38695391 42480039 37640385 43535044
## Feb 2023       41832087 39929078 43735097 38868116 44796059

Após realizar o forecast podemos observar os valores esperados para os quatro meses sequintes, tanto com o nivel de 80% quanto de 90% de confiança.

Plotando a previsão em relação a regressão polinomial:

plot(forecast(mod_ajustado, h=4))

3.4 Suavização da série

Como visto nos testes realizados anteriormente a série apresenta apenas tendência crecente, com isso o melhor método de suavização que podemos ultilizar é o de holt.

casosseriesforecasts <- HoltWinters(casos, gamma=FALSE)
casosseriesforecasts
## Holt-Winters exponential smoothing with trend and without seasonal component.
## 
## Call:
## HoltWinters(x = casos, gamma = FALSE)
## 
## Smoothing parameters:
##  alpha: 1
##  beta : 1
##  gamma: FALSE
## 
## Coefficients:
##       [,1]
## a 34731539
## b    59015

Podemos interpretar os valore de alpha e beta da sequinte forma:

• Alpha= 1 temos que apenas o presente influencia.

• Beta =1 temos que os passos presente influenciam mais na tendencia do que os passos passados.

Com isso podemos gerar o grafico da série com sua suavização:

plot(casos);lines(casosseriesforecasts$fitted[,1],
      pch = 18, col = "darkgreen", 
      type = "b", 
      lty = 2, lwd = 2);title("Suavização do Modelo para Holt" )

Logo podemos ver que a suavização foi muito eficienete pois seguia os dados da serie em praticamente todos os meses.

Com o intuito de prever resultados futuros foi utilizado o forescast para os proximos 6 meses:

casosseriesforecasts2 <- forecast(casosseriesforecasts, h=6)
plot(casosseriesforecasts2)

Porém sua previção não apresentou uma eficiencia muita boa, com isso tentamos realizar a mesma previção sendo que desta fez através da função ETS , com o intuito de diminuir o erro com isso gerado o seguinte grafico:

casosseriesforecasts3 <- forecast(casosMMS, h=6)
plot(casosseriesforecasts3)

Desta maneira podemos observar uma pequena melhora na previsão. Através dela também podemos confirmar que a série não possui sazonalidade, assim como sua tendência é aditiva.

4 Conclusão

Por fim podemos concluir que a analise da série dos dados de covid foi eficiente ,visto que conseguimos encontrar suas propriedades assim como o seu melhor método de suavização e sua melhor previsão.