Você está na página 1de 39

Análise de séries temporais com aplicações no

software R

Marcelo Bourguignon Pereira


SUMÁRIO

Página

1 Introdução 3
2 Alguns conceitos básicos 4
2.1 Sazonalidade e tendência . . . . . . . . . . . . . . . . . . . . . 4
2.2 Dados de contagem . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Modelos probabilísticos . . . . . . . . . . . . . . . . . . . . . . 4
2.4 Processos estacionários . . . . . . . . . . . . . . . . . . . . . . 5
2.5 Diferenciação . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.6 Dados atípicos (Outliers) . . . . . . . . . . . . . . . . . . . . . 6
2.7 Funções de autocorrelação e autocorrelação parcial . . . . . . 6
3 Modelagem de Box-Jenkins 7
3.1 Modelos autorregressivos . . . . . . . . . . . . . . . . . . . . . 8
3.2 Modelos de médias móveis . . . . . . . . . . . . . . . . . . . . 9
3.3 Modelos autorregressivos e de médias móveis . . . . . . . . . . 10
3.4 Modelos ARIMA e SARIMA . . . . . . . . . . . . . . . . . . . 11
3.5 Modelos ARMAX . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.6 Critérios de identicação de p e q . . . . . . . . . . . . . . . . 12
3.6.1 Utilizando ACF e PACF . . . . . . . . . . . . . . . . . 12
3.6.2 Utilizando critérios de informação . . . . . . . . . . . . 12
3.6.3 Avaliação de previsão . . . . . . . . . . . . . . . . . . . 13
3.7 Adequacidade . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.7.1 Correlograma . . . . . . . . . . . . . . . . . . . . . . . 14
3.7.2 Teste de Box-Pierce . . . . . . . . . . . . . . . . . . . . 15
3.7.3 Teste da raiz unitária . . . . . . . . . . . . . . . . . . . 16
3.8 Modelos de Box-Jenkins no R . . . . . . . . . . . . . . . . . . 17
3.8.1 Adequacidade do modelo: vericação das suposições . . 22
4 Modelos de Suavização Exponencial 24
4.1 Alisamento exponencial simples (AES) . . . . . . . . . . . . . 25
4.2 Alisamento exponencial de Holt (AEH) . . . . . . . . . . . . . 26
4.3 Alisamento exponencial de Holt-Winters (AEHW) . . . . . . . 27
4.4 Modelos de suavização exponencial no R . . . . . . . . . . . . 28
5 Script 36
1 Introdução

Eventos da natureza, índices econômicos, consequências do desenvolvi-


mento de uma sociedade, entre outros fatos, produzem informações que ne-
cessitam de uma análise sosticada de dados para entender a dinâmica de
tais fenômenos e, assim, realizar inferências que possibilitam a tomada de
decisões com certa precisão. Em quase todas as áreas do conhecimento, exis-
tem fenômenos de interesse que se desenvolvem e variam ao longo do tempo.
A análise de dados observados em diferentes instantes de tempo, em geral,
conduz a problemas novos que não possuem uma metodologia padrão para
serem solucionados. A simples introdução de correlação pela amostragem
de pontos adjacentes no tempo pode restringir gravemente a aplicabilidade
dos métodos estatísticos mais convencionais que supõem independência das
observações. A análise de séries temporais é composta pelo conjunto de
ferramentas apropriadas para trabalhar no contexto de observações correla-
cionadas no tempo. O estudo de séries temporais é algo que sempre esteve
em evidência na literatura estatística, onde o principal interesse é obter pre-
visões de qualidade baseadas em informações passadas coletadas ao longo do
tempo.
Uma série temporal é uma coleção de observações feitas sequencialmente
ao longo do tempo. A característica mais importante deste tipo de dado
é que as observações vizinhas são dependentes e estamos interessados em
analisar e modelar esta dependência. Enquanto em modelos de regressão
a ordem das observações não tem muita importância para a análise, em
séries temporais a ordem dos dados é de extrema relevância. Dados de séries
temporais surgem em vários campos do conhecimento, como na economia
(preços diários de ações, taxa mensal de desemprego e produção industrial),
medicina (eletrocardiograma e eletroencefalograma), dentre outros.
A análise de séries temporais é atualmente impensável sem o auxílio com-
putacional. Por esse motivo, destacamos que nesta apostila todas as guras
e o processo de programação foram realizadas através do ambiente de pro-
gramação R, versão 3.5.0 para a plataforma Windows. R é um ambiente
integrado que possui grandes facilidades para a manipulação de dados, a
geração de grácos e a modelagem estatística em geral.

3
2 Alguns conceitos básicos

2.1 Sazonalidade e tendência

Muitas séries temporais exibem um comportamento que tende a se repetir


a cada s períodos de tempo. Por exemplo, é natural esperar que as vendas
mensais de brinquedos terão um pico no mês de dezembro e talvez um pico
secundário em outubro. Séries que apresentam estes movimentos recorren-
tes de periodicidade apresentam sazonalidade, esta podendo ser: Aditiva,
quando a série apresenta utuações sazonais mais ou menos constantes não
importando o nível global da série; ou multiplicativa, quando o tamanho das
utuações sazonais varia dependendo do nível global da série.
No que diz respeito à tendência, a série pode exibir um crescimento (ou
decrescimento) global com vários possíveis padrões, a saber: Crescimento
linear, crescimento exponencial e crescimento amortecido.

2.2 Dados de contagem

Quando as variáveis aleatórias que compõem o processo seguem uma dis-


tribuição contínua, diz-se que o processo é de marginal contínua como, por
exemplo, os processos ARMA (Box & Jenkins, 1970). Se as variáveis aleató-
rias que compõem o processo seguirem uma distribuição discreta, o processo
é dito de marginal discreta e são conhecidos como processos de contagem ou
processos de valores inteiros.

2.3 Modelos probabilísticos

Na próxima seção, iremos descrever diversos modelos que se adequam


aos dados de séries temporais. Os referidos modelos são denominados de
processos estocásticos. Matematicamente um processo estocástico pode ser
denido como uma coleção de variáveis aleatórias ordenadas no tempo e
denidas em um conjunto de pontos Π, que pode ser contínuo ou discreto.
Iremos denotar a variável aleatória no tempo t por y(t) no caso contínuo
(usualmente −∞ < t < ∞) e por yt no caso discreto (usualmente t =
0, ±1, ±2, . . . ). O conjunto de possíveis valores do processo é chamado de
espaço de estados e pode ser discreto ou contínuo.

4
Na análise de séries temporais a situação é bem diferente da maioria
dos problemas estatísticos. Embora seja possível variar o tamanho da série
observada, usualmente é impossível obter mais do que uma observação em
cada instante de tempo. Assim, tem-se apenas uma realização do processo
estocástico e uma única observação da variável aleatória no tempo t. Uma
maneira de descrever um processo estocástico é através da distribuição de
probabilidade conjunta de y(t1 ), . . . , y(tk ) para qualquer conjunto de tempos
t1 , . . . , tk e qualquer valor de k . Esta é uma tarefa extremamente compli-
cada e na prática costuma-se descrever um processo estocástico através das
funções média, variância e autocovariância, que são dadas para o caso contí-
nuo por, média µ(t) = E[y(t)], variância σ 2 (t) = V ar[y(t)] e autocovariância
γ(t1 , t2 ) = E[y(t1 ) − µ(t1 )][y(t2 ) − µ(t2 )], sendo que denições similares se
aplicam ao caso discreto.

2.4 Processos estacionários

Uma importante classe de processos estocásticos são os chamados proces-


sos estacionários. Uma série temporal é dita ser estritamente (fortemente)
estacionária se a distribuição de probabilidade conjunta de y(t1 ), . . . , y(tk )
é a mesma de y(t1 + h), . . . , y(tk + h), ou seja, o deslocamento da origem
dos tempos por uma quantidade h não tem efeito na distribuição conjunta,
dependendo apenas dos intervalos entre t1 , . . . , tk .
Na prática, é muito difícil utilizar a denição de estacionariedade estrita
e costuma-se denir estacionariedade de uma forma menos restrita. Um
processo estocático {y(t)} é dito ser estacionário de segunda ordem ou fraca-
mente estacionário se a sua média é constante e sua função de autocovariância
depende apenas da defasagem, isto é

E[y(t)] = µ e Cov[y(t), y(t + h)] = γ(h).


Nenhum outro tipo de suposição é feita a respeito dos momentos de ordens
mais altas. Além disso, fazendo h = 0, temos V ar[y(t)] = γ(0), ou seja, a
variância do processo. É importante destacar que em processos normais
a distribuição ca completamente caracterizada pelos primeiro e segundo
momentos, isto é, por µ(t) e γ(t1 , t2 ). Neste caso, estacionariedade fraca
implica estacionariedade estrita. Além disso, estacionaridade forte implica
estacionariedade fraca desde que os dois primeiros momentos sejam nitos.

5
2.5 Diferenciação

Um tipo especial de ltro muito útil para remover uma componente de


tendência polinomial consiste em diferenciar a série até que ela se torne esta-
cionária. Para dados não-sazonais, a primeira diferença é, em geral, suciente
para induzir estacionariedade aproximada. A nova série x1 , . . . , xT é formada
a partir da série original y2 , . . . , yT , onde

xt = yt − yt−1 = ∆yt .
Diferenciação de primeira ordem é a mais utilizada, sendo que ocasionalmente
uma diferenciação de segunda ordem pode ser requerida. De modo geral, a
n-ésima diferença de Xt é ∆n Xt = ∆(∆n−1 Xt ).
No R podemos tomar a primeira de uma série através do comando di().
Com esta função podemos usar diferenças até maiores, ou seja, podemos
tomar a n-ésima diferença. Abaixo estão alguns exemplos de como usar este
comando:
− A primeira diferença da série xt é calculada como xt − xt−1 . Para obter
isso no R digite di(x, lag=1, dierences=1) ou, de maneira mais simples,
di(x);
− A segunda diferença de xt é calculada como [(xt −xt−1 )−(xt−1 −xt−2 )].
No R podemos escrever di(x,1,2);
− A primeira diferença sazonal, no caso em que fxtg representa uma
série trimestral, é calculada como xt − xt−4 . No R obtemos isso ao digitar
di(x,1,4) ou simplesmente di(x, 4).

2.6 Dados atípicos (Outliers)

Frequentemente, em séries temporais, são encontradas observações que


surgem como discordantes face às restantes em consequência a erros, por
exemplo, de medição, por inuência de intervenções exógenas, de alterações
inesperadas em certas condições de um sistema físico, entre outras. Essas
observações discordantes são, em geral, denominadas como outliers.

2.7 Funções de autocorrelação e autocorrelação parcial

A função de autocovariância pode ser escrita como γ(h), em que


γ(h) = E[y(t) − µ][y(t + h) − µ] = Cov[y(t), y(t + h)]

6
é chamado de coeciente de autocovariância de defasagem h. Note que a
magnitude de γ(h) depende da escala em que y(t) está sendo mensurada.
Por isto, padroniza-se a função de autocovariância dando origem à função de
autocorrelação
γ(h)
ρ(h) = ,
γ(0)
que mede a correlação entre y(t) e y(t + h).
A função de autocorrelação (ACF) de um processo estocástico estacio-
nário é uma ferramenta importante para analisar as propriedades de uma
determinada série. Seguem ainda as seguintes propriedades facilmente veri-
cáveis:

1 A correlação entre y(t) e y(t + h) é a mesma que entre y(t) e y(t − h),
ou seja ρ(h) = ρ(−h);
2. −1 < ρ(h) < 1;
3. Embora um processo estocástico tenha uma estrutura de autocovariân-
cia única, em geral, o contrário não é verdadeiro. É possível encontrar
vários processos com a mesma função de autocorrelação, o que diculta
ainda mais a interpretação do correlograma.

A idéia de autocorrelação pode ser estendida. Se medirmos a correlação


entre duas observações seriais, yt e yt−k , eliminando a dependência dos termos
intermediários, yt−1 , yt−2 , . . . , yt−k+1 , temos o que se denomina autocorrelação
parcial, representada por:
Cov(yt , yt−k |yt−1 , yt−2 , . . . , yt−k+1 ).

3 Modelagem de Box-Jenkins

Uma metodologia bastante utilizada na análise de modelos paramétricos


é conhecida como abordagem de Box & Jenkis (1970). Essa metodologia
consiste em ajustar modelos autorregressivos integrados de média móveis,
ARIMA(p, d, q ), e suas variações a um conjunto de dados. A ênfase está
não na construção de modelos com equações únicas ou simultâneas, mas na
análise das propriedades probabilísticas, ou estocásticas, das séries temporais
econômicas segundo a losoa de deixar que os dados falem por si. Diferen-
temente dos modelos de regressão nos quais yt é explicado por k regressores

7
x1 , x2 , x3 , . . . , xk , os modelos do tipo Box-Jenkins permitem que yt seja ex-
plicado por valores passados, ou defasados, do próprio y e dos termos de erro
estocásticos.
É importante destacar que, para empregar o método Box-Jenkins, pre-
cisamos ter em mãos uma série temporal estacionária ou uma que possa se
tornar estacionária após uma ou mais diferenciações.
A estratégia para construção do modelo é baseada em um ciclo iterativo
e utiliza os próprios dados para a escolha da estrutura deste modelo. Ini-
cialmente, é proposta uma classe de modelos, procede-se à identicação de
um modelo particular com base na análise de autocorrelações, autocorrela-
ções parciais e outros critérios, em seguida os parâmetros são estimados e os
resíduos do modelo ajustado são então avaliados.
A metodologia Box-Jenkins pressupõe que a série sendo analisado é esta-
cionárias. A metodologia pode ser brevemente caracterizada como a seguir.

1. Identicação do modelo;
(a) Determinar a order de integração, d.
(b) Achar valores apropriados para p e q .
2. Estimação dos parâmetros do modelo.
3. Diagnóstico do modelo.
(a) Autocorrelações
(b) Normalidade

Caso o modelo selecionado não seja adequado, o ciclo é reiniciado. Em ge-


ral, os modelos mais convenientes são parcimoniosos, ou seja, contêm poucos
parâmetros e mesmo assim geram boas previsões.

3.1 Modelos autorregressivos

O modelo autorregressivo de ordem p, denotado AR(p), é denido como


yt = c + φ1 yt−1 + φ2 yt−2 + · · · + φp yt−p + t ,

em que t ∼ RB(0, σ 2 ), φ1 , φ2 , . . . , φp são parâmetros autorregressivos e c é


um parâmetro incluído para permitir que yt tenha média diferente de zero.
Assim, processos AR podem ser usados como modelos se for razoável assumir
que o valor atual de uma série temporal depende do seu passado imediato
mais um erro aleatório.

8
O modelo AR(p) pode ser reescrito de forma mais compacta usando o
operador de defasagem, denotado por B e denido como B n yt = yt−n , da
seguinte maneira:
(1 − φ1 B − φ2 B 2 − · · · − φp B p )yt = c + t ,

ou
φ(B)yt = c + t ,
em que φ(B) = 1 − φ1 B − φ2 B 2 − · · · − φp B p é um polinômio autorregressivo.
Se todas as raízes da equação φ(z) = 0 estiverem fora do círculo unitário, o
processo AR(p) será estacionário. Neste caso, a média de yt é
c
E(yt ) = µ = ,
1 − φ1 − φ2 − · · · − φp

e a j -ésima autocovariância é dada por

γj = φ1 γj−1 + φ2 γj−2 + · · · + φp γj−p , j > 0. (1)


Dividindo-se (1) por γ0 = V ar(yt ), chega-se às equações de Yule-Walker:

ρj = φ1 ρj−1 + φ2 ρj−2 + · · · + φp ρj−p j > 0. (2)


Em um processo AR(p) não existe correlação direta entre yt e yt−p−1 ,
yt−p−2 , . . .. Consequentemente, todos os coecientes de correlação parcial
são nulos para j > p.

3.2 Modelos de médias móveis

Dizemos que yt segue um processo de médias móveis de ordem q , denotado


por MA(q ), se
yt = µ + t + θ1 t−1 + θ2 t−2 + · · · + θq t−q ,

em que t ∼ RB(0, σ 2 ). Usando o operador de defasagem B , este processo


pode ser reescrito como yt = µ + θ(B)t , onde θ(B) = 1 + θ1 B + θ2 B 2 + · · · +
θq B q é um polinômio de médias móveis. A média da variável yt é E(yt ) = µ
e sua variância é dada por
V ar(yt ) = σ 2 (1 + θ12 + · · · + θq2 ).

As autocovariâncias são

9

(θj + θj+1 θ1 + θj+2 θ2 + · · · + θq θq−j )σ 2 , j = 1, 2, . . . , q,
γj =
0, para j = q + 1, q + 2, . . . .

Como a média e a variância são constantes e γj não depende de t o


processo é estacionário independente dos valores dos parâmetros. Contudo,
nem sempre é único. A m de se ter unicidade, imporemos uma condição
adicional de invertibilidade que garante que existe um único processo MA(q )
para uma dada função de autocorrelação. Um processo MA(q ) é invertível
quando todas as raízes da equação θ(B) = 0 estão fora do círculo unitário.

3.3 Modelos autorregressivos e de médias móveis

Combinando os modelos AR e MA pode-se obter uma representação ade-


quada com um número menor de parâmetros. Processos autorregressivos
médias móveis (ARMA) formam uma classe de modelos muito úteis e parci-
moniosos para descrever dados de séries temporais. O modelo ARMA(p, q )
é dado por
yt = c + φ1 yt−1 + φ2 yt−2 + · · · + φp yt−p + t + θ1 t−1 + θ2 t−2 + · · · + θq t−q ,

em que t ∼ RB(0, σ 2 ). Note que modelos AR ou MA podem ser obtidos


como casos especiais quando p = 0 ou q = 0, respectivamente. Usando o
operador de defasagem, o modelo pode ser reescrito como
φ(B)yt = θ(B)t ,

em que φ(B) e θ(B) são os polinômios AR e MA usuais. A condição de


estacionariedade para um processo ARMA(p, q ) é a mesma de um processo
AR(p) e a condição de invertibilidade é a mesma de um processo MA(q ).
Nota-se que as funções de autocorrelação e autocorrelação parcial cam
consideravelmente mais complicadas em processos ARMA. De um modo ge-
ral, para um processo ARMA(p, q ) estacionário a função de autocorrelação
tem um decaimento exponencial ou oscilatório após a defasagem q enquanto
que a função de autocorrelação parcial tem o mesmo comportamento após a
defasagem p .

10
3.4 Modelos ARIMA e SARIMA

Os modelos discutidos até agora são apropriados para descrever séries


temporais estacionárias. Assim, para ajustar estes modelos a uma série tem-
poral observada é necessário remover as fontes de variação não-estacionárias.
Por exemplo, se a série observada for não estacionária na média pode-se ten-
tar remover a tendência tomando-se uma ou mais diferenças. Um modelo
ARMA no qual yt é substituído pela sua d-ésima diferença ∆d yt é capaz de
descrever alguns tipos de séries não estacionárias. O processo auto-regressivo
integrado médias móveis ARIMA(p, d, q ) é dado por

φ(B)(1 − B)d (yt − µ) = θ(B)t . (3)


O modelo (3) supõe que a d-ésima diferença da série yt pode ser represen-
tada por um modelo ARMA, estacionário e invertível. Um processo que se
torna estacionário após d diferenças é dito ser não-estacionário homogêneo,
ou integrado de ordem d, I(d). Na prática, valores pequenos são em geral
especicados para d, sendo d = 1 o valor mais utilizado.
Com o objetivo de levar em consideração padrões de utuações sazonal,
ampliou-se a classe de modelos ARIMA. Muitas vezes não é possível trans-
formar yt de forma a remover a sazonalidade, ou seja, a própria sazonalidade
pode apresentar um padrão dinâmico. Isto signica que há necessidade de se
considerar uma sazonalidade estocástica e ajustar a série original um modelo
ARIMA sazonal, que passa a ser denominado de SARIMA. Seja yt a série
de interesse observada com período de sazonalidade s. A classe de modelos
sazonais multiplicativos (p, d, q) × (P, D, Q) é dada por
φ(B)Φ(B s )[(1 − B)d (1 − B s )D (yt − µ) = θ(B)Θ(B s )t ,

em que θ(B s ) = 1 + θ1 B s + θ2 B 2s + · · · + θQ B Qs , Φ(B s ) = 1 − Φ1 B s − Φ2 B 2s −


· · · − ΦP B P s e D indica o número de diferenças sazonais.

3.5 Modelos ARMAX

O processo autorregressivo de médias móveis com variáveis explanatórias


(ARMAX) é uma estrutura de modelagem que possui considerável generali-
dade para se analisar impactos de regressores dinamicamente. Aqui, a aten-
ção será dada ao caso de uma variável dependente, y , e uma única variável
independente ou explicativa, x. O modelo é denido como

11
yt = α + φ1 yt−1 + φ2 yt−2 + · · · + φp yt−p + β0 xt + β1 xt−1 +
+ · · · + βk xt−k + t + θ1 t−1 + θ2 t−2 + · · · + θq t−q
em que α, βi , φj , θl , i = 0, . . . , k, j = 1, . . . , p, k = 1, . . . , q , são parâmetros
xados e t ∼ RB(0, σ 2 ). Notamos que no caso especial em que os β 's são
todos zero, obtemos o modelo ARMA(p, q ) para a variável dependente yt .
Quando os θ's são todos iguais a zero, os outros parâmetros do modelo são
facilmente estimados por mínimos quadrados ordinários. Contudo, quando os
θ's são não-nulos, a estimação dos parâmetros requer o uso de um algoritmo
de otimização não-linear. É importante lembrar que mais de uma variável
explanatória pode ser incluída no modelo, contanto que a estrutura de defa-
sagem para cada variável seja nita e que o número total de parâmetros a
serem estimados não exceda o número de observações.
Uma variante do modelo ARMAX é o modelo SARMAX, que é a combi-
nação de modelos SARMA com uma estrutura de regressão que possibilita
vericar diferentes impactos provocados por mudanças nas variáveis indepen-
dentes sobre a variável dependente e na estrutura dinâmica.

3.6 Critérios de identicação de p e q


3.6.1 Utilizando ACF e PACF

Uma maneira de identicar a ordem do modelo ARMA(p, q) é através da


análise das autocorrelações e autocorrelações parciais estimadas, cujos com-
portamentos devem imitar os comportamentos das respectivas quantidades
teóricas. Estes comportamentos, para os modelos AR, MA e ARMA, foram
abordados nas subseções 3.1, 3.2 e 3.3 e um resumo das propriedades destes
modelos encontra-se na tabela abaixo.

Tabela 1: Comportamento das ACF e PACF de um processo ARMA(p, q ).


Função AR MA ARMA
ACF Decai exponencialmente Corte brusco após a defasagem q Decai exponencialmente após a defasagem q
PACF Corte brusco após a defasagem p Decai exponencialmente Decai exponencialmente após a defasagem p

3.6.2 Utilizando critérios de informação

A forma mais utilizada para a identicação dos valores de p e q em um


processo ARMA(p, q) são os critérios de informação apresentados a seguir

12
1. Para modelar processos AR puros:
T +p 2
FPE = σ̃ ,
T −p
ej 2
em que σ̃ 2 = e ej é o j -ésimo resíduo.
PT
j=1 T

2. Critério de Informação de Akaike (AIC ):


AIC = −2 log(L̂) + 2(p + q),
em que L̂ é a verossimilhança maximizada.
3. Critério de Akaike Corrigido (AICc):
2(p + q)T
AICc = −2 log(L̂) + ,
T −p−q−1

4. Critério Bayesiano (BIC ):


BIC = −2 log(L̂) + (p + q) log(T ).

Destaca-se que o AIC não é consistente e que, mesmo assintoticamente,


superestima a dimensão do modelo. Por outro lado, o BIC é consistente,
isto é
plim(p̂) = p e plim(q̂) = q.
Para T > 8, o BIC penaliza a inclusão de novos termos no modelo mais
pesadamente que o AIC . No que diz respeito ao AICc, este é uma versão
corrigida do AIC e assintoticamente os dois critérios são equivalentes.

3.6.3 Avaliação de previsão

Em séries temporais, um dos principais objetivos é fazer previsões de


valores futuros. Para tanto, é necessário escolher o melhor método de previsão
e avaliar a precisão das previsões futuras provenientes do método selecionado.
Consideremos uma série temporal com T observações e retiremos desta série
as n últimas observações. Com essa nova série, sem as n observações, geramos
n previsões a partir do modelo estimado e obtemos os erros de previsão

ej = yj − ŷj ,
em que ŷj denota a previsão de yj . A capacidade de previsão de um modelo
estimado pode ser avaliada através da utilização das medidas descritas a
seguir, em que k = T − n:

13
1. Erro percentual médio (EPM):
T  
1 X ej
EP M = × 100;
n j=k+1 yj

2. Erro quadrático médio (EQM):


T
1 X 2
EQM = e;
n j=k+1 j

3. Erro absoluto médio (EAM):


T
1 X
EAM = |ej |;
n j=k+1

4. Erro total (ET):


T
X
ET = ej ;
j=k+1

5. Erro absoluto total (EAT):


T
X
EAT = |ej |;
j=k+1

6. Erro percentual total (EPT):


PT !
j=k+1 |ej |
EP T = PT × 100.
j=k+1 yj

3.7 Adequacidade
3.7.1 Correlograma

Uma das formas de checar se o modelo estimado fornece uma representa-


ção adequada dos dados é atráves de um análise das autocorrelações residu-
ais. As distribuições assintóticas das autocorrelações amostrais dos resíduos
de um modelo ARMA (p, q ) possuem distribuição N (0, 1). Portanto, se as
autocorrelações amostrais estiverem dentro do intervalo

14
√ √
ICaprox (ρ, 95%) = [−2/ T ; −2/ T ],
há indícios de que o modelo esteja corretamente especicado. O coeciente
de autocorrelação amostral de ordem j é denido como
PT
t=j+1 êt êt−j
rj = PT 2 .
t=1 êt
Se alguma dessas autocorrelações estiver fora do intervalo de conança dado
acima, existem evidências amostrais contra a adequação do modelo.

3.7.2 Teste de Box-Pierce

Ao invés de vericarmos as autocorrelações residuais individualmente,


podemos testar se um grupo de autocorrelações é signicativamente diferente
de zero através das chamadas estatísticas Q. Para modelos ARMA, Box &
Jenkins (1970) sugeriram o uso do teste de Box-Pierce para as hipóteses

H0 : ρ1 = ρ2 = · · · = ρm = 0,
H1 : ρj 6= 0 para algum j ∈ {1, 2, . . . , m},
sendo a estatística de teste dada por
m
X
QBP = T rj2 .
j=1

Na prática, o número m de autocorrelações amostrais é tipicamente es-


colhido entre 10 e 30. Se o modelo ajustado for apropriado, então Q terá
distribuição aproximadamente qui-quadrado com m−p−q graus de liberdade.
Assim, valores grandes de Q fornecem indicação contra a hipótese de que as
autocorrelações são todas nulas, em favor da hipótese de que ao menos uma
delas é diferente de zero. O teste de Box-Pierce não tem bom desempenho
em amostras pequenas, no sentido de que a sua distribuição nula é muitas
vezes pobremente aproximada pela distribuição qui-quadrado. Vários testes
alternativos foram sugeridos na literatura e o mais conhecido é o teste de
Ljung-Box, onde a estatística de teste é dada por
m
X rj2
QLB = T (T + 2) .
j=1
T −j
Sua distribuição amostral também é aproximadamente qui-quadrado com
m − p − q graus de liberdade.

15
3.7.3 Teste da raiz unitária

O teste Dickey-Fuller tem como hipótese nula a existência de uma raiz


unitária, ou seja, H0 : I(1). Seja {yt }t∈Z processo univariado auto-regressivo
de ordem 1 (AR(1)), isto é, denido como
yt = φyt−1 + t , (4)
onde {t }t∈Z é um processo ruído branco com E(t ) = 0 e σ2 > 0. Se φ = 1,
o processo {yt }t∈Z não é estacionário e conhecido como passeio aleatório. Em
contraste, se |φ| < 1 o processo {yt }t∈Z é estacionário.

Considere o modelo denido em (4) para testar a hipótese H0 : φ = 1 versus


H1 : φ < 1. Através de uma amostra y1 , . . . , yT o teste DF é baseado no
estimador de mínimos quadrados
PT
yt−1 yt
φ̂ = Pt=2
T 2
. (5)
t=2 yt−1

Logo, para testar H0 : φ = 1 versus H1 : φ < 1 no modelo denido em (3.1),


utiliza-se a estatística proposta por Dickey & Fuller (1979)
φ̂ − 1
τ̂ = , (6)
s(φ̂)
em que
S
s(φ̂) = PT 2 ,
( t=2 yt−1 )1/2
e
T
2 1 X
S = (∆yt − φ̂yt−1 )2 , ∆yt = yt − yt−1 .
T − 2 t=2

φ̂ é o estimador de mínimos quadrados, s(φ̂) é o erro padrão de φ̂ e S 2 é o


estimador de σ 2

16
3.8 Modelos de Box-Jenkins no R

O objetivo desta seção é introduzir algumas ferramentas de séries tempo-


rais, comumente utilizadas na prática, que estão disponíveis no R.
Para ilustrar as ferramentas de séries temporais no R vamos simular uma
série temporal utilizando a função arima.sim() que acompanha a distribui-
ção padrão do R. A série utilizada será:
> y <- arima.sim(n=100, list(ar=0.5, ma=0.5), innov=rnorm(100))
A função para execução do gráco da série a partir do pacote tseries é
> plot.ts(y,xlab="Tempo",ylab="",main="")
2
1
0
−1
−2
−3
−4

0 20 40 60 80 100

Tempo

Figura 1: Gráco da série.


Caso um arquivo seja importado é possível salvá-lo como sendo da classe
ts utilizando a função ts().
> y <- ts(y, start = 1950, freq=1)
Aqui o comando ts está avisando ao R que a matriz dados possui séries
temporais que se iniciam em 1950 com frequência 1, ou seja, são dados anuais.
Frequência 4 e 12 seriam, respectivamente, dados trimestrais e mensais.
A função acf() é utilizada para obter a ACF de uma série temporal e a
função pacf() calcula a PACF. Para a série simulada têm-se
> par(mfrow=c(1,2))
> acf(y,xlab="Defasagem",ylab="ACF",main="")
> pacf(y,xlab="Defasagem",ylab="PACF",main="")

17
1.0

0.6
0.8

0.4
0.6
0.4

0.2
FACP
FAC

0.2

0.0
0.0

−0.2
−0.2

0 5 10 15 20 5 10 15 20

Defasagem Defasagem

Figura 2: ACF e PACF da série.

Também podemos usar a função tsdisplay() do pacote forecast, que


produz numa mesma página o gráco da série, seu correlograma e seu corre-
lograma parcial.
Podemos utiliziar a função summary() para calcular algumas medidas
descritivas.

> summary(y)
Min. 1st Qu. Median Mean 3rd Qu. Max.
-3.8970 -1.4460 -0.3124 -0.3667 0.6386 2.4470

Notamos que a média foi de −0.3667, que a mediana foi −0.3124 e que o
mínimo e máximo foram, respectivamente, −3.8970 e 2.4470.
Caso exista dúvidas quanto a não estacionaridade de uma série podemos
utilizar testes de raízes unitárias. O R tem implementado em suas funções
dois testes de raiz unitária: o teste de Dickey-Fuller e o teste de Phillips-
Perron, ambos os testes, tem como hipótese de que o processo observado
possui pelo menos uma raiz unitária. Uma maneira de utilizar o teste de
Dickey-Fuller no R é utilizando a função adf.test().

> require(urca)
> adf.test(y)

Augmented Dickey-Fuller Test

data: y
Dickey-Fuller = -4.799, Lag order = 4, p-value = 0.01
alternative hypothesis: stationary

18
> pp.test(y)

Phillips-Perron Unit Root Test

data: y
Dickey-Fuller Z(alpha) = -34.2377, Truncation lag parameter = 3,
p-value = 0.01
alternative hypothesis: stationary

Repare que todos os testes rejeitaram a hipótese da série não ser estaci-
onário (p-valor < 0.05) ao nível de 5%.
Caso o processo observado seja não-estacionário na média utiliza-se o
procedimento denominado diferenciação. No R a função utilizada é a função
diff().

> plot.ts(diff(y),xlab="Tempo",ylab="",main="")
2
1
0
−1
−2

0 20 40 60 80 100

Tempo

Figura 3: Gráco da série diferenciada.

A Figura 3 sugere que a média do processo diferenciado não varia com o


tempo.
O R possui duas funções utilizadas para ajuste de modelos. A função
arma(), pertencente ao pacote tseries e a função arima() pertencente as
funções básicas do programa.

19
> require(tseries)
> fit1 <- arma(y, order = c(1, 1))
> summary(fit1)

Call:
arma(x = y, order = c(1, 1))

Model:
ARMA(1,1)

Residuals:
Min 1Q Median 3Q Max
-2.12336 -0.66775 0.03368 0.67176 2.51843

Coefficient(s):
Estimate Std. Error t value Pr(>|t|)
ar1 0.4704 0.1149 4.096 4.21e-05 ***
ma1 0.4648 0.1161 4.002 6.27e-05 ***
intercept -0.1998 0.1471 -1.358 0.174
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

Fit:
sigma^2 estimated as 0.9343, Conditional Sum-of-Squares=91.57,
AIC = 283

> fit2<-arima(y, order = c(1,0,1))


> summary(fit2)
Series: y
ARIMA(1,0,1) with non-zero mean

Call: arima(x = y, order = c(1, 0, 1))

Coefficients:
ar1 ma1 intercept
0.4583 0.4717 -0.3688
s.e. 0.1147 0.1154 0.2563

sigma^2 estimated as 0.9108: log likelihood = -137.66


AIC = 283.33 AICc = 283.75 BIC = 293.75

20
Podemos ver que a estimativa dos parâmetros, de ambos os modelos (mo-
delo 1 e modelo 2), caram bem próximos 0.5. Vale resaltar que todos os
parâmetros estimados, em ambos os modelos, foram signicativos ao nível de
signicância de 5%.
Para buscar o modelo com maior capacidade preditiva podemos usar a
função auto.arima() do pacote forecast, onde nessa função é possível usar
a opcção ic para especicar o critério de seleção de modelos a ser empregado.
Vale resaltar que a função arima() permite incluir variáveis regressoras no
modelo.

> fit3<-auto.arima(y)
> summary(fit3)
Series: y
ARIMA(1,0,1) with zero mean

Call: auto.arima(x = y)

Coefficients:
ar1 ma1
0.4927 0.4600
s.e. 0.1111 0.1153

sigma^2 estimated as 0.9283: log likelihood = -138.63


AIC = 283.27 AICc = 283.52 BIC = 291.08

In-sample error measures:


ME RMSE MAE MPE MAPE MASE
-0.1275911 0.9634602 0.7934735 -47.8715631 271.3023644 0.909478

O modelo 3 selecionado pela função auto.arima() foi o ARMA(1, 1), que


foi o modelo utilizado para gerar as observações.
Uma das formas de utilização de um modelo ajustado é para fazer previ-
sões de valores futuros. A função predict() é utilizada para realizar essas
previsões. Para a visualização do processo de previsão será utilizado o modelo
3 apresentado para a série simulada.

> predict(fit3, n.ahead=3)


$pred
Time Series:
Start = 101
End = 103

21
Frequency = 1
[1] -0.25248373 -0.08586639 -0.02920203

$se
Time Series:
Start = 101
End = 103
Frequency = 1
[1] 1.002666 1.409983 1.449728

3.8.1 Adequacidade do modelo: vericação das suposições

Uma etapa importante na análise de um ajuste é a vericação de possíveis


afastamentos das suposições feitas para o modelo. Assim serão apresentadas
algumas sugestões de testes utilizando o R para as vericações das violações.
O R possui uma função genérica que retornará resíduos, a função de
autocorrelação dos resíduos e os p-valores do teste de Ljung–Box.

> tsdiag(fit3)

Standardized Residuals
2
1
0
−2 −1

0 20 40 60 80 100

Time

ACF of Residuals
1.0
0.6
ACF

0.2
−0.2

0 5 10 15 20

Lag

p values for Ljung−Box statistic

● ● ● ●

0.8


p value


● ●

0.4
0.0

2 4 6 8 10

lag

Figura 4: Grácos de diagnóstico.

22
Grácamente, a normalidade pode ser vericada utilizando um histo-
grama ou um gráco de probabilidade normal dos resíduos. Para o gráco de
probabilidade normal pode-se utilizar a função qqnorm(), que é uma função
padrão do programa para a construção desse tipo de gráco, ou a função
qqplot() que constrói um QQ Plot para dois grupos de dados. Ambas as
funções são associadas a função qqline() que adiciona ao gráco uma linha
normal.
> par(mfrow=c(1,2))
> residuos <- fit3$residuals
> hist(residuos, prob=,xlab="Resíduos",ylab="Densidade",main="")
> qqnorm(residuos,main="",xlab="Percentis N(0,1)",ylab="")
> qqline(residuos)


8


1.0


6

0.5

● ●

● ●



Densidade

0.0

● ●

4



−0.5



● ●
2


−1.0


−1.5


0

−1.5 −1.0 −0.5 0.0 0.5 1.0 1.5 −2 −1 0 1 2

Resíduos Percentis N(0,1)

Figura 5: Histograma dos resíduos e gráco de probabilidade normal dos


resíduos.
Para testar a normalidade dos resíduos podemos utilizar os testes de
Jarque-Bera do pacote tseries e o teste de Shapiro-Wilks.
> library(tseries)
> jarque.bera.test(residuos)

Jarque Bera Test

data: residuos
X-squared = 0.3121, df = 2, p-value = 0.296

23
> shapiro.test(residuos)

Shapiro-Wilk normality test

data: residuos
W = 0.9805, p-value = 0.05075

Além dos grácos já descritos e dos testes de normalidade, pode-se aplicar


testes de independência nos resíduos. O R possui uma função que nos habilita
a escolher entre os testes Box-Pierce ou de Ljung-Box, e essa função se chama
Box.test().

> residuos<-fit3$residuals
> Box.test(residuos, lag = 10, type="Ljung")

Box-Ljung test

data: residuos
X-squared = 10.3553, df = 10, p-value = 0.4099

Portanto, de acordo com as análises o modelo 3 é adequado para descrever


a série.

4 Modelos de Suavização Exponencial

A maioria dos métodos de previsão baseia-se na idéia de que observações


passadas contêm informações sobre o padrão de comportamento da série
temporal. O propósito dos métodos é distinguir o padrão de qualquer ruído
que possa estar contido nas observações e então usar esse padrão para prever
valores futuros da série.
Uma ampla classe de métodos de previsão é a de alisamento exponencial.
Estes métodos têm um forte apelo intuitivo, decompondo uma série temporal
em componentes de fácil interpretação. Além disso, são simples de programar
e sua utilização tem um custo computacional muito pequeno.
Denotando ŷt (h) como a previsão de yt+h feita no momento t, h = 1, 2, . . .,
apresentaremos a seguir alguns métodos adequados a séries localmente cons-
tantes, para séries que apresentam tendência e, nalmente, para séries sazo-
nais.

24
4.1 Alisamento exponencial simples (AES)

Considere uma série temporal y1 , . . . , yT , localmente composta de seu


nível mais um ruído aleatório, isto é,

yt = µt + t , t = 1, . . . , T,
em que t ∼ RB e µt é um parâmetro desconhecido, que pode variar lenta-
mente com o tempo. É razoável tomar a estimativa do nível, denotado por
Nt , como uma soma ponderada das observações passadas, atribuindo pesos
maiores às observações mais recentes, ou seja,

Nt = αyt + α(1 − α)yt−1 + α(1 − α)2 yt−2 + · · · , (7)


em que 0 < α < 1 é chamada de constante de alisamento. Naturalmente
que na prática haverá um número nito de observações passadas e a soma
acima será também nita. A idéia de que o conteúdo informativo de uma
observação decai com a sua idade é bastante intuitiva e o parâmetro α está
controlando o grau de envelhecimento deste conteúdo.
A equação (7) costuma ser reescrita em forma de equação recursiva, ini-
cializando com N1 = y1 . Colocando (1 − α) em evidência obtemos

Nt = αyt + (1 − α)[αyt−1 + α(1 − α)yt−2 + α(1 − α)2 yt−3 + · · · ]


= αyt + (1 − α)Nt−1 .

A previsão dos valores futuros, ŷt (h), será igual a Nt e pode ser inter-
pretada como uma média ponderada entre a observação mais recente e a
previsão anterior. A equação (7) pode ainda ser reescrita na forma de corre-
ção de erro. Sendo et = yt − ŷt−1 (1), o erro de previsão 1 passo à frente no
tempo t, então temos que

Nt = ŷt−1 (1) + αet = Nt−1 + αet .


Assim, a nova previsão pode ser obtida da anterior adicionando um múl-
tiplo do erro de previsão. Isto indica que a previsão está sempre alerta a
mudanças no nível da série, revelada pelo erro de previsão. No caso particu-
lar em que o modelo tem média globalmente constante, µt = µ, a previsão
é não-viesada quando temos uma série temporal com um grande número de
observações (Morettin e Toloi, 2006).
Cumpre registrar que o valor de α não depende da escala em que as
observações foram medidas, mas sim das propriedades da série temporal. O
valor de α deve ser especicado de modo a reetir a inuência das observações

25
passadas nas previsões. Valores pequenos produzem previsões que dependem
muito das observações passadas. Por outro lado, valores próximos de 1 levam
a previsões que dependem das observações mais recentes e, no caso extremo,
α = 1, a previsão é simplesmente a última observação. Um procedimento
mais objetivo é selecionar o valor de α que fornece a melhor previsão a um
passo das observações já obtidas, ou seja, encontrar o valor de
Pα que minimize
a soma de quadrados dos erros de previsão, dada por S = t e2t .

4.2 Alisamento exponencial de Holt (AEH)

O método AES quando aplicado a uma série que apresenta tendência


linear positiva (ou negativa) fornece previsões que subestimam (ou superes-
timam) continuamente os valores reais. Para evitar esse erro sistemático, um
dos métodos aplicáveis é o AEH, o qual permite obter estimativas do nível e
da tendência da série. A forma de recorrência é dada por

Nt = αyt + (1 − α)(Nt−1 + Tt−1 ),


Tt = β(Nt − Nt−1 ) + (1 − β)Tt−1 ,
em que Nt e Tt são estimativas do nível e da tendência, respectivamente,
no instante t e 0 < α < 1 e 0 < β < 1 são constantes de suavização. A
inicialização do algoritmo é feita considerando T2 = y2 − y1 e N2 = y2 . A
previsão de yt+h no instante t é dada por
ŷt (h) = Nt + hTt , ∀h > 0.
Este algoritmo também possui uma forma de correção dos erros, a saber

Nt = Nt−1 + Tt−1 + αet ,


Tt = Tt−1 + αβet .

Suponha que a última previsão foi perfeita, et = 0, então a nova estimativa


do nível será atualizada apenas pela tendência e a estimativa da tendência
permanecerá igual à anterior. Contudo, se et < 0, isto é, superprevemos o
valor da série, então para obter a próxima previsão deve-se diminuir as esti-
mativas do nível e da tendência proporcionalmente ao erro. O procedimento
para a determinação das constantes de suavização é análogo ao procedimento
utilizado em AES, ou seja, a escolha objetiva dos valores de α e β pode ser
feita através da minimização da soma dos quadrados dos erros de previsão
um passo à frente.

26
4.3 Alisamento exponencial de Holt-Winters (AEHW)

O objetivo central deste algoritmo é permitir a incorporação de padrões


sazonais ao algoritmo de Holt. Existem dois tipos de procedimentos cuja uti-
lização depende das características da série considerada. Tais procedimentos
baseiam-se em três equações que utilizam constantes de alisamento diferen-
tes, cada uma correspondendo a uma das componentes do padrão da série:
Nível, tendência e sazonalidade.
Considere uma série sazonal com período de sazonalidade s. Se o fator
sazonal Ft for considerado como sendo multiplicativo, enquanto a tendência
permanece aditiva, isto é,
yt = µt Ft + Tt + ut ,
as formas de recorrência são dadas por

Nt = α(yt /Ft−s ) + (1 − α)(Nt−1 + Tt−1 ),


Tt = β(Nt − Nt−1 ) + (1 − β)Tt−1 ,
Ft = γ(yt /Nt ) + (1 − γ)Ft−s ,
e representam estimativas para o nível, a tendência e a sazonalidade, respec-
tivamente. As previsões dos valores futuros da série são obtidas das seguintes
expressões

ybt (h) = (Nt + hTt )Ft+h−s , h = 1, 2, · · · , s,


ybt (h) = (Nt + hTt )Ft+h−2s , h = s + 1, s + 2, · · · , 2s,
.. ..
. .
Neste caso, a forma de correção dos erros é
et
Nt = Nt−1 + Tt−1 + α ,
Ft−s
et
Tt = Tt−1 + αβ ,
Ft−s
et
Ft = Ft−s + γ(1 − α) .
Nt
No caso de sazonalidade aditiva, as equações de atualização para o nível
e o fator sazonal são modicadas para
Nt = α(yt − Ft−s ) + (1 − α)(Nt−1 + Tt−1 ),
Ft = γ(yt − Nt ) + (1 − γ)Ft−s .

27
Os valores futuros são previstos a partir das equações

ybt (h) = Nt + hTt + Ft+h−s , h = 1, 2, · · · , s,


ybt (h) = Nt + hTt + Ft+h−2s , h = s + 1, s + 2, · · · , 2s,
.. ..
. .
Por m, o mecanismo de correção dos erros no caso aditivo se torna
Nt = Nt−1 + Tt−1 + αet ,
Tt = Tt−1 + αβet ,
Ft = Ft−s + γ(1 − α)et .

Os parâmetros de suavização, α, β e γ , para cada componente da série,


tanto no caso aditivo como no multiplicativo, são escolhidos no intervalo
(0, 1) e podem ser estimados minimizando a soma de quadrados dos erros de
previsão como nos métodos anteriores.

4.4 Modelos de suavização exponencial no R

No R podemos também utilizar a metodologia de previsão da classe de


algoritmos de alisamento exponencial. Para tanto, podemos usar a função
HoltWinters() ou a função hw() do pacote forecast. Para detalhes sobre
a diferença entre essas duas funções veja Hyndman & Khandakar (2008).
Há também no R uma variante do algoritmo de alisamento exponencial
que está implementada na função ets() no pacote forecast. Ela utiliza
uma abordagem de modelagem inovacional via espaços de estados. Para
mais detalhes sobre esse enfoque de modelagem e previsão, veja Hyndman et
al. (2008).
Nesta seção iremos mostrar como trabalhar o método de suavização ex-
ponencial utilizando um pacote do R, (forecast) que permite a escolha de um
modelo de forma automática. Este mesmo pacote permite efetuar previsões e
calcular as principais medidas dos erros de previsão. Para exemplicar essas
ferramentas, vamos considerar três exemplos: uma série com tendência, uma
série com sazonalidade e uma série com tendência e sazonalidade.

28
Série com tendência

Primeiramente, vamos simular uma série temporal com tendência.


> x <- uspop + rnorm(uspop, sd = 5)
Agora vamos construir um gráco da série de dados juntamente com os
grácos de autocorrelação e autocorrelação parcial dos dados. Isto é possível
com a função tsdisplay().
200



50 100





● ●

● ● ●
0

1800 1850 1900 1950


0.5

0.5
PACF
ACF

0.0

0.0
−0.5

−0.5

5 10 15 20 5 10 15 20

Lag Lag

Utilizaremos o algoritmo de Holt uma vez que a série apresenta tendência.


Para tanto, podemos usar a função HoltWinters().
> fcast <- HoltWinters(x, gamma = FALSE)
Holt-Winters exponential smoothing with trend and
without seasonal component.
> fcast
Call:
HoltWinters(x = x, gamma = FALSE)
Smoothing parameters:
alpha: 1
beta : 0
gamma: FALSE

29
Coefficients:
[,1]
a 198.46289
b 11.51982
A função para execução do gráco da série e seu ajuste é
> plot(fcast)

Holt−Winters filtering
200
150
Observed / Fitted

100
50
0

1850 1900 1950

Time

Para fazer previsões, a função forecast(), mesmo nome do pacote deve


ser utilizada. Note que esse pacote deve ser instalado, pois não acompanha
a distribuição padrão do R, e deve ser inicializado antes de ser usado. A
inicialização pode ser feita usando a função require ou, alternativamente,
a função library. O R retorna as estimativas pontuais de previsão para o
número de períodos de h e os respectivos intervalos de conança.
> prev <- forecast(fcast, h = 5)
> prev
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
1980 209.9827 198.4938 221.4716 192.4119 227.5535
1990 221.5025 205.2547 237.7503 196.6537 246.3514
2000 233.0223 213.1229 252.9217 202.5888 263.4558
2010 244.5422 221.5643 267.5200 209.4006 279.6837
2020 256.0620 230.3720 281.7520 216.7725 295.3515

> plot(prev)

30
Forecasts from HoltWinters

300
250
200
150
100
50
0

1800 1850 1900 1950 2000

Uma vez escolhido o método, recomenda-se calcular algumas medidas


dos erros de previsão. A função accuracy() retorna as usuais medidas dos
erros de previsão: ME (erro médio), RMSE (erro quadrático médio), MAE
(erro absoluto médio), MPE (erro médio percetual), MAPE (erro absoluto
percentual médio) e MASE (raiz do erro absoluto médio).
> accuracy(fcast)
ME RMSE MAE MPE MAPE MASE
24.587477 51.047366 27.554191 18.184340 38.060714 2.437143

Série com sazonalidade

Neste exemplo, a série USAccDeaths do pacote tseries será utilizado como


ilustração.
> data(USAccDeaths)
Utilizaremos o algoritmo de Holt-Winters uma vez que a série apresenta
sazonalidade.
> deaths.fcast <- HoltWinters(USAccDeaths, beta = FALSE)
> deaths.fcast
Holt-Winters exponential smoothing without trend and with additive
seasonal component.
Call:
HoltWinters(x = USAccDeaths, beta = FALSE)

31
USAccDeaths

11000




● ● ●


● ●

● ●

9000
● ●
● ● ●
● ● ● ● ● ● ●
● ●
● ● ● ● ●
● ● ● ●
● ● ●
● ● ●
● ● ●
● ● ● ●
● ● ● ● ●
● ● ●
● ● ● ●
● ● ●
7000


● ● ●

1973 1974 1975 1976 1977 1978 1979


0.4

0.4
PACF
ACF

0.0

0.0
−0.4

−0.4

5 10 15 20 5 10 15 20

Lag Lag

Smoothing parameters:
alpha: 0.6964007
beta : FALSE
gamma: 0.8750256
Coefficients:
[,1]
a 8896.856336
s1 -882.913275
s2 -1816.712771
s3 -1043.719518
s4 -691.142348
s5 150.411995
s6 564.990260
s7 1659.351341
s8 920.556439
s9 90.853080
s10 425.100598
s11 1.342965
s12 328.785588
O gráco da série e seu ajuste é
> prev <- forecast(deaths.fcast, h = 5)

32
Holt−Winters filtering

11000
10000
Observed / Fitted

9000
8000
7000

1974 1975 1976 1977 1978 1979

Time

> prev
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
Jan 1979 8013.943 7532.437 8495.449 7277.544 8750.342
Feb 1979 7080.144 6493.383 7666.904 6182.771 7977.516
Mar 1979 7853.137 7177.320 8528.953 6819.565 8886.709
Apr 1979 8205.714 7451.282 8960.146 7051.910 9359.518
May 1979 9047.268 8221.673 9872.864 7784.629 10309.908
> plot(prev)

Forecasts from HoltWinters


11000
10000
9000
8000
7000
6000

1973 1974 1975 1976 1977 1978 1979

> accuracy(deaths.fcast)
ME RMSE MAE MPE MAPE MASE
2859.807941 5031.983139 3225.575851 33.198459 37.872865 5.013153

33
Série com tendência e sazonalidade

Neste exemplo, a série co2 do pacote tseries será utilizado como ilustração.
> data(co2)

co2

●●
●● ●●

●●●
360

●●
● ● ● ● ●
●● ●● ● ● ● ● ●●
● ● ● ● ● ●
● ●●
● ● ●● ● ●● ●● ●● ●

●● ● ● ●

● ● ●● ● ● ● ● ●●

● ●●● ● ● ● ● ●● ● ●
● ● ● ●● ● ●●

●● ● ● ● ● ●● ● ● ● ● ●

●● ● ● ● ●


●● ●● ●● ●

●●
● ●● ● ●● ● ●

●● ●● ● ● ●● ● ●
●●
● ● ● ● ● ● ●
● ●
●●
● ● ●● ● ●● ● ●
● ●
340

● ● ●
●● ● ●● ● ●● ●
● ● ●● ● ●

●● ●●●● ●
●● ●
● ● ● ● ●

●● ● ● ● ● ● ●● ●

●● ●● ● ● ● ● ● ●

●● ● ●● ● ● ●● ● ● ●
● ●
●● ●● ● ●●● ● ●
● ●
●● ●● ● ●● ● ●

● ● ●●●● ● ●
●●● ●●●● ●●● ●
● ● ●● ●

● ●
●● ● ● ● ● ● ●● ●
● ● ●
● ●● ●
●● ●● ● ●● ● ● ●
● ●

● ● ●
●● ● ● ●●●● ● ●● ●
● ●
●● ●● ● ● ●● ●

● ● ● ●●
320

●●
● ● ● ●● ●
●● ● ●●● ●● ● ● ● ● ● ●

●●
● ● ●●
● ● ●● ● ●● ● ●
● ● ●●●
● ● ●● ● ●● ●
● ● ● ●● ● ●
●● ●● ●
●● ●
● ●●●● ● ●● ● ●● ●● ● ●
●●
● ● ● ● ● ●● ● ● ●
●●● ● ● ● ● ●●● ● ●● ● ●
● ●
● ● ●● ● ● ●
●● ● ●

● ●

1960 1970 1980 1990


1.0

1.0
0.6

0.6
PACF
ACF

0.2

0.2
−0.2

−0.2

5 10 15 20 5 10 15 20

Lag Lag

Utilizaremos o algoritmo de Holt-Winters uma vez que a série apresenta


tendência e sazonalidade.
> deaths.fcast <- HoltWinters(co2)
> deaths.fcast
Holt-Winters exponential smoothing with trend
and additive seasonal component.
Call:
HoltWinters(x = co2)
Smoothing parameters:
alpha: 0.5126484
beta : 0.009497669
gamma: 0.472886
Coefficients:
[,1]
a 364.7616237

34
b 0.1247438
s1 0.2215275
s2 0.9552801
s3 1.5984744
s4 2.8758029
s5 3.2820088
s6 2.4406990
s7 0.8969433
s8 -1.3796428
s9 -3.4112376
s10 -3.2570163
s11 -1.9134850
s12 -0.5844250
O gráco da série e seu ajuste é

Holt−Winters filtering
360
350
Observed / Fitted

340
330
320

1960 1970 1980 1990

Time

> prev <- forecast(deaths.fcast, h = 15)


> prev
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
Jan 1998 365.1079 364.7139 365.5019 364.5053 365.7105
Feb 1998 365.9664 365.5228 366.4100 365.2879 366.6449
Mar 1998 366.7343 366.2453 367.2234 365.9864 367.4823
Apr 1998 368.1364 367.6051 368.6678 367.3238 368.9490
May 1998 368.6674 368.0961 369.2386 367.7937 369.5410
Jun 1998 367.9508 367.3416 368.5599 367.0192 368.8824
Jul 1998 366.5318 365.8863 367.1772 365.5446 367.5189
Aug 1998 364.3799 363.6995 365.0604 363.3392 365.4206

35
Sep 1998 362.4731 361.7587 363.1874 361.3806 363.5656
Oct 1998 362.7520 362.0048 363.4993 361.6093 363.8948
Nov 1998 364.2203 363.4411 364.9996 363.0285 365.4121
Dec 1998 365.6741 364.8636 366.4847 364.4345 366.9138
Jan 1999 366.6048 365.7349 367.4747 365.2744 367.9353
Feb 1999 367.4633 366.5643 368.3623 366.0884 368.8383
Mar 1999 368.2313 367.3036 369.1590 366.8125 369.6500

> plot(prev)

Forecasts from HoltWinters


370
360
350
340
330
320

1960 1970 1980 1990 2000

> accuracy(deaths.fcast)
ME RMSE MAE MPE MAPE MASE
168.81428 238.90615 169.28360 50.00231 50.14243 157.28670

5 Script

require(tseries)
require(forecast)
require(lmtest)
require(urca)

xc <- arima.sim(n=100, list(ar=0.5, ma=0.5), innov=rnorm(100))


tsdisplay(xc)
adf.test(xc)

36
h <- 3
x <- xc[1:(length(xc)-h)] # dados sem h últimas observações
n <- length(x)

############################
### Modelos ARIMA
############################

modelo <- auto.arima(x)


summary(modelo)
tsdiag(modelo)

residuos <- modelo$residuals


jarque.bera.test(residuos)
par(mfrow=c(1,2))
hist(residuos, prob=,xlab="Resíduos",ylab="Densidade",main="")
qqnorm(residuos,main="", xlab="Percentis N(0,1)", ylab="")
qqline(residuos)

forecast(modelo, h)
plot(forecast(modelo, h))

prevarima <- as.data.frame(forecast(modelo, h))


erroprevarima <- xc[(n-h+1):n] - prevarima[,1]
erroprevarima

EQM <- mean(erroprevarima^2)


EAM <- mean(abs(erroprevarima))
c(EQM, EAM)

fitarima <- x - residuos


plot.ts(x)
lines(fitarima, col=2)

#Dummy como regressor

37
k <- 10

dummy1 <- rep(0, length(x))


dummy1[(length(x) - k + 1):length(x)] <- 1
dummy1

modelo3 <- auto.arima(x, xreg = dummy1)


summary(modelo3)

#####################################
### Modelos suavização exponencial
#####################################

modelo2 <- HoltWinters(x, gamma = FALSE, beta = FALSE)


plot(modelo2)

prevholt <- forecast(modelo2, h)


plot(prevholt)

prevholt <- as.data.frame(forecast(modelo2, h))


erroprevholt <- xc[(n-h+1):n] - prevholt[,1]
erroprevholt

EQM <- mean(erroprevholt^2)


EAM <- mean(abs(erroprevholt))
c(EQM, EAM)

Referências

[1] Box, G. E. P. & Jenkins, G. M. (1970). Time series Analysis: Forecasting


and Control. San Francisco: Holden-Day.
[2] Dickey, D. & Fuller, W. (1979). Distribution of the estimators for autore-
gressive time series with a unit root. Journal of the American Statistical
Association, 74, 427–431.
[3] Hyndman, R. J. & Khandakar, Y. (2008). Automatic time series fo-
recasting: the forecast package for R. Journal of Statistical Software,
27(3).

38
[4] Hyndman, R. J.; Koehler, A. B.; Ord J. K. & Snyder, R. D. (2008).
Forecasting with Exponential Smoothing: the State Space Approach. New

York: Springer.
[5] Morettin, P.A. & Toloi, C.M.C. (2006). Análise de Séries Temporais, 2a
ed. São Paulo: Edgard Blücher.

39

Você também pode gostar