1 Sobre mim
Me chamo Kaius, sou um economista formado na UFV e agraciado com a medalha de prata Presidente Bernandes. Tive o privilégio de atuar como monitor da disciplina de ECO450 (Econometria I), ECO455 (Econometria II) e ECO457 (Econometria III), auxiliando os alunos de forma complementar as aulas.
Atuo como Cientista de Dados, uma área que sou completamente apaixonado, que mistura elementos de computação, estatística e conhecimento de área para resolução de inúmeros problemas. Espero fazer jus a minha paixão pelo mundo de dados e lhe introduzir de forma descontraída os principais métodos e ferramentas utilizadas para produção científica ou para utilização de empresas em meio a resolver problemas.
Ao longo deste documento, irei priorizar a utilização de elementos visuais, por meio de um pacote do R chamado ggplot2. Acredito que a matemática seja uma parte importante do processo de aprendizado, mas não podemos depender somente dela e devemos recorrer a lógica como base, por isso meu foco aqui será de instigar você a entender e se entusiasmar com o que pode ser feito com os métodos econométricos sem entrar em muitas expressões mais cabeludas.
2 Introdução
A econometria das séries temporais é uma área da econometria que se preocupa em utilizar modelos mais adequados sob presença do elemento tempo como variável explicativa de um fenômeno. Acima de tudo, lembrando da econometria I, esse efeito é o responsável pela introdução da autocorrelação serial em nossas estimativas.
A definição de google para esse problema é bem direto ao ponto: correlação existente entre uma observação i qualquer e a observação imediatamente anterior (i-1). Além disso, a autocorrelação (correlação serial) de ordem q é a correlação existente entre uma observação i qualquer e a observação anterior (i-q).
Na prática, podemos dizer que uma variável possui autocorrelação serial, quando, por exemplo, o PIB do ano passado explica o PIB desse ano. Isso faz sentido, visto que podemos dar uma previsão com base no que já aconteceu.
Por esse efeito, a econometria de séries temporais tem todo o foco em gerar previsões robustas sobre efeitos temporais, e é exatamente isso que busco explicar nesse documento, que não exclui a leitura de um material mais específico.
3 Conhecendo os dados.
Abaixo é a tabela relacionada a série de tempo. É a mesma ideia de abrir a série de tempos no excel, e no R a ideia é exatamente a mesma.
Observe que a série de tempo está apresentando as observações mês a mês.
library(forecast) # me dá mais funções para análise e estimação de séries temporais
library(astsa) # me dá mais funções para análise e estimação de séries temporais
library(aTSA) # teste para cointegração
library(dplyr) # me fornece funções para manipulação de dados
library(data.table) #formato de tabela melhor que o padrão do R
library(readxl) # leitura de dados do excel
library(kableExtra) # Só uso pra melhorar a imagem da tabela, nem considere isso
library(plotly) # igual o de cima só que pros gráficos
library(ggplot2) # melhor biblioteca de visualização de dados que tem por aí
library(vars) # modelagem VAR
dataset <- read_excel("PIB.xls")
dataset %>%
kbl() %>%
kable_material() %>%
scroll_box(width = "800px", height = "350px")
| Data | PIB |
|---|---|
| 1990-01-01 | 174698.3 |
| 1990-02-01 | 195161.9 |
| 1990-03-01 | 268903.2 |
| 1990-04-01 | 211052.0 |
| 1990-05-01 | 219974.2 |
| 1990-06-01 | 195822.5 |
| 1990-07-01 | 195128.7 |
| 1990-08-01 | 190782.3 |
| 1990-09-01 | 183468.6 |
| 1990-10-01 | 202031.9 |
| 1990-11-01 | 208569.9 |
| 1990-12-01 | 184664.1 |
| 1991-01-01 | 178441.2 |
| 1991-02-01 | 175443.5 |
| 1991-03-01 | 168590.9 |
| 1991-04-01 | 196841.5 |
| 1991-05-01 | 209151.1 |
| 1991-06-01 | 213064.0 |
| 1991-07-01 | 209675.4 |
| 1991-08-01 | 208926.1 |
| 1991-09-01 | 187224.5 |
| 1991-10-01 | 204366.7 |
| 1991-11-01 | 201426.0 |
| 1991-12-01 | 184176.1 |
| 1992-01-01 | 183638.0 |
| 1992-02-01 | 185993.9 |
| 1992-03-01 | 185350.3 |
| 1992-04-01 | 182378.5 |
| 1992-05-01 | 189865.3 |
| 1992-06-01 | 195462.0 |
| 1992-07-01 | 196981.7 |
| 1992-08-01 | 196366.6 |
| 1992-09-01 | 196261.6 |
| 1992-10-01 | 199191.2 |
| 1992-11-01 | 199492.9 |
| 1992-12-01 | 180601.9 |
| 1993-01-01 | 181718.7 |
| 1993-02-01 | 181781.6 |
| 1993-03-01 | 202999.9 |
| 1993-04-01 | 198595.8 |
| 1993-05-01 | 201615.4 |
| 1993-06-01 | 196966.4 |
| 1993-07-01 | 204903.1 |
| 1993-08-01 | 208411.0 |
| 1993-09-01 | 212291.2 |
| 1993-10-01 | 206761.4 |
| 1993-11-01 | 204688.8 |
| 1993-12-01 | 186310.9 |
| 1994-01-01 | 170812.2 |
| 1994-02-01 | 153255.1 |
| 1994-03-01 | 157942.7 |
| 1994-04-01 | 165888.8 |
| 1994-05-01 | 181951.4 |
| 1994-06-01 | 234223.0 |
| 1994-07-01 | 276449.0 |
| 1994-08-01 | 292405.2 |
| 1994-09-01 | 286222.6 |
| 1994-10-01 | 287548.8 |
| 1994-11-01 | 285495.9 |
| 1994-12-01 | 270221.1 |
| 1995-01-01 | 283593.0 |
| 1995-02-01 | 297416.2 |
| 1995-03-01 | 350398.8 |
| 1995-04-01 | 328964.8 |
| 1995-05-01 | 313058.1 |
| 1995-06-01 | 308031.1 |
| 1995-07-01 | 313975.8 |
| 1995-08-01 | 322332.3 |
| 1995-09-01 | 316736.5 |
| 1995-10-01 | 326753.2 |
| 1995-11-01 | 343874.5 |
| 1995-12-01 | 333031.8 |
| 1996-01-01 | 317047.9 |
| 1996-02-01 | 305395.4 |
| 1996-03-01 | 306785.5 |
| 1996-04-01 | 307989.4 |
| 1996-05-01 | 330323.3 |
| 1996-06-01 | 334154.1 |
| 1996-07-01 | 349618.7 |
| 1996-08-01 | 347794.9 |
| 1996-09-01 | 332844.3 |
| 1996-10-01 | 357046.3 |
| 1996-11-01 | 370608.3 |
| 1996-12-01 | 373142.3 |
| 1997-01-01 | 351528.2 |
| 1997-02-01 | 320413.7 |
| 1997-03-01 | 315466.4 |
| 1997-04-01 | 327302.0 |
| 1997-05-01 | 345831.0 |
| 1997-06-01 | 358158.7 |
| 1997-07-01 | 361573.9 |
| 1997-08-01 | 361826.6 |
| 1997-09-01 | 360664.7 |
| 1997-10-01 | 383257.5 |
| 1997-11-01 | 373764.6 |
| 1997-12-01 | 353483.7 |
| 1998-01-01 | 343410.6 |
| 1998-02-01 | 326803.9 |
| 1998-03-01 | 345974.1 |
| 1998-04-01 | 347514.1 |
| 1998-05-01 | 363872.7 |
| 1998-06-01 | 365571.4 |
| 1998-07-01 | 372624.8 |
| 1998-08-01 | 371550.0 |
| 1998-09-01 | 364870.1 |
| 1998-10-01 | 376122.5 |
| 1998-11-01 | 371484.2 |
| 1998-12-01 | 355602.2 |
| 1999-01-01 | 343538.3 |
| 1999-02-01 | 339854.4 |
| 1999-03-01 | 369850.4 |
| 1999-04-01 | 363856.0 |
| 1999-05-01 | 369105.9 |
| 1999-06-01 | 377138.2 |
| 1999-07-01 | 371948.5 |
| 1999-08-01 | 374612.2 |
| 1999-09-01 | 365091.1 |
| 1999-10-01 | 382197.2 |
| 1999-11-01 | 393859.0 |
| 1999-12-01 | 388362.9 |
| 2000-01-01 | 362642.1 |
| 2000-02-01 | 358856.0 |
| 2000-03-01 | 360866.6 |
| 2000-04-01 | 355411.1 |
| 2000-05-01 | 383541.8 |
| 2000-06-01 | 395291.2 |
| 2000-07-01 | 392353.9 |
| 2000-08-01 | 396016.6 |
| 2000-09-01 | 376982.5 |
| 2000-10-01 | 401028.4 |
| 2000-11-01 | 401926.0 |
| 2000-12-01 | 392830.2 |
| 2001-01-01 | 378555.7 |
| 2001-02-01 | 373680.5 |
| 2001-03-01 | 396297.1 |
| 2001-04-01 | 391681.0 |
| 2001-05-01 | 403024.6 |
| 2001-06-01 | 376879.6 |
| 2001-07-01 | 393747.9 |
| 2001-08-01 | 399986.6 |
| 2001-09-01 | 382427.8 |
| 2001-10-01 | 405474.1 |
| 2001-11-01 | 408778.9 |
| 2001-12-01 | 389627.4 |
| 2002-01-01 | 385716.9 |
| 2002-02-01 | 380808.2 |
| 2002-03-01 | 401797.1 |
| 2002-04-01 | 406332.1 |
| 2002-05-01 | 415711.9 |
| 2002-06-01 | 411967.6 |
| 2002-07-01 | 419565.0 |
| 2002-08-01 | 419810.7 |
| 2002-09-01 | 406936.6 |
| 2002-10-01 | 423751.5 |
| 2002-11-01 | 421996.6 |
| 2002-12-01 | 395622.1 |
| 2003-01-01 | 379076.6 |
| 2003-02-01 | 386177.2 |
| 2003-03-01 | 403249.9 |
| 2003-04-01 | 407871.8 |
| 2003-05-01 | 401809.0 |
| 2003-06-01 | 397069.9 |
| 2003-07-01 | 418893.1 |
| 2003-08-01 | 413276.0 |
| 2003-09-01 | 421695.4 |
| 2003-10-01 | 438384.7 |
| 2003-11-01 | 432897.1 |
| 2003-12-01 | 430584.8 |
| 2004-01-01 | 401955.9 |
| 2004-02-01 | 395103.5 |
| 2004-03-01 | 433391.6 |
| 2004-04-01 | 430370.5 |
| 2004-05-01 | 434698.3 |
| 2004-06-01 | 447003.9 |
| 2004-07-01 | 459626.6 |
| 2004-08-01 | 451445.7 |
| 2004-09-01 | 437814.5 |
| 2004-10-01 | 450775.7 |
| 2004-11-01 | 464057.2 |
| 2004-12-01 | 464754.0 |
| 2005-01-01 | 423416.1 |
| 2005-02-01 | 413585.6 |
| 2005-03-01 | 448274.6 |
| 2005-04-01 | 449587.8 |
| 2005-05-01 | 449339.9 |
| 2005-06-01 | 457384.0 |
| 2005-07-01 | 464479.2 |
| 2005-08-01 | 471260.0 |
| 2005-09-01 | 454396.7 |
| 2005-10-01 | 470472.5 |
| 2005-11-01 | 482233.9 |
| 2005-12-01 | 489035.5 |
| 2006-01-01 | 454938.8 |
| 2006-02-01 | 435744.4 |
| 2006-03-01 | 462928.2 |
| 2006-04-01 | 449594.2 |
| 2006-05-01 | 481067.4 |
| 2006-06-01 | 484028.7 |
| 2006-07-01 | 502640.1 |
| 2006-08-01 | 508884.4 |
| 2006-09-01 | 486319.2 |
| 2006-10-01 | 516634.7 |
| 2006-11-01 | 527697.6 |
| 2006-12-01 | 529190.1 |
| 2007-01-01 | 502525.4 |
| 2007-02-01 | 480522.5 |
| 2007-03-01 | 514213.9 |
| 2007-04-01 | 507056.6 |
| 2007-05-01 | 532457.5 |
| 2007-06-01 | 536821.9 |
| 2007-07-01 | 546218.4 |
| 2007-08-01 | 547231.6 |
| 2007-09-01 | 518008.7 |
| 2007-10-01 | 560092.5 |
| 2007-11-01 | 556972.1 |
| 2007-12-01 | 554623.7 |
| 2008-01-01 | 539919.4 |
| 2008-02-01 | 526969.0 |
| 2008-03-01 | 545547.9 |
| 2008-04-01 | 556844.7 |
| 2008-05-01 | 566261.6 |
| 2008-06-01 | 586646.3 |
| 2008-07-01 | 611329.3 |
| 2008-08-01 | 590258.9 |
| 2008-09-01 | 579510.3 |
| 2008-10-01 | 610355.8 |
| 2008-11-01 | 587102.4 |
| 2008-12-01 | 571281.5 |
| 2009-01-01 | 537249.7 |
| 2009-02-01 | 522587.3 |
| 2009-03-01 | 559569.9 |
| 2009-04-01 | 551362.7 |
| 2009-05-01 | 567616.5 |
| 2009-06-01 | 581478.5 |
| 2009-07-01 | 600855.9 |
| 2009-08-01 | 597157.6 |
| 2009-09-01 | 593340.6 |
| 2009-10-01 | 630429.8 |
| 2009-11-01 | 634539.1 |
| 2009-12-01 | 648536.0 |
| 2010-01-01 | 593215.7 |
| 2010-02-01 | 582757.9 |
| 2010-03-01 | 632195.5 |
| 2010-04-01 | 619829.4 |
| 2010-05-01 | 636436.4 |
| 2010-06-01 | 646544.9 |
| 2010-07-01 | 669400.3 |
| 2010-08-01 | 671324.7 |
| 2010-09-01 | 661392.5 |
| 2010-10-01 | 683363.4 |
| 2010-11-01 | 701506.8 |
| 2010-12-01 | 694645.8 |
| 2011-01-01 | 645375.7 |
| 2011-02-01 | 643602.4 |
| 2011-03-01 | 663209.5 |
| 2011-04-01 | 661339.3 |
| 2011-05-01 | 691797.1 |
| 2011-06-01 | 699581.1 |
| 2011-07-01 | 701856.1 |
| 2011-08-01 | 705501.7 |
| 2011-09-01 | 674094.1 |
| 2011-10-01 | 702004.4 |
| 2011-11-01 | 718870.3 |
| 2011-12-01 | 718815.1 |
| 2012-01-01 | 670677.0 |
| 2012-02-01 | 668402.5 |
| 2012-03-01 | 712377.4 |
| 2012-04-01 | 688631.0 |
| 2012-05-01 | 720390.1 |
| 2012-06-01 | 715746.2 |
| 2012-07-01 | 741180.7 |
| 2012-08-01 | 746975.3 |
| 2012-09-01 | 696007.7 |
| 2012-10-01 | 743137.3 |
| 2012-11-01 | 740005.8 |
| 2012-12-01 | 732876.0 |
| 2013-01-01 | 711982.4 |
| 2013-02-01 | 681710.9 |
| 2013-03-01 | 727191.2 |
| 2013-04-01 | 743248.5 |
| 2013-05-01 | 741247.9 |
| 2013-06-01 | 746586.1 |
| 2013-07-01 | 771847.4 |
| 2013-08-01 | 760182.8 |
| 2013-09-01 | 733150.0 |
| 2013-10-01 | 774633.0 |
| 2013-11-01 | 768241.3 |
| 2013-12-01 | 775507.5 |
| 2014-01-01 | 742056.4 |
| 2014-02-01 | 727127.9 |
| 2014-03-01 | 740296.2 |
| 2014-04-01 | 746662.5 |
| 2014-05-01 | 750729.1 |
| 2014-06-01 | 725721.1 |
| 2014-07-01 | 761889.7 |
| 2014-08-01 | 751000.9 |
| 2014-09-01 | 746468.5 |
| 2014-10-01 | 769184.6 |
| 2014-11-01 | 758337.4 |
| 2014-12-01 | 766682.7 |
| 2015-01-01 | 716529.0 |
| 2015-02-01 | 688456.9 |
| 2015-03-01 | 743149.4 |
| 2015-04-01 | 715541.6 |
| 2015-05-01 | 705184.3 |
| 2015-06-01 | 705185.9 |
| 2015-07-01 | 724789.3 |
| 2015-08-01 | 708002.6 |
| 2015-09-01 | 708218.0 |
| 2015-10-01 | 734091.2 |
| 2015-11-01 | 719913.1 |
| 2015-12-01 | 723198.2 |
| 2016-01-01 | 672073.1 |
| 2016-02-01 | 668626.4 |
| 2016-03-01 | 700354.6 |
| 2016-04-01 | 683511.0 |
| 2016-05-01 | 686641.2 |
| 2016-06-01 | 714558.7 |
| 2016-07-01 | 706490.1 |
| 2016-08-01 | 707057.5 |
| 2016-09-01 | 673140.2 |
| 2016-10-01 | 691664.9 |
| 2016-11-01 | 711514.8 |
| 2016-12-01 | 740857.8 |
| 2017-01-01 | 687067.6 |
| 2017-02-01 | 668890.8 |
| 2017-03-01 | 706794.5 |
| 2017-04-01 | 680494.8 |
| 2017-05-01 | 710853.1 |
| 2017-06-01 | 721049.9 |
| 2017-07-01 | 720369.6 |
| 2017-08-01 | 716687.3 |
| 2017-09-01 | 680262.9 |
| 2017-10-01 | 704081.0 |
| 2017-11-01 | 723145.3 |
| 2017-12-01 | 749380.6 |
| 2018-01-01 | 704921.1 |
| 2018-02-01 | 669626.2 |
| 2018-03-01 | 708049.4 |
| 2018-04-01 | 704902.6 |
| 2018-05-01 | 683679.2 |
| 2018-06-01 | 720058.1 |
| 2018-07-01 | 722115.2 |
| 2018-08-01 | 720344.0 |
| 2018-09-01 | 685045.0 |
| 2018-10-01 | 727494.6 |
| 2018-11-01 | 730102.7 |
| 2018-12-01 | 739709.0 |
| 2019-01-01 | 706763.8 |
| 2019-02-01 | 689904.4 |
| 2019-03-01 | 698882.0 |
| 2019-04-01 | 712972.4 |
| 2019-05-01 | 726522.7 |
| 2019-06-01 | 718205.0 |
| 2019-07-01 | 751610.0 |
| 2019-08-01 | 738295.7 |
| 2019-09-01 | 735714.7 |
| 2019-10-01 | 765904.8 |
| 2019-11-01 | 751888.5 |
| 2019-12-01 | 760367.0 |
| 2020-01-01 | 725058.8 |
| 2020-02-01 | 714600.7 |
| 2020-03-01 | 723115.5 |
| 2020-04-01 | 653864.1 |
| 2020-05-01 | 661612.0 |
| 2020-06-01 | 694692.1 |
| 2020-07-01 | 737299.0 |
| 2020-08-01 | 728749.0 |
| 2020-09-01 | 735042.6 |
| 2020-10-01 | 758357.7 |
| 2020-11-01 | 754535.5 |
| 2020-12-01 | 770907.3 |
| 2021-01-01 | 731680.6 |
| 2021-02-01 | 750086.1 |
| 2021-03-01 | 811273.1 |
| 2021-04-01 | 782022.8 |
| 2021-05-01 | 775193.2 |
| 2021-06-01 | 772853.1 |
| 2021-07-01 | 796847.4 |
| 2021-08-01 | 785520.1 |
| 2021-09-01 | 764799.1 |
| 2021-10-01 | 761170.8 |
| 2021-11-01 | 772984.2 |
| 2021-12-01 | 786974.9 |
| 2022-01-01 | 752223.6 |
| 2022-02-01 | 753542.9 |
Essa série pode ser representada graficamente simplesmente se usarmos a coluna Data no eixo x e PIB no eixo y.
# Tive que converter pra um formato específico de tempo para estimar, não é importante se você não quer usar o R...
dataset$data_em_segundos <- as.numeric(dataset$Data)
ggplot(dataset, aes(x = Data, y= PIB)) +
geom_line(color = "steelblue") +
scale_y_continuous(labels = scales::number_format()) +
theme_classic()
4 Tendência e sazonalidade.
A definição ténica que o google vai dar é:
Tendência e sazonalidade são os componentes não observáveis de uma série temporal que representam, respectivamente, o movimento de longo prazo e o padrão regular (queda/subida) de um determinado período da série de tempo.
A definição que eu posso te dar é: tendência vai ser o comportamento do que você quer explicar ao longo de todo o tempo. Sazonalidade são as variações ao longo dessa tendência, que se repetem constantemente em dados periodos.
Como estimar a tendência? Vamos lembrar do estimador de MQO! Podemos estimar a tendência de X sobre Y, dado que X é o tempo. Não é muito distante de qualquer outro modelo linear estimado na econometria I, só que aqui não temos a preocupação acima da significância do beta estimado (porque esse valor não é confiável).
Não lembra aquela formula enjoada de disperção do MQO? Nem eu lembro esse trem. Usa a formula matricial! (Ou faz que nem qualquer pessoa normal e usa um programa pra estimar isso). De toda forma, usando a ferramenta que você achar melhor, o objetivo aqui é estimar o que?
Vamos lembrar:
- Uma função linear tem a fórmula a + bX
- Uma função exponencial tem a fórmula a + bX + cX^2
- Uma função cúbica tem a fórmula a + bX + cX^2 + dX^3
Podemos estimar esses valores que não são X, e pronto!. A linear tem essa cara:
modelo_linear <- lm(PIB ~ data_em_segundos, dataset)
ggplot(dataset, aes(x = Data, y= PIB)) +
geom_line(color = "steelblue") +
scale_y_continuous(labels = scales::number_format()) +
geom_line(aes(y = predict(modelo_linear))) +
theme_classic()
A exponencial tem essa:
modelo_exp <- lm(PIB ~ data_em_segundos + I(data_em_segundos ^ 2) , dataset)
ggplot(dataset, aes(x = Data, y= PIB)) +
geom_line(color = "steelblue") +
scale_y_continuous(labels = scales::number_format()) +
geom_line(aes(y = predict(modelo_exp))) +
theme_classic()
A cúbica tem essa:
modelo_cubico <- lm(PIB ~ data_em_segundos + I(data_em_segundos ^ 2) + I(data_em_segundos ^ 3), dataset)
ggplot(dataset, aes(x = Data, y= PIB)) +
geom_line(color = "steelblue") +
scale_y_continuous(labels = scales::number_format()) +
geom_line(aes(y = predict(modelo_cubico))) +
theme_classic()
Agora você pode estar se perguntando: e o quico?
A gente pode fazer uma previsão usando a tendência. É uma previsão robusta? Não necessariamente. (para a teoria econômica pelo menos.)
Nesse caso, o MQO é o melhor estimador linear não viesado? Lembrando de econometria I, sob presença de autocorrelação serial (defini lá na introdução), o MQO perde sua eficiencia (apresenta cada vez maiores variâncias), por isso, não é interessante para a análise temporal.
E a sazonalidade? Bom, sazonalidade pode ser uma dummy.
Vamos lembrar o que é uma dummy com um exemplo: Sou um graduando em economia e gostaria de estimar disparidades salariais no mercado de trabalho para indivíduos de sexos opostos. Tenho uma base de dados com as seguintes informações: Sexo, anos_de_estudo, renda.
Sexo assume um valor de 1 quando o indivíduo é do sexo masculino e 0 quando é do sexo feminino.
Uma forma bem simples de estimar desigualdade poderia ser feita da seguinte forma:
\[ y_{renda} = \beta_0 + \beta_1 escolaridade + \beta_2 Sexo \]
A dummy quando assume o valor de 1 pode adicionar ou reduzir do valor da renda quando comparado com o caso em que ela assume o valor 0.
Perfeito! Lembramos qual é a ideia de uma estimação com dummies. Vamos voltar ao modelo de séries temporais.
A sazonalidade pode ser estimada pra tentar trazer mais poder explicativo ao modelo geral. Poderíamos criar 4 dummies trimestrais:
D1 <- assume o valor de 1 quando o mês estiver entre janeiro e março. 0 caso contrário.
D2 <- assume o valor de 1 quando o mês estiver entre abril e junho. 0 caso contrário.
D3 <- assume o valor de 1 quando o mês estiver entre julho e setembro. 0 caso contrário.
D4 <- assume o valor de 1 quando o mês estiver entre outubro e dezembro. 0 caso contrário.
Minha estimação de tendência linear com sazonalidade teria essa cara:
\[ y_{PIB} = \beta_0 + \beta_1 data + \beta_2 D_1 + \beta_3 D_2 + \beta_4 D_3 \]
Observe que D4 está fora da equação por ser a base.
Gerei exatamente essas dummies na tabela apresentada no início do documento, dá uma olhada abaixo:
dataset <- read_excel("PIB.xls")
dataset <- dataset %>%
mutate(D1 = ifelse(months(Data) %in% c("janeiro", "fevereiro", "março"), 1, 0),
D2 = ifelse(months(Data) %in% c("abril", "maio", "junho"), 1, 0),
D3 = ifelse(months(Data) %in% c("julho", "agosto", "setembro"), 1, 0),
D4 = ifelse(months(Data) %in% c("outubro", "novembro", "dezembro"), 1, 0))
dataset %>%
kbl() %>%
kable_material() %>%
scroll_box(width = "800px", height = "350px")
| Data | PIB | D1 | D2 | D3 | D4 |
|---|---|---|---|---|---|
| 1990-01-01 | 174698.3 | 1 | 0 | 0 | 0 |
| 1990-02-01 | 195161.9 | 1 | 0 | 0 | 0 |
| 1990-03-01 | 268903.2 | 1 | 0 | 0 | 0 |
| 1990-04-01 | 211052.0 | 0 | 1 | 0 | 0 |
| 1990-05-01 | 219974.2 | 0 | 1 | 0 | 0 |
| 1990-06-01 | 195822.5 | 0 | 1 | 0 | 0 |
| 1990-07-01 | 195128.7 | 0 | 0 | 1 | 0 |
| 1990-08-01 | 190782.3 | 0 | 0 | 1 | 0 |
| 1990-09-01 | 183468.6 | 0 | 0 | 1 | 0 |
| 1990-10-01 | 202031.9 | 0 | 0 | 0 | 1 |
| 1990-11-01 | 208569.9 | 0 | 0 | 0 | 1 |
| 1990-12-01 | 184664.1 | 0 | 0 | 0 | 1 |
| 1991-01-01 | 178441.2 | 1 | 0 | 0 | 0 |
| 1991-02-01 | 175443.5 | 1 | 0 | 0 | 0 |
| 1991-03-01 | 168590.9 | 1 | 0 | 0 | 0 |
| 1991-04-01 | 196841.5 | 0 | 1 | 0 | 0 |
| 1991-05-01 | 209151.1 | 0 | 1 | 0 | 0 |
| 1991-06-01 | 213064.0 | 0 | 1 | 0 | 0 |
| 1991-07-01 | 209675.4 | 0 | 0 | 1 | 0 |
| 1991-08-01 | 208926.1 | 0 | 0 | 1 | 0 |
| 1991-09-01 | 187224.5 | 0 | 0 | 1 | 0 |
| 1991-10-01 | 204366.7 | 0 | 0 | 0 | 1 |
| 1991-11-01 | 201426.0 | 0 | 0 | 0 | 1 |
| 1991-12-01 | 184176.1 | 0 | 0 | 0 | 1 |
| 1992-01-01 | 183638.0 | 1 | 0 | 0 | 0 |
| 1992-02-01 | 185993.9 | 1 | 0 | 0 | 0 |
| 1992-03-01 | 185350.3 | 1 | 0 | 0 | 0 |
| 1992-04-01 | 182378.5 | 0 | 1 | 0 | 0 |
| 1992-05-01 | 189865.3 | 0 | 1 | 0 | 0 |
| 1992-06-01 | 195462.0 | 0 | 1 | 0 | 0 |
| 1992-07-01 | 196981.7 | 0 | 0 | 1 | 0 |
| 1992-08-01 | 196366.6 | 0 | 0 | 1 | 0 |
| 1992-09-01 | 196261.6 | 0 | 0 | 1 | 0 |
| 1992-10-01 | 199191.2 | 0 | 0 | 0 | 1 |
| 1992-11-01 | 199492.9 | 0 | 0 | 0 | 1 |
| 1992-12-01 | 180601.9 | 0 | 0 | 0 | 1 |
| 1993-01-01 | 181718.7 | 1 | 0 | 0 | 0 |
| 1993-02-01 | 181781.6 | 1 | 0 | 0 | 0 |
| 1993-03-01 | 202999.9 | 1 | 0 | 0 | 0 |
| 1993-04-01 | 198595.8 | 0 | 1 | 0 | 0 |
| 1993-05-01 | 201615.4 | 0 | 1 | 0 | 0 |
| 1993-06-01 | 196966.4 | 0 | 1 | 0 | 0 |
| 1993-07-01 | 204903.1 | 0 | 0 | 1 | 0 |
| 1993-08-01 | 208411.0 | 0 | 0 | 1 | 0 |
| 1993-09-01 | 212291.2 | 0 | 0 | 1 | 0 |
| 1993-10-01 | 206761.4 | 0 | 0 | 0 | 1 |
| 1993-11-01 | 204688.8 | 0 | 0 | 0 | 1 |
| 1993-12-01 | 186310.9 | 0 | 0 | 0 | 1 |
| 1994-01-01 | 170812.2 | 1 | 0 | 0 | 0 |
| 1994-02-01 | 153255.1 | 1 | 0 | 0 | 0 |
| 1994-03-01 | 157942.7 | 1 | 0 | 0 | 0 |
| 1994-04-01 | 165888.8 | 0 | 1 | 0 | 0 |
| 1994-05-01 | 181951.4 | 0 | 1 | 0 | 0 |
| 1994-06-01 | 234223.0 | 0 | 1 | 0 | 0 |
| 1994-07-01 | 276449.0 | 0 | 0 | 1 | 0 |
| 1994-08-01 | 292405.2 | 0 | 0 | 1 | 0 |
| 1994-09-01 | 286222.6 | 0 | 0 | 1 | 0 |
| 1994-10-01 | 287548.8 | 0 | 0 | 0 | 1 |
| 1994-11-01 | 285495.9 | 0 | 0 | 0 | 1 |
| 1994-12-01 | 270221.1 | 0 | 0 | 0 | 1 |
| 1995-01-01 | 283593.0 | 1 | 0 | 0 | 0 |
| 1995-02-01 | 297416.2 | 1 | 0 | 0 | 0 |
| 1995-03-01 | 350398.8 | 1 | 0 | 0 | 0 |
| 1995-04-01 | 328964.8 | 0 | 1 | 0 | 0 |
| 1995-05-01 | 313058.1 | 0 | 1 | 0 | 0 |
| 1995-06-01 | 308031.1 | 0 | 1 | 0 | 0 |
| 1995-07-01 | 313975.8 | 0 | 0 | 1 | 0 |
| 1995-08-01 | 322332.3 | 0 | 0 | 1 | 0 |
| 1995-09-01 | 316736.5 | 0 | 0 | 1 | 0 |
| 1995-10-01 | 326753.2 | 0 | 0 | 0 | 1 |
| 1995-11-01 | 343874.5 | 0 | 0 | 0 | 1 |
| 1995-12-01 | 333031.8 | 0 | 0 | 0 | 1 |
| 1996-01-01 | 317047.9 | 1 | 0 | 0 | 0 |
| 1996-02-01 | 305395.4 | 1 | 0 | 0 | 0 |
| 1996-03-01 | 306785.5 | 1 | 0 | 0 | 0 |
| 1996-04-01 | 307989.4 | 0 | 1 | 0 | 0 |
| 1996-05-01 | 330323.3 | 0 | 1 | 0 | 0 |
| 1996-06-01 | 334154.1 | 0 | 1 | 0 | 0 |
| 1996-07-01 | 349618.7 | 0 | 0 | 1 | 0 |
| 1996-08-01 | 347794.9 | 0 | 0 | 1 | 0 |
| 1996-09-01 | 332844.3 | 0 | 0 | 1 | 0 |
| 1996-10-01 | 357046.3 | 0 | 0 | 0 | 1 |
| 1996-11-01 | 370608.3 | 0 | 0 | 0 | 1 |
| 1996-12-01 | 373142.3 | 0 | 0 | 0 | 1 |
| 1997-01-01 | 351528.2 | 1 | 0 | 0 | 0 |
| 1997-02-01 | 320413.7 | 1 | 0 | 0 | 0 |
| 1997-03-01 | 315466.4 | 1 | 0 | 0 | 0 |
| 1997-04-01 | 327302.0 | 0 | 1 | 0 | 0 |
| 1997-05-01 | 345831.0 | 0 | 1 | 0 | 0 |
| 1997-06-01 | 358158.7 | 0 | 1 | 0 | 0 |
| 1997-07-01 | 361573.9 | 0 | 0 | 1 | 0 |
| 1997-08-01 | 361826.6 | 0 | 0 | 1 | 0 |
| 1997-09-01 | 360664.7 | 0 | 0 | 1 | 0 |
| 1997-10-01 | 383257.5 | 0 | 0 | 0 | 1 |
| 1997-11-01 | 373764.6 | 0 | 0 | 0 | 1 |
| 1997-12-01 | 353483.7 | 0 | 0 | 0 | 1 |
| 1998-01-01 | 343410.6 | 1 | 0 | 0 | 0 |
| 1998-02-01 | 326803.9 | 1 | 0 | 0 | 0 |
| 1998-03-01 | 345974.1 | 1 | 0 | 0 | 0 |
| 1998-04-01 | 347514.1 | 0 | 1 | 0 | 0 |
| 1998-05-01 | 363872.7 | 0 | 1 | 0 | 0 |
| 1998-06-01 | 365571.4 | 0 | 1 | 0 | 0 |
| 1998-07-01 | 372624.8 | 0 | 0 | 1 | 0 |
| 1998-08-01 | 371550.0 | 0 | 0 | 1 | 0 |
| 1998-09-01 | 364870.1 | 0 | 0 | 1 | 0 |
| 1998-10-01 | 376122.5 | 0 | 0 | 0 | 1 |
| 1998-11-01 | 371484.2 | 0 | 0 | 0 | 1 |
| 1998-12-01 | 355602.2 | 0 | 0 | 0 | 1 |
| 1999-01-01 | 343538.3 | 1 | 0 | 0 | 0 |
| 1999-02-01 | 339854.4 | 1 | 0 | 0 | 0 |
| 1999-03-01 | 369850.4 | 1 | 0 | 0 | 0 |
| 1999-04-01 | 363856.0 | 0 | 1 | 0 | 0 |
| 1999-05-01 | 369105.9 | 0 | 1 | 0 | 0 |
| 1999-06-01 | 377138.2 | 0 | 1 | 0 | 0 |
| 1999-07-01 | 371948.5 | 0 | 0 | 1 | 0 |
| 1999-08-01 | 374612.2 | 0 | 0 | 1 | 0 |
| 1999-09-01 | 365091.1 | 0 | 0 | 1 | 0 |
| 1999-10-01 | 382197.2 | 0 | 0 | 0 | 1 |
| 1999-11-01 | 393859.0 | 0 | 0 | 0 | 1 |
| 1999-12-01 | 388362.9 | 0 | 0 | 0 | 1 |
| 2000-01-01 | 362642.1 | 1 | 0 | 0 | 0 |
| 2000-02-01 | 358856.0 | 1 | 0 | 0 | 0 |
| 2000-03-01 | 360866.6 | 1 | 0 | 0 | 0 |
| 2000-04-01 | 355411.1 | 0 | 1 | 0 | 0 |
| 2000-05-01 | 383541.8 | 0 | 1 | 0 | 0 |
| 2000-06-01 | 395291.2 | 0 | 1 | 0 | 0 |
| 2000-07-01 | 392353.9 | 0 | 0 | 1 | 0 |
| 2000-08-01 | 396016.6 | 0 | 0 | 1 | 0 |
| 2000-09-01 | 376982.5 | 0 | 0 | 1 | 0 |
| 2000-10-01 | 401028.4 | 0 | 0 | 0 | 1 |
| 2000-11-01 | 401926.0 | 0 | 0 | 0 | 1 |
| 2000-12-01 | 392830.2 | 0 | 0 | 0 | 1 |
| 2001-01-01 | 378555.7 | 1 | 0 | 0 | 0 |
| 2001-02-01 | 373680.5 | 1 | 0 | 0 | 0 |
| 2001-03-01 | 396297.1 | 1 | 0 | 0 | 0 |
| 2001-04-01 | 391681.0 | 0 | 1 | 0 | 0 |
| 2001-05-01 | 403024.6 | 0 | 1 | 0 | 0 |
| 2001-06-01 | 376879.6 | 0 | 1 | 0 | 0 |
| 2001-07-01 | 393747.9 | 0 | 0 | 1 | 0 |
| 2001-08-01 | 399986.6 | 0 | 0 | 1 | 0 |
| 2001-09-01 | 382427.8 | 0 | 0 | 1 | 0 |
| 2001-10-01 | 405474.1 | 0 | 0 | 0 | 1 |
| 2001-11-01 | 408778.9 | 0 | 0 | 0 | 1 |
| 2001-12-01 | 389627.4 | 0 | 0 | 0 | 1 |
| 2002-01-01 | 385716.9 | 1 | 0 | 0 | 0 |
| 2002-02-01 | 380808.2 | 1 | 0 | 0 | 0 |
| 2002-03-01 | 401797.1 | 1 | 0 | 0 | 0 |
| 2002-04-01 | 406332.1 | 0 | 1 | 0 | 0 |
| 2002-05-01 | 415711.9 | 0 | 1 | 0 | 0 |
| 2002-06-01 | 411967.6 | 0 | 1 | 0 | 0 |
| 2002-07-01 | 419565.0 | 0 | 0 | 1 | 0 |
| 2002-08-01 | 419810.7 | 0 | 0 | 1 | 0 |
| 2002-09-01 | 406936.6 | 0 | 0 | 1 | 0 |
| 2002-10-01 | 423751.5 | 0 | 0 | 0 | 1 |
| 2002-11-01 | 421996.6 | 0 | 0 | 0 | 1 |
| 2002-12-01 | 395622.1 | 0 | 0 | 0 | 1 |
| 2003-01-01 | 379076.6 | 1 | 0 | 0 | 0 |
| 2003-02-01 | 386177.2 | 1 | 0 | 0 | 0 |
| 2003-03-01 | 403249.9 | 1 | 0 | 0 | 0 |
| 2003-04-01 | 407871.8 | 0 | 1 | 0 | 0 |
| 2003-05-01 | 401809.0 | 0 | 1 | 0 | 0 |
| 2003-06-01 | 397069.9 | 0 | 1 | 0 | 0 |
| 2003-07-01 | 418893.1 | 0 | 0 | 1 | 0 |
| 2003-08-01 | 413276.0 | 0 | 0 | 1 | 0 |
| 2003-09-01 | 421695.4 | 0 | 0 | 1 | 0 |
| 2003-10-01 | 438384.7 | 0 | 0 | 0 | 1 |
| 2003-11-01 | 432897.1 | 0 | 0 | 0 | 1 |
| 2003-12-01 | 430584.8 | 0 | 0 | 0 | 1 |
| 2004-01-01 | 401955.9 | 1 | 0 | 0 | 0 |
| 2004-02-01 | 395103.5 | 1 | 0 | 0 | 0 |
| 2004-03-01 | 433391.6 | 1 | 0 | 0 | 0 |
| 2004-04-01 | 430370.5 | 0 | 1 | 0 | 0 |
| 2004-05-01 | 434698.3 | 0 | 1 | 0 | 0 |
| 2004-06-01 | 447003.9 | 0 | 1 | 0 | 0 |
| 2004-07-01 | 459626.6 | 0 | 0 | 1 | 0 |
| 2004-08-01 | 451445.7 | 0 | 0 | 1 | 0 |
| 2004-09-01 | 437814.5 | 0 | 0 | 1 | 0 |
| 2004-10-01 | 450775.7 | 0 | 0 | 0 | 1 |
| 2004-11-01 | 464057.2 | 0 | 0 | 0 | 1 |
| 2004-12-01 | 464754.0 | 0 | 0 | 0 | 1 |
| 2005-01-01 | 423416.1 | 1 | 0 | 0 | 0 |
| 2005-02-01 | 413585.6 | 1 | 0 | 0 | 0 |
| 2005-03-01 | 448274.6 | 1 | 0 | 0 | 0 |
| 2005-04-01 | 449587.8 | 0 | 1 | 0 | 0 |
| 2005-05-01 | 449339.9 | 0 | 1 | 0 | 0 |
| 2005-06-01 | 457384.0 | 0 | 1 | 0 | 0 |
| 2005-07-01 | 464479.2 | 0 | 0 | 1 | 0 |
| 2005-08-01 | 471260.0 | 0 | 0 | 1 | 0 |
| 2005-09-01 | 454396.7 | 0 | 0 | 1 | 0 |
| 2005-10-01 | 470472.5 | 0 | 0 | 0 | 1 |
| 2005-11-01 | 482233.9 | 0 | 0 | 0 | 1 |
| 2005-12-01 | 489035.5 | 0 | 0 | 0 | 1 |
| 2006-01-01 | 454938.8 | 1 | 0 | 0 | 0 |
| 2006-02-01 | 435744.4 | 1 | 0 | 0 | 0 |
| 2006-03-01 | 462928.2 | 1 | 0 | 0 | 0 |
| 2006-04-01 | 449594.2 | 0 | 1 | 0 | 0 |
| 2006-05-01 | 481067.4 | 0 | 1 | 0 | 0 |
| 2006-06-01 | 484028.7 | 0 | 1 | 0 | 0 |
| 2006-07-01 | 502640.1 | 0 | 0 | 1 | 0 |
| 2006-08-01 | 508884.4 | 0 | 0 | 1 | 0 |
| 2006-09-01 | 486319.2 | 0 | 0 | 1 | 0 |
| 2006-10-01 | 516634.7 | 0 | 0 | 0 | 1 |
| 2006-11-01 | 527697.6 | 0 | 0 | 0 | 1 |
| 2006-12-01 | 529190.1 | 0 | 0 | 0 | 1 |
| 2007-01-01 | 502525.4 | 1 | 0 | 0 | 0 |
| 2007-02-01 | 480522.5 | 1 | 0 | 0 | 0 |
| 2007-03-01 | 514213.9 | 1 | 0 | 0 | 0 |
| 2007-04-01 | 507056.6 | 0 | 1 | 0 | 0 |
| 2007-05-01 | 532457.5 | 0 | 1 | 0 | 0 |
| 2007-06-01 | 536821.9 | 0 | 1 | 0 | 0 |
| 2007-07-01 | 546218.4 | 0 | 0 | 1 | 0 |
| 2007-08-01 | 547231.6 | 0 | 0 | 1 | 0 |
| 2007-09-01 | 518008.7 | 0 | 0 | 1 | 0 |
| 2007-10-01 | 560092.5 | 0 | 0 | 0 | 1 |
| 2007-11-01 | 556972.1 | 0 | 0 | 0 | 1 |
| 2007-12-01 | 554623.7 | 0 | 0 | 0 | 1 |
| 2008-01-01 | 539919.4 | 1 | 0 | 0 | 0 |
| 2008-02-01 | 526969.0 | 1 | 0 | 0 | 0 |
| 2008-03-01 | 545547.9 | 1 | 0 | 0 | 0 |
| 2008-04-01 | 556844.7 | 0 | 1 | 0 | 0 |
| 2008-05-01 | 566261.6 | 0 | 1 | 0 | 0 |
| 2008-06-01 | 586646.3 | 0 | 1 | 0 | 0 |
| 2008-07-01 | 611329.3 | 0 | 0 | 1 | 0 |
| 2008-08-01 | 590258.9 | 0 | 0 | 1 | 0 |
| 2008-09-01 | 579510.3 | 0 | 0 | 1 | 0 |
| 2008-10-01 | 610355.8 | 0 | 0 | 0 | 1 |
| 2008-11-01 | 587102.4 | 0 | 0 | 0 | 1 |
| 2008-12-01 | 571281.5 | 0 | 0 | 0 | 1 |
| 2009-01-01 | 537249.7 | 1 | 0 | 0 | 0 |
| 2009-02-01 | 522587.3 | 1 | 0 | 0 | 0 |
| 2009-03-01 | 559569.9 | 1 | 0 | 0 | 0 |
| 2009-04-01 | 551362.7 | 0 | 1 | 0 | 0 |
| 2009-05-01 | 567616.5 | 0 | 1 | 0 | 0 |
| 2009-06-01 | 581478.5 | 0 | 1 | 0 | 0 |
| 2009-07-01 | 600855.9 | 0 | 0 | 1 | 0 |
| 2009-08-01 | 597157.6 | 0 | 0 | 1 | 0 |
| 2009-09-01 | 593340.6 | 0 | 0 | 1 | 0 |
| 2009-10-01 | 630429.8 | 0 | 0 | 0 | 1 |
| 2009-11-01 | 634539.1 | 0 | 0 | 0 | 1 |
| 2009-12-01 | 648536.0 | 0 | 0 | 0 | 1 |
| 2010-01-01 | 593215.7 | 1 | 0 | 0 | 0 |
| 2010-02-01 | 582757.9 | 1 | 0 | 0 | 0 |
| 2010-03-01 | 632195.5 | 1 | 0 | 0 | 0 |
| 2010-04-01 | 619829.4 | 0 | 1 | 0 | 0 |
| 2010-05-01 | 636436.4 | 0 | 1 | 0 | 0 |
| 2010-06-01 | 646544.9 | 0 | 1 | 0 | 0 |
| 2010-07-01 | 669400.3 | 0 | 0 | 1 | 0 |
| 2010-08-01 | 671324.7 | 0 | 0 | 1 | 0 |
| 2010-09-01 | 661392.5 | 0 | 0 | 1 | 0 |
| 2010-10-01 | 683363.4 | 0 | 0 | 0 | 1 |
| 2010-11-01 | 701506.8 | 0 | 0 | 0 | 1 |
| 2010-12-01 | 694645.8 | 0 | 0 | 0 | 1 |
| 2011-01-01 | 645375.7 | 1 | 0 | 0 | 0 |
| 2011-02-01 | 643602.4 | 1 | 0 | 0 | 0 |
| 2011-03-01 | 663209.5 | 1 | 0 | 0 | 0 |
| 2011-04-01 | 661339.3 | 0 | 1 | 0 | 0 |
| 2011-05-01 | 691797.1 | 0 | 1 | 0 | 0 |
| 2011-06-01 | 699581.1 | 0 | 1 | 0 | 0 |
| 2011-07-01 | 701856.1 | 0 | 0 | 1 | 0 |
| 2011-08-01 | 705501.7 | 0 | 0 | 1 | 0 |
| 2011-09-01 | 674094.1 | 0 | 0 | 1 | 0 |
| 2011-10-01 | 702004.4 | 0 | 0 | 0 | 1 |
| 2011-11-01 | 718870.3 | 0 | 0 | 0 | 1 |
| 2011-12-01 | 718815.1 | 0 | 0 | 0 | 1 |
| 2012-01-01 | 670677.0 | 1 | 0 | 0 | 0 |
| 2012-02-01 | 668402.5 | 1 | 0 | 0 | 0 |
| 2012-03-01 | 712377.4 | 1 | 0 | 0 | 0 |
| 2012-04-01 | 688631.0 | 0 | 1 | 0 | 0 |
| 2012-05-01 | 720390.1 | 0 | 1 | 0 | 0 |
| 2012-06-01 | 715746.2 | 0 | 1 | 0 | 0 |
| 2012-07-01 | 741180.7 | 0 | 0 | 1 | 0 |
| 2012-08-01 | 746975.3 | 0 | 0 | 1 | 0 |
| 2012-09-01 | 696007.7 | 0 | 0 | 1 | 0 |
| 2012-10-01 | 743137.3 | 0 | 0 | 0 | 1 |
| 2012-11-01 | 740005.8 | 0 | 0 | 0 | 1 |
| 2012-12-01 | 732876.0 | 0 | 0 | 0 | 1 |
| 2013-01-01 | 711982.4 | 1 | 0 | 0 | 0 |
| 2013-02-01 | 681710.9 | 1 | 0 | 0 | 0 |
| 2013-03-01 | 727191.2 | 1 | 0 | 0 | 0 |
| 2013-04-01 | 743248.5 | 0 | 1 | 0 | 0 |
| 2013-05-01 | 741247.9 | 0 | 1 | 0 | 0 |
| 2013-06-01 | 746586.1 | 0 | 1 | 0 | 0 |
| 2013-07-01 | 771847.4 | 0 | 0 | 1 | 0 |
| 2013-08-01 | 760182.8 | 0 | 0 | 1 | 0 |
| 2013-09-01 | 733150.0 | 0 | 0 | 1 | 0 |
| 2013-10-01 | 774633.0 | 0 | 0 | 0 | 1 |
| 2013-11-01 | 768241.3 | 0 | 0 | 0 | 1 |
| 2013-12-01 | 775507.5 | 0 | 0 | 0 | 1 |
| 2014-01-01 | 742056.4 | 1 | 0 | 0 | 0 |
| 2014-02-01 | 727127.9 | 1 | 0 | 0 | 0 |
| 2014-03-01 | 740296.2 | 1 | 0 | 0 | 0 |
| 2014-04-01 | 746662.5 | 0 | 1 | 0 | 0 |
| 2014-05-01 | 750729.1 | 0 | 1 | 0 | 0 |
| 2014-06-01 | 725721.1 | 0 | 1 | 0 | 0 |
| 2014-07-01 | 761889.7 | 0 | 0 | 1 | 0 |
| 2014-08-01 | 751000.9 | 0 | 0 | 1 | 0 |
| 2014-09-01 | 746468.5 | 0 | 0 | 1 | 0 |
| 2014-10-01 | 769184.6 | 0 | 0 | 0 | 1 |
| 2014-11-01 | 758337.4 | 0 | 0 | 0 | 1 |
| 2014-12-01 | 766682.7 | 0 | 0 | 0 | 1 |
| 2015-01-01 | 716529.0 | 1 | 0 | 0 | 0 |
| 2015-02-01 | 688456.9 | 1 | 0 | 0 | 0 |
| 2015-03-01 | 743149.4 | 1 | 0 | 0 | 0 |
| 2015-04-01 | 715541.6 | 0 | 1 | 0 | 0 |
| 2015-05-01 | 705184.3 | 0 | 1 | 0 | 0 |
| 2015-06-01 | 705185.9 | 0 | 1 | 0 | 0 |
| 2015-07-01 | 724789.3 | 0 | 0 | 1 | 0 |
| 2015-08-01 | 708002.6 | 0 | 0 | 1 | 0 |
| 2015-09-01 | 708218.0 | 0 | 0 | 1 | 0 |
| 2015-10-01 | 734091.2 | 0 | 0 | 0 | 1 |
| 2015-11-01 | 719913.1 | 0 | 0 | 0 | 1 |
| 2015-12-01 | 723198.2 | 0 | 0 | 0 | 1 |
| 2016-01-01 | 672073.1 | 1 | 0 | 0 | 0 |
| 2016-02-01 | 668626.4 | 1 | 0 | 0 | 0 |
| 2016-03-01 | 700354.6 | 1 | 0 | 0 | 0 |
| 2016-04-01 | 683511.0 | 0 | 1 | 0 | 0 |
| 2016-05-01 | 686641.2 | 0 | 1 | 0 | 0 |
| 2016-06-01 | 714558.7 | 0 | 1 | 0 | 0 |
| 2016-07-01 | 706490.1 | 0 | 0 | 1 | 0 |
| 2016-08-01 | 707057.5 | 0 | 0 | 1 | 0 |
| 2016-09-01 | 673140.2 | 0 | 0 | 1 | 0 |
| 2016-10-01 | 691664.9 | 0 | 0 | 0 | 1 |
| 2016-11-01 | 711514.8 | 0 | 0 | 0 | 1 |
| 2016-12-01 | 740857.8 | 0 | 0 | 0 | 1 |
| 2017-01-01 | 687067.6 | 1 | 0 | 0 | 0 |
| 2017-02-01 | 668890.8 | 1 | 0 | 0 | 0 |
| 2017-03-01 | 706794.5 | 1 | 0 | 0 | 0 |
| 2017-04-01 | 680494.8 | 0 | 1 | 0 | 0 |
| 2017-05-01 | 710853.1 | 0 | 1 | 0 | 0 |
| 2017-06-01 | 721049.9 | 0 | 1 | 0 | 0 |
| 2017-07-01 | 720369.6 | 0 | 0 | 1 | 0 |
| 2017-08-01 | 716687.3 | 0 | 0 | 1 | 0 |
| 2017-09-01 | 680262.9 | 0 | 0 | 1 | 0 |
| 2017-10-01 | 704081.0 | 0 | 0 | 0 | 1 |
| 2017-11-01 | 723145.3 | 0 | 0 | 0 | 1 |
| 2017-12-01 | 749380.6 | 0 | 0 | 0 | 1 |
| 2018-01-01 | 704921.1 | 1 | 0 | 0 | 0 |
| 2018-02-01 | 669626.2 | 1 | 0 | 0 | 0 |
| 2018-03-01 | 708049.4 | 1 | 0 | 0 | 0 |
| 2018-04-01 | 704902.6 | 0 | 1 | 0 | 0 |
| 2018-05-01 | 683679.2 | 0 | 1 | 0 | 0 |
| 2018-06-01 | 720058.1 | 0 | 1 | 0 | 0 |
| 2018-07-01 | 722115.2 | 0 | 0 | 1 | 0 |
| 2018-08-01 | 720344.0 | 0 | 0 | 1 | 0 |
| 2018-09-01 | 685045.0 | 0 | 0 | 1 | 0 |
| 2018-10-01 | 727494.6 | 0 | 0 | 0 | 1 |
| 2018-11-01 | 730102.7 | 0 | 0 | 0 | 1 |
| 2018-12-01 | 739709.0 | 0 | 0 | 0 | 1 |
| 2019-01-01 | 706763.8 | 1 | 0 | 0 | 0 |
| 2019-02-01 | 689904.4 | 1 | 0 | 0 | 0 |
| 2019-03-01 | 698882.0 | 1 | 0 | 0 | 0 |
| 2019-04-01 | 712972.4 | 0 | 1 | 0 | 0 |
| 2019-05-01 | 726522.7 | 0 | 1 | 0 | 0 |
| 2019-06-01 | 718205.0 | 0 | 1 | 0 | 0 |
| 2019-07-01 | 751610.0 | 0 | 0 | 1 | 0 |
| 2019-08-01 | 738295.7 | 0 | 0 | 1 | 0 |
| 2019-09-01 | 735714.7 | 0 | 0 | 1 | 0 |
| 2019-10-01 | 765904.8 | 0 | 0 | 0 | 1 |
| 2019-11-01 | 751888.5 | 0 | 0 | 0 | 1 |
| 2019-12-01 | 760367.0 | 0 | 0 | 0 | 1 |
| 2020-01-01 | 725058.8 | 1 | 0 | 0 | 0 |
| 2020-02-01 | 714600.7 | 1 | 0 | 0 | 0 |
| 2020-03-01 | 723115.5 | 1 | 0 | 0 | 0 |
| 2020-04-01 | 653864.1 | 0 | 1 | 0 | 0 |
| 2020-05-01 | 661612.0 | 0 | 1 | 0 | 0 |
| 2020-06-01 | 694692.1 | 0 | 1 | 0 | 0 |
| 2020-07-01 | 737299.0 | 0 | 0 | 1 | 0 |
| 2020-08-01 | 728749.0 | 0 | 0 | 1 | 0 |
| 2020-09-01 | 735042.6 | 0 | 0 | 1 | 0 |
| 2020-10-01 | 758357.7 | 0 | 0 | 0 | 1 |
| 2020-11-01 | 754535.5 | 0 | 0 | 0 | 1 |
| 2020-12-01 | 770907.3 | 0 | 0 | 0 | 1 |
| 2021-01-01 | 731680.6 | 1 | 0 | 0 | 0 |
| 2021-02-01 | 750086.1 | 1 | 0 | 0 | 0 |
| 2021-03-01 | 811273.1 | 1 | 0 | 0 | 0 |
| 2021-04-01 | 782022.8 | 0 | 1 | 0 | 0 |
| 2021-05-01 | 775193.2 | 0 | 1 | 0 | 0 |
| 2021-06-01 | 772853.1 | 0 | 1 | 0 | 0 |
| 2021-07-01 | 796847.4 | 0 | 0 | 1 | 0 |
| 2021-08-01 | 785520.1 | 0 | 0 | 1 | 0 |
| 2021-09-01 | 764799.1 | 0 | 0 | 1 | 0 |
| 2021-10-01 | 761170.8 | 0 | 0 | 0 | 1 |
| 2021-11-01 | 772984.2 | 0 | 0 | 0 | 1 |
| 2021-12-01 | 786974.9 | 0 | 0 | 0 | 1 |
| 2022-01-01 | 752223.6 | 1 | 0 | 0 | 0 |
| 2022-02-01 | 753542.9 | 1 | 0 | 0 | 0 |
Dá uma olhada na minha nova estimação do pib com essas dummies:
modelo_dummies <- lm(PIB ~ Data + D1 + D2 + D3, dataset)
ggplot(dataset, aes(x = Data, y= PIB)) +
geom_line(color = "steelblue") +
scale_y_continuous(labels = scales::number_format()) +
geom_line(aes(y = predict(modelo_dummies))) +
theme_classic()
5 Estacionaridade: O que é? Porque usamos séries estacionárias?
Existem dois conceitos sobre a estacionariedade, sendo divididos em estacionariedade fraca e forte.
Estacionariedade forte: a média e a variância são as mesmas independente de translações no tempo. \[ \bar{\mu} = f(tempo) \] \[ \bar{\sigma}^2 = f(tempo) \] Estacionariedade fraca: a média, a variância e a autocorrelação da série como um todo, são constantes.
Ao invés de colocar uma equação aqui, vou mostrar o comportamento de uma média não constante com a série apresentada no documento.
Lembrando daquele primeiro gráfico que apresentei, vou definir 3 diferentes intervalos:
- de 1990 a 1999
- de 2000 a 2009
- de 2010 para frente.
Em cada intervalo, calculo a média do pib. A média (a linha preta) é a mesma em todo o intervalo analisado?
media_primeiro <- dataset %>%
filter(Data < as.POSIXct("2000-01-01", tz="UTC")) %>%
summarise(mean(PIB)) %>%
pull()
media_segundo <- dataset %>%
filter(Data >= as.POSIXct("2000-01-01", tz="UTC") &
Data < as.POSIXct("2010-01-01", tz="UTC")) %>%
summarise(mean(PIB)) %>%
pull()
media_terceiro <- dataset %>%
filter(Data >= as.POSIXct("2010-01-01", tz="UTC")) %>%
summarise(mean(PIB)) %>%
pull()
ggplot(dataset, aes(x = Data, y= PIB)) +
geom_line(color = "steelblue") +
scale_y_continuous(labels = scales::number_format()) +
geom_vline(xintercept = as.POSIXct("2000-01-01", tz="UTC"), color = "red") +
geom_vline(xintercept = as.POSIXct("2010-01-01", tz="UTC"), color = "red") +
geom_segment(aes(
x=as.POSIXct("1990-01-01", tz="UTC"),
xend=as.POSIXct("2000-01-01", tz="UTC"),
y=media_primeiro,
yend=media_primeiro)) +
geom_segment(aes(
x=as.POSIXct("2000-01-01", tz="UTC"),
xend=as.POSIXct("2010-01-01", tz="UTC"),
y=media_segundo,
yend=media_segundo)) +
geom_segment(aes(
x=as.POSIXct("2010-01-01", tz="UTC"),
xend=as.POSIXct("2022-02-01", tz="UTC"),
y=media_terceiro,
yend=media_terceiro)) +
theme_classic()
Como vimos anteriormente, essa série de tempo tem uma tendência positiva. Então a média dela aumenta conforme o passar do tempo, e isso é uma característica de série não estacionária.
E qual o problema disso? Bom, existem alguns motivos do por que não é algo interessante trabalhar com séries não estacionárias. Alguns desses podem estar relacionados ao comportamento dessa série em presença de choques (série mal comportada), outras podem criticar que pela média (e variância) não ser constante, a distribuição de valores dessa variável também muda. No fim, é interessante trabalhar com série estacionária por um motivo crucial: a estimação fica mais precisa e os resultados são confiáveis.
6 Estacionarizando uma série temporal.
A diferenciação de uma série é um método de tornar uma série não estacionária em estacionária. Para isso, fazemos simplesmente a diferenciação de um valor com sua observação passada. Exemplo: o valor do PIB em Janeiro de 2020 é subtraido do valor do PIB em dezembro de 2019 (exatamente um mês antes), assim, o novo valor resultante dessa subtração é o valor diferenciado. Dá uma olhada na coluna nova:
dataset$data_em_segundos <- NULL #nada demais aqui
dataset <- dataset %>%
mutate(primeira_diferenca = PIB - lag(PIB))
dataset %>%
kbl() %>%
kable_material() %>%
scroll_box(width = "800px", height = "350px")
| Data | PIB | D1 | D2 | D3 | D4 | primeira_diferenca |
|---|---|---|---|---|---|---|
| 1990-01-01 | 174698.3 | 1 | 0 | 0 | 0 | NA |
| 1990-02-01 | 195161.9 | 1 | 0 | 0 | 0 | 20463.674592 |
| 1990-03-01 | 268903.2 | 1 | 0 | 0 | 0 | 73741.294872 |
| 1990-04-01 | 211052.0 | 0 | 1 | 0 | 0 | -57851.204627 |
| 1990-05-01 | 219974.2 | 0 | 1 | 0 | 0 | 8922.177578 |
| 1990-06-01 | 195822.5 | 0 | 1 | 0 | 0 | -24151.721808 |
| 1990-07-01 | 195128.7 | 0 | 0 | 1 | 0 | -693.787686 |
| 1990-08-01 | 190782.3 | 0 | 0 | 1 | 0 | -4346.370295 |
| 1990-09-01 | 183468.6 | 0 | 0 | 1 | 0 | -7313.721860 |
| 1990-10-01 | 202031.9 | 0 | 0 | 0 | 1 | 18563.331246 |
| 1990-11-01 | 208569.9 | 0 | 0 | 0 | 1 | 6537.996607 |
| 1990-12-01 | 184664.1 | 0 | 0 | 0 | 1 | -23905.816037 |
| 1991-01-01 | 178441.2 | 1 | 0 | 0 | 0 | -6222.879791 |
| 1991-02-01 | 175443.5 | 1 | 0 | 0 | 0 | -2997.769408 |
| 1991-03-01 | 168590.9 | 1 | 0 | 0 | 0 | -6852.601899 |
| 1991-04-01 | 196841.5 | 0 | 1 | 0 | 0 | 28250.674779 |
| 1991-05-01 | 209151.1 | 0 | 1 | 0 | 0 | 12309.553378 |
| 1991-06-01 | 213064.0 | 0 | 1 | 0 | 0 | 3912.913833 |
| 1991-07-01 | 209675.4 | 0 | 0 | 1 | 0 | -3388.599690 |
| 1991-08-01 | 208926.1 | 0 | 0 | 1 | 0 | -749.273257 |
| 1991-09-01 | 187224.5 | 0 | 0 | 1 | 0 | -21701.679003 |
| 1991-10-01 | 204366.7 | 0 | 0 | 0 | 1 | 17142.249923 |
| 1991-11-01 | 201426.0 | 0 | 0 | 0 | 1 | -2940.736570 |
| 1991-12-01 | 184176.1 | 0 | 0 | 0 | 1 | -17249.831280 |
| 1992-01-01 | 183638.0 | 1 | 0 | 0 | 0 | -538.105880 |
| 1992-02-01 | 185993.9 | 1 | 0 | 0 | 0 | 2355.857639 |
| 1992-03-01 | 185350.3 | 1 | 0 | 0 | 0 | -643.560250 |
| 1992-04-01 | 182378.5 | 0 | 1 | 0 | 0 | -2971.810641 |
| 1992-05-01 | 189865.3 | 0 | 1 | 0 | 0 | 7486.801033 |
| 1992-06-01 | 195462.0 | 0 | 1 | 0 | 0 | 5596.686594 |
| 1992-07-01 | 196981.7 | 0 | 0 | 1 | 0 | 1519.646959 |
| 1992-08-01 | 196366.6 | 0 | 0 | 1 | 0 | -615.016938 |
| 1992-09-01 | 196261.6 | 0 | 0 | 1 | 0 | -105.080866 |
| 1992-10-01 | 199191.2 | 0 | 0 | 0 | 1 | 2929.639967 |
| 1992-11-01 | 199492.9 | 0 | 0 | 0 | 1 | 301.658272 |
| 1992-12-01 | 180601.9 | 0 | 0 | 0 | 1 | -18890.979491 |
| 1993-01-01 | 181718.7 | 1 | 0 | 0 | 0 | 1116.775446 |
| 1993-02-01 | 181781.6 | 1 | 0 | 0 | 0 | 62.936506 |
| 1993-03-01 | 202999.9 | 1 | 0 | 0 | 0 | 21218.280575 |
| 1993-04-01 | 198595.8 | 0 | 1 | 0 | 0 | -4404.089945 |
| 1993-05-01 | 201615.4 | 0 | 1 | 0 | 0 | 3019.603650 |
| 1993-06-01 | 196966.4 | 0 | 1 | 0 | 0 | -4648.987302 |
| 1993-07-01 | 204903.1 | 0 | 0 | 1 | 0 | 7936.707647 |
| 1993-08-01 | 208411.0 | 0 | 0 | 1 | 0 | 3507.864675 |
| 1993-09-01 | 212291.2 | 0 | 0 | 1 | 0 | 3880.251188 |
| 1993-10-01 | 206761.4 | 0 | 0 | 0 | 1 | -5529.823335 |
| 1993-11-01 | 204688.8 | 0 | 0 | 0 | 1 | -2072.651171 |
| 1993-12-01 | 186310.9 | 0 | 0 | 0 | 1 | -18377.840063 |
| 1994-01-01 | 170812.2 | 1 | 0 | 0 | 0 | -15498.723726 |
| 1994-02-01 | 153255.1 | 1 | 0 | 0 | 0 | -17557.108993 |
| 1994-03-01 | 157942.7 | 1 | 0 | 0 | 0 | 4687.620478 |
| 1994-04-01 | 165888.8 | 0 | 1 | 0 | 0 | 7946.077558 |
| 1994-05-01 | 181951.4 | 0 | 1 | 0 | 0 | 16062.635753 |
| 1994-06-01 | 234223.0 | 0 | 1 | 0 | 0 | 52271.538762 |
| 1994-07-01 | 276449.0 | 0 | 0 | 1 | 0 | 42226.056294 |
| 1994-08-01 | 292405.2 | 0 | 0 | 1 | 0 | 15956.160097 |
| 1994-09-01 | 286222.6 | 0 | 0 | 1 | 0 | -6182.546218 |
| 1994-10-01 | 287548.8 | 0 | 0 | 0 | 1 | 1326.172438 |
| 1994-11-01 | 285495.9 | 0 | 0 | 0 | 1 | -2052.931660 |
| 1994-12-01 | 270221.1 | 0 | 0 | 0 | 1 | -15274.749152 |
| 1995-01-01 | 283593.0 | 1 | 0 | 0 | 0 | 13371.892583 |
| 1995-02-01 | 297416.2 | 1 | 0 | 0 | 0 | 13823.145175 |
| 1995-03-01 | 350398.8 | 1 | 0 | 0 | 0 | 52982.657754 |
| 1995-04-01 | 328964.8 | 0 | 1 | 0 | 0 | -21433.971850 |
| 1995-05-01 | 313058.1 | 0 | 1 | 0 | 0 | -15906.704119 |
| 1995-06-01 | 308031.1 | 0 | 1 | 0 | 0 | -5027.056317 |
| 1995-07-01 | 313975.8 | 0 | 0 | 1 | 0 | 5944.712853 |
| 1995-08-01 | 322332.3 | 0 | 0 | 1 | 0 | 8356.517773 |
| 1995-09-01 | 316736.5 | 0 | 0 | 1 | 0 | -5595.787026 |
| 1995-10-01 | 326753.2 | 0 | 0 | 0 | 1 | 10016.645216 |
| 1995-11-01 | 343874.5 | 0 | 0 | 0 | 1 | 17121.310223 |
| 1995-12-01 | 333031.8 | 0 | 0 | 0 | 1 | -10842.650342 |
| 1996-01-01 | 317047.9 | 1 | 0 | 0 | 0 | -15983.906177 |
| 1996-02-01 | 305395.4 | 1 | 0 | 0 | 0 | -11652.513176 |
| 1996-03-01 | 306785.5 | 1 | 0 | 0 | 0 | 1390.102419 |
| 1996-04-01 | 307989.4 | 0 | 1 | 0 | 0 | 1203.891283 |
| 1996-05-01 | 330323.3 | 0 | 1 | 0 | 0 | 22333.856174 |
| 1996-06-01 | 334154.1 | 0 | 1 | 0 | 0 | 3830.882821 |
| 1996-07-01 | 349618.7 | 0 | 0 | 1 | 0 | 15464.583839 |
| 1996-08-01 | 347794.9 | 0 | 0 | 1 | 0 | -1823.786647 |
| 1996-09-01 | 332844.3 | 0 | 0 | 1 | 0 | -14950.641351 |
| 1996-10-01 | 357046.3 | 0 | 0 | 0 | 1 | 24201.971861 |
| 1996-11-01 | 370608.3 | 0 | 0 | 0 | 1 | 13562.012080 |
| 1996-12-01 | 373142.3 | 0 | 0 | 0 | 1 | 2534.025798 |
| 1997-01-01 | 351528.2 | 1 | 0 | 0 | 0 | -21614.081419 |
| 1997-02-01 | 320413.7 | 1 | 0 | 0 | 0 | -31114.530542 |
| 1997-03-01 | 315466.4 | 1 | 0 | 0 | 0 | -4947.303810 |
| 1997-04-01 | 327302.0 | 0 | 1 | 0 | 0 | 11835.641082 |
| 1997-05-01 | 345831.0 | 0 | 1 | 0 | 0 | 18528.976747 |
| 1997-06-01 | 358158.7 | 0 | 1 | 0 | 0 | 12327.685897 |
| 1997-07-01 | 361573.9 | 0 | 0 | 1 | 0 | 3415.211534 |
| 1997-08-01 | 361826.6 | 0 | 0 | 1 | 0 | 252.676068 |
| 1997-09-01 | 360664.7 | 0 | 0 | 1 | 0 | -1161.848977 |
| 1997-10-01 | 383257.5 | 0 | 0 | 0 | 1 | 22592.738286 |
| 1997-11-01 | 373764.6 | 0 | 0 | 0 | 1 | -9492.884156 |
| 1997-12-01 | 353483.7 | 0 | 0 | 0 | 1 | -20280.844974 |
| 1998-01-01 | 343410.6 | 1 | 0 | 0 | 0 | -10073.146248 |
| 1998-02-01 | 326803.9 | 1 | 0 | 0 | 0 | -16606.729229 |
| 1998-03-01 | 345974.1 | 1 | 0 | 0 | 0 | 19170.271214 |
| 1998-04-01 | 347514.1 | 0 | 1 | 0 | 0 | 1539.985207 |
| 1998-05-01 | 363872.7 | 0 | 1 | 0 | 0 | 16358.545891 |
| 1998-06-01 | 365571.4 | 0 | 1 | 0 | 0 | 1698.779791 |
| 1998-07-01 | 372624.8 | 0 | 0 | 1 | 0 | 7053.325774 |
| 1998-08-01 | 371550.0 | 0 | 0 | 1 | 0 | -1074.765433 |
| 1998-09-01 | 364870.1 | 0 | 0 | 1 | 0 | -6679.912969 |
| 1998-10-01 | 376122.5 | 0 | 0 | 0 | 1 | 11252.410577 |
| 1998-11-01 | 371484.2 | 0 | 0 | 0 | 1 | -4638.341743 |
| 1998-12-01 | 355602.2 | 0 | 0 | 0 | 1 | -15881.960325 |
| 1999-01-01 | 343538.3 | 1 | 0 | 0 | 0 | -12063.862492 |
| 1999-02-01 | 339854.4 | 1 | 0 | 0 | 0 | -3683.937420 |
| 1999-03-01 | 369850.4 | 1 | 0 | 0 | 0 | 29995.995130 |
| 1999-04-01 | 363856.0 | 0 | 1 | 0 | 0 | -5994.443105 |
| 1999-05-01 | 369105.9 | 0 | 1 | 0 | 0 | 5249.993632 |
| 1999-06-01 | 377138.2 | 0 | 1 | 0 | 0 | 8032.296921 |
| 1999-07-01 | 371948.5 | 0 | 0 | 1 | 0 | -5189.729588 |
| 1999-08-01 | 374612.2 | 0 | 0 | 1 | 0 | 2663.723838 |
| 1999-09-01 | 365091.1 | 0 | 0 | 1 | 0 | -9521.184038 |
| 1999-10-01 | 382197.2 | 0 | 0 | 0 | 1 | 17106.107279 |
| 1999-11-01 | 393859.0 | 0 | 0 | 0 | 1 | 11661.828070 |
| 1999-12-01 | 388362.9 | 0 | 0 | 0 | 1 | -5496.080186 |
| 2000-01-01 | 362642.1 | 1 | 0 | 0 | 0 | -25720.780767 |
| 2000-02-01 | 358856.0 | 1 | 0 | 0 | 0 | -3786.129037 |
| 2000-03-01 | 360866.6 | 1 | 0 | 0 | 0 | 2010.616036 |
| 2000-04-01 | 355411.1 | 0 | 1 | 0 | 0 | -5455.513718 |
| 2000-05-01 | 383541.8 | 0 | 1 | 0 | 0 | 28130.734087 |
| 2000-06-01 | 395291.2 | 0 | 1 | 0 | 0 | 11749.358104 |
| 2000-07-01 | 392353.9 | 0 | 0 | 1 | 0 | -2937.323658 |
| 2000-08-01 | 396016.6 | 0 | 0 | 1 | 0 | 3662.766954 |
| 2000-09-01 | 376982.5 | 0 | 0 | 1 | 0 | -19034.127502 |
| 2000-10-01 | 401028.4 | 0 | 0 | 0 | 1 | 24045.917108 |
| 2000-11-01 | 401926.0 | 0 | 0 | 0 | 1 | 897.536159 |
| 2000-12-01 | 392830.2 | 0 | 0 | 0 | 1 | -9095.748664 |
| 2001-01-01 | 378555.7 | 1 | 0 | 0 | 0 | -14274.517490 |
| 2001-02-01 | 373680.5 | 1 | 0 | 0 | 0 | -4875.201028 |
| 2001-03-01 | 396297.1 | 1 | 0 | 0 | 0 | 22616.579101 |
| 2001-04-01 | 391681.0 | 0 | 1 | 0 | 0 | -4616.077177 |
| 2001-05-01 | 403024.6 | 0 | 1 | 0 | 0 | 11343.558808 |
| 2001-06-01 | 376879.6 | 0 | 1 | 0 | 0 | -26144.992997 |
| 2001-07-01 | 393747.9 | 0 | 0 | 1 | 0 | 16868.321452 |
| 2001-08-01 | 399986.6 | 0 | 0 | 1 | 0 | 6238.738316 |
| 2001-09-01 | 382427.8 | 0 | 0 | 1 | 0 | -17558.874063 |
| 2001-10-01 | 405474.1 | 0 | 0 | 0 | 1 | 23046.391900 |
| 2001-11-01 | 408778.9 | 0 | 0 | 0 | 1 | 3304.787136 |
| 2001-12-01 | 389627.4 | 0 | 0 | 0 | 1 | -19151.493926 |
| 2002-01-01 | 385716.9 | 1 | 0 | 0 | 0 | -3910.498167 |
| 2002-02-01 | 380808.2 | 1 | 0 | 0 | 0 | -4908.747494 |
| 2002-03-01 | 401797.1 | 1 | 0 | 0 | 0 | 20988.954055 |
| 2002-04-01 | 406332.1 | 0 | 1 | 0 | 0 | 4534.974843 |
| 2002-05-01 | 415711.9 | 0 | 1 | 0 | 0 | 9379.757197 |
| 2002-06-01 | 411967.6 | 0 | 1 | 0 | 0 | -3744.299089 |
| 2002-07-01 | 419565.0 | 0 | 0 | 1 | 0 | 7597.459352 |
| 2002-08-01 | 419810.7 | 0 | 0 | 1 | 0 | 245.636868 |
| 2002-09-01 | 406936.6 | 0 | 0 | 1 | 0 | -12874.108137 |
| 2002-10-01 | 423751.5 | 0 | 0 | 0 | 1 | 16814.933443 |
| 2002-11-01 | 421996.6 | 0 | 0 | 0 | 1 | -1754.935179 |
| 2002-12-01 | 395622.1 | 0 | 0 | 0 | 1 | -26374.510241 |
| 2003-01-01 | 379076.6 | 1 | 0 | 0 | 0 | -16545.439252 |
| 2003-02-01 | 386177.2 | 1 | 0 | 0 | 0 | 7100.591676 |
| 2003-03-01 | 403249.9 | 1 | 0 | 0 | 0 | 17072.698194 |
| 2003-04-01 | 407871.8 | 0 | 1 | 0 | 0 | 4621.866187 |
| 2003-05-01 | 401809.0 | 0 | 1 | 0 | 0 | -6062.738853 |
| 2003-06-01 | 397069.9 | 0 | 1 | 0 | 0 | -4739.171339 |
| 2003-07-01 | 418893.1 | 0 | 0 | 1 | 0 | 21823.227786 |
| 2003-08-01 | 413276.0 | 0 | 0 | 1 | 0 | -5617.044819 |
| 2003-09-01 | 421695.4 | 0 | 0 | 1 | 0 | 8419.320448 |
| 2003-10-01 | 438384.7 | 0 | 0 | 0 | 1 | 16689.362376 |
| 2003-11-01 | 432897.1 | 0 | 0 | 0 | 1 | -5487.579185 |
| 2003-12-01 | 430584.8 | 0 | 0 | 0 | 1 | -2312.355561 |
| 2004-01-01 | 401955.9 | 1 | 0 | 0 | 0 | -28628.911998 |
| 2004-02-01 | 395103.5 | 1 | 0 | 0 | 0 | -6852.418961 |
| 2004-03-01 | 433391.6 | 1 | 0 | 0 | 0 | 38288.147452 |
| 2004-04-01 | 430370.5 | 0 | 1 | 0 | 0 | -3021.082225 |
| 2004-05-01 | 434698.3 | 0 | 1 | 0 | 0 | 4327.767240 |
| 2004-06-01 | 447003.9 | 0 | 1 | 0 | 0 | 12305.640079 |
| 2004-07-01 | 459626.6 | 0 | 0 | 1 | 0 | 12622.626250 |
| 2004-08-01 | 451445.7 | 0 | 0 | 1 | 0 | -8180.829496 |
| 2004-09-01 | 437814.5 | 0 | 0 | 1 | 0 | -13631.186502 |
| 2004-10-01 | 450775.7 | 0 | 0 | 0 | 1 | 12961.200506 |
| 2004-11-01 | 464057.2 | 0 | 0 | 0 | 1 | 13281.437852 |
| 2004-12-01 | 464754.0 | 0 | 0 | 0 | 1 | 696.770337 |
| 2005-01-01 | 423416.1 | 1 | 0 | 0 | 0 | -41337.866379 |
| 2005-02-01 | 413585.6 | 1 | 0 | 0 | 0 | -9830.506799 |
| 2005-03-01 | 448274.6 | 1 | 0 | 0 | 0 | 34688.980306 |
| 2005-04-01 | 449587.8 | 0 | 1 | 0 | 0 | 1313.280327 |
| 2005-05-01 | 449339.9 | 0 | 1 | 0 | 0 | -247.951948 |
| 2005-06-01 | 457384.0 | 0 | 1 | 0 | 0 | 8044.093412 |
| 2005-07-01 | 464479.2 | 0 | 0 | 1 | 0 | 7095.233882 |
| 2005-08-01 | 471260.0 | 0 | 0 | 1 | 0 | 6780.750604 |
| 2005-09-01 | 454396.7 | 0 | 0 | 1 | 0 | -16863.236821 |
| 2005-10-01 | 470472.5 | 0 | 0 | 0 | 1 | 16075.750034 |
| 2005-11-01 | 482233.9 | 0 | 0 | 0 | 1 | 11761.417679 |
| 2005-12-01 | 489035.5 | 0 | 0 | 0 | 1 | 6801.586206 |
| 2006-01-01 | 454938.8 | 1 | 0 | 0 | 0 | -34096.728136 |
| 2006-02-01 | 435744.4 | 1 | 0 | 0 | 0 | -19194.306683 |
| 2006-03-01 | 462928.2 | 1 | 0 | 0 | 0 | 27183.712996 |
| 2006-04-01 | 449594.2 | 0 | 1 | 0 | 0 | -13333.946062 |
| 2006-05-01 | 481067.4 | 0 | 1 | 0 | 0 | 31473.229738 |
| 2006-06-01 | 484028.7 | 0 | 1 | 0 | 0 | 2961.299898 |
| 2006-07-01 | 502640.1 | 0 | 0 | 1 | 0 | 18611.400446 |
| 2006-08-01 | 508884.4 | 0 | 0 | 1 | 0 | 6244.219555 |
| 2006-09-01 | 486319.2 | 0 | 0 | 1 | 0 | -22565.163242 |
| 2006-10-01 | 516634.7 | 0 | 0 | 0 | 1 | 30315.454873 |
| 2006-11-01 | 527697.6 | 0 | 0 | 0 | 1 | 11062.951241 |
| 2006-12-01 | 529190.1 | 0 | 0 | 0 | 1 | 1492.501516 |
| 2007-01-01 | 502525.4 | 1 | 0 | 0 | 0 | -26664.662077 |
| 2007-02-01 | 480522.5 | 1 | 0 | 0 | 0 | -22002.958547 |
| 2007-03-01 | 514213.9 | 1 | 0 | 0 | 0 | 33691.431913 |
| 2007-04-01 | 507056.6 | 0 | 1 | 0 | 0 | -7157.271718 |
| 2007-05-01 | 532457.5 | 0 | 1 | 0 | 0 | 25400.866272 |
| 2007-06-01 | 536821.9 | 0 | 1 | 0 | 0 | 4364.421979 |
| 2007-07-01 | 546218.4 | 0 | 0 | 1 | 0 | 9396.487430 |
| 2007-08-01 | 547231.6 | 0 | 0 | 1 | 0 | 1013.136180 |
| 2007-09-01 | 518008.7 | 0 | 0 | 1 | 0 | -29222.908204 |
| 2007-10-01 | 560092.5 | 0 | 0 | 0 | 1 | 42083.893002 |
| 2007-11-01 | 556972.1 | 0 | 0 | 0 | 1 | -3120.419778 |
| 2007-12-01 | 554623.7 | 0 | 0 | 0 | 1 | -2348.454603 |
| 2008-01-01 | 539919.4 | 1 | 0 | 0 | 0 | -14704.275145 |
| 2008-02-01 | 526969.0 | 1 | 0 | 0 | 0 | -12950.424666 |
| 2008-03-01 | 545547.9 | 1 | 0 | 0 | 0 | 18578.917852 |
| 2008-04-01 | 556844.7 | 0 | 1 | 0 | 0 | 11296.819495 |
| 2008-05-01 | 566261.6 | 0 | 1 | 0 | 0 | 9416.906158 |
| 2008-06-01 | 586646.3 | 0 | 1 | 0 | 0 | 20384.694482 |
| 2008-07-01 | 611329.3 | 0 | 0 | 1 | 0 | 24682.966344 |
| 2008-08-01 | 590258.9 | 0 | 0 | 1 | 0 | -21070.371827 |
| 2008-09-01 | 579510.3 | 0 | 0 | 1 | 0 | -10748.587848 |
| 2008-10-01 | 610355.8 | 0 | 0 | 0 | 1 | 30845.503960 |
| 2008-11-01 | 587102.4 | 0 | 0 | 0 | 1 | -23253.386798 |
| 2008-12-01 | 571281.5 | 0 | 0 | 0 | 1 | -15820.959326 |
| 2009-01-01 | 537249.7 | 1 | 0 | 0 | 0 | -34031.751227 |
| 2009-02-01 | 522587.3 | 1 | 0 | 0 | 0 | -14662.381196 |
| 2009-03-01 | 559569.9 | 1 | 0 | 0 | 0 | 36982.563018 |
| 2009-04-01 | 551362.7 | 0 | 1 | 0 | 0 | -8207.187303 |
| 2009-05-01 | 567616.5 | 0 | 1 | 0 | 0 | 16253.808642 |
| 2009-06-01 | 581478.5 | 0 | 1 | 0 | 0 | 13861.928018 |
| 2009-07-01 | 600855.9 | 0 | 0 | 1 | 0 | 19377.488380 |
| 2009-08-01 | 597157.6 | 0 | 0 | 1 | 0 | -3698.362088 |
| 2009-09-01 | 593340.6 | 0 | 0 | 1 | 0 | -3816.970439 |
| 2009-10-01 | 630429.8 | 0 | 0 | 0 | 1 | 37089.151413 |
| 2009-11-01 | 634539.1 | 0 | 0 | 0 | 1 | 4109.319152 |
| 2009-12-01 | 648536.0 | 0 | 0 | 0 | 1 | 13996.958188 |
| 2010-01-01 | 593215.7 | 1 | 0 | 0 | 0 | -55320.322877 |
| 2010-02-01 | 582757.9 | 1 | 0 | 0 | 0 | -10457.767508 |
| 2010-03-01 | 632195.5 | 1 | 0 | 0 | 0 | 49437.597001 |
| 2010-04-01 | 619829.4 | 0 | 1 | 0 | 0 | -12366.129393 |
| 2010-05-01 | 636436.4 | 0 | 1 | 0 | 0 | 16607.017711 |
| 2010-06-01 | 646544.9 | 0 | 1 | 0 | 0 | 10108.442692 |
| 2010-07-01 | 669400.3 | 0 | 0 | 1 | 0 | 22855.430228 |
| 2010-08-01 | 671324.7 | 0 | 0 | 1 | 0 | 1924.444387 |
| 2010-09-01 | 661392.5 | 0 | 0 | 1 | 0 | -9932.281419 |
| 2010-10-01 | 683363.4 | 0 | 0 | 0 | 1 | 21970.962665 |
| 2010-11-01 | 701506.8 | 0 | 0 | 0 | 1 | 18143.382517 |
| 2010-12-01 | 694645.8 | 0 | 0 | 0 | 1 | -6861.047521 |
| 2011-01-01 | 645375.7 | 1 | 0 | 0 | 0 | -49270.065776 |
| 2011-02-01 | 643602.4 | 1 | 0 | 0 | 0 | -1773.315303 |
| 2011-03-01 | 663209.5 | 1 | 0 | 0 | 0 | 19607.134583 |
| 2011-04-01 | 661339.3 | 0 | 1 | 0 | 0 | -1870.176232 |
| 2011-05-01 | 691797.1 | 0 | 1 | 0 | 0 | 30457.747866 |
| 2011-06-01 | 699581.1 | 0 | 1 | 0 | 0 | 7784.057011 |
| 2011-07-01 | 701856.1 | 0 | 0 | 1 | 0 | 2274.918411 |
| 2011-08-01 | 705501.7 | 0 | 0 | 1 | 0 | 3645.603998 |
| 2011-09-01 | 674094.1 | 0 | 0 | 1 | 0 | -31407.539577 |
| 2011-10-01 | 702004.4 | 0 | 0 | 0 | 1 | 27910.271712 |
| 2011-11-01 | 718870.3 | 0 | 0 | 0 | 1 | 16865.876493 |
| 2011-12-01 | 718815.1 | 0 | 0 | 0 | 1 | -55.203863 |
| 2012-01-01 | 670677.0 | 1 | 0 | 0 | 0 | -48138.051005 |
| 2012-02-01 | 668402.5 | 1 | 0 | 0 | 0 | -2274.565208 |
| 2012-03-01 | 712377.4 | 1 | 0 | 0 | 0 | 43974.893309 |
| 2012-04-01 | 688631.0 | 0 | 1 | 0 | 0 | -23746.341489 |
| 2012-05-01 | 720390.1 | 0 | 1 | 0 | 0 | 31759.112451 |
| 2012-06-01 | 715746.2 | 0 | 1 | 0 | 0 | -4643.879180 |
| 2012-07-01 | 741180.7 | 0 | 0 | 1 | 0 | 25434.495027 |
| 2012-08-01 | 746975.3 | 0 | 0 | 1 | 0 | 5794.547887 |
| 2012-09-01 | 696007.7 | 0 | 0 | 1 | 0 | -50967.538389 |
| 2012-10-01 | 743137.3 | 0 | 0 | 0 | 1 | 47129.543411 |
| 2012-11-01 | 740005.8 | 0 | 0 | 0 | 1 | -3131.463357 |
| 2012-12-01 | 732876.0 | 0 | 0 | 0 | 1 | -7129.865971 |
| 2013-01-01 | 711982.4 | 1 | 0 | 0 | 0 | -20893.590749 |
| 2013-02-01 | 681710.9 | 1 | 0 | 0 | 0 | -30271.464730 |
| 2013-03-01 | 727191.2 | 1 | 0 | 0 | 0 | 45480.270448 |
| 2013-04-01 | 743248.5 | 0 | 1 | 0 | 0 | 16057.279743 |
| 2013-05-01 | 741247.9 | 0 | 1 | 0 | 0 | -2000.599240 |
| 2013-06-01 | 746586.1 | 0 | 1 | 0 | 0 | 5338.257612 |
| 2013-07-01 | 771847.4 | 0 | 0 | 1 | 0 | 25261.327404 |
| 2013-08-01 | 760182.8 | 0 | 0 | 1 | 0 | -11664.684844 |
| 2013-09-01 | 733150.0 | 0 | 0 | 1 | 0 | -27032.711426 |
| 2013-10-01 | 774633.0 | 0 | 0 | 0 | 1 | 41482.988935 |
| 2013-11-01 | 768241.3 | 0 | 0 | 0 | 1 | -6391.729493 |
| 2013-12-01 | 775507.5 | 0 | 0 | 0 | 1 | 7266.240156 |
| 2014-01-01 | 742056.4 | 1 | 0 | 0 | 0 | -33451.111680 |
| 2014-02-01 | 727127.9 | 1 | 0 | 0 | 0 | -14928.525534 |
| 2014-03-01 | 740296.2 | 1 | 0 | 0 | 0 | 13168.292235 |
| 2014-04-01 | 746662.5 | 0 | 1 | 0 | 0 | 6366.278981 |
| 2014-05-01 | 750729.1 | 0 | 1 | 0 | 0 | 4066.656291 |
| 2014-06-01 | 725721.1 | 0 | 1 | 0 | 0 | -25008.067195 |
| 2014-07-01 | 761889.7 | 0 | 0 | 1 | 0 | 36168.604052 |
| 2014-08-01 | 751000.9 | 0 | 0 | 1 | 0 | -10888.758066 |
| 2014-09-01 | 746468.5 | 0 | 0 | 1 | 0 | -4532.377273 |
| 2014-10-01 | 769184.6 | 0 | 0 | 0 | 1 | 22716.013392 |
| 2014-11-01 | 758337.4 | 0 | 0 | 0 | 1 | -10847.138277 |
| 2014-12-01 | 766682.7 | 0 | 0 | 0 | 1 | 8345.306292 |
| 2015-01-01 | 716529.0 | 1 | 0 | 0 | 0 | -50153.680962 |
| 2015-02-01 | 688456.9 | 1 | 0 | 0 | 0 | -28072.133494 |
| 2015-03-01 | 743149.4 | 1 | 0 | 0 | 0 | 54692.512243 |
| 2015-04-01 | 715541.6 | 0 | 1 | 0 | 0 | -27607.864471 |
| 2015-05-01 | 705184.3 | 0 | 1 | 0 | 0 | -10357.287862 |
| 2015-06-01 | 705185.9 | 0 | 1 | 0 | 0 | 1.604084 |
| 2015-07-01 | 724789.3 | 0 | 0 | 1 | 0 | 19603.454148 |
| 2015-08-01 | 708002.6 | 0 | 0 | 1 | 0 | -16786.726774 |
| 2015-09-01 | 708218.0 | 0 | 0 | 1 | 0 | 215.361113 |
| 2015-10-01 | 734091.2 | 0 | 0 | 0 | 1 | 25873.246299 |
| 2015-11-01 | 719913.1 | 0 | 0 | 0 | 1 | -14178.141576 |
| 2015-12-01 | 723198.2 | 0 | 0 | 0 | 1 | 3285.183141 |
| 2016-01-01 | 672073.1 | 1 | 0 | 0 | 0 | -51125.177515 |
| 2016-02-01 | 668626.4 | 1 | 0 | 0 | 0 | -3446.709194 |
| 2016-03-01 | 700354.6 | 1 | 0 | 0 | 0 | 31728.239568 |
| 2016-04-01 | 683511.0 | 0 | 1 | 0 | 0 | -16843.640169 |
| 2016-05-01 | 686641.2 | 0 | 1 | 0 | 0 | 3130.236987 |
| 2016-06-01 | 714558.7 | 0 | 1 | 0 | 0 | 27917.520953 |
| 2016-07-01 | 706490.1 | 0 | 0 | 1 | 0 | -8068.635140 |
| 2016-08-01 | 707057.5 | 0 | 0 | 1 | 0 | 567.461708 |
| 2016-09-01 | 673140.2 | 0 | 0 | 1 | 0 | -33917.335207 |
| 2016-10-01 | 691664.9 | 0 | 0 | 0 | 1 | 18524.668311 |
| 2016-11-01 | 711514.8 | 0 | 0 | 0 | 1 | 19849.900871 |
| 2016-12-01 | 740857.8 | 0 | 0 | 0 | 1 | 29342.997023 |
| 2017-01-01 | 687067.6 | 1 | 0 | 0 | 0 | -53790.144634 |
| 2017-02-01 | 668890.8 | 1 | 0 | 0 | 0 | -18176.794345 |
| 2017-03-01 | 706794.5 | 1 | 0 | 0 | 0 | 37903.681477 |
| 2017-04-01 | 680494.8 | 0 | 1 | 0 | 0 | -26299.746873 |
| 2017-05-01 | 710853.1 | 0 | 1 | 0 | 0 | 30358.380076 |
| 2017-06-01 | 721049.9 | 0 | 1 | 0 | 0 | 10196.757855 |
| 2017-07-01 | 720369.6 | 0 | 0 | 1 | 0 | -680.274029 |
| 2017-08-01 | 716687.3 | 0 | 0 | 1 | 0 | -3682.348503 |
| 2017-09-01 | 680262.9 | 0 | 0 | 1 | 0 | -36424.390839 |
| 2017-10-01 | 704081.0 | 0 | 0 | 0 | 1 | 23818.060145 |
| 2017-11-01 | 723145.3 | 0 | 0 | 0 | 1 | 19064.316824 |
| 2017-12-01 | 749380.6 | 0 | 0 | 0 | 1 | 26235.293427 |
| 2018-01-01 | 704921.1 | 1 | 0 | 0 | 0 | -44459.436989 |
| 2018-02-01 | 669626.2 | 1 | 0 | 0 | 0 | -35294.965973 |
| 2018-03-01 | 708049.4 | 1 | 0 | 0 | 0 | 38423.274405 |
| 2018-04-01 | 704902.6 | 0 | 1 | 0 | 0 | -3146.806839 |
| 2018-05-01 | 683679.2 | 0 | 1 | 0 | 0 | -21223.468771 |
| 2018-06-01 | 720058.1 | 0 | 1 | 0 | 0 | 36378.968351 |
| 2018-07-01 | 722115.2 | 0 | 0 | 1 | 0 | 2057.111280 |
| 2018-08-01 | 720344.0 | 0 | 0 | 1 | 0 | -1771.199950 |
| 2018-09-01 | 685045.0 | 0 | 0 | 1 | 0 | -35299.032938 |
| 2018-10-01 | 727494.6 | 0 | 0 | 0 | 1 | 42449.635152 |
| 2018-11-01 | 730102.7 | 0 | 0 | 0 | 1 | 2608.107418 |
| 2018-12-01 | 739709.0 | 0 | 0 | 0 | 1 | 9606.221440 |
| 2019-01-01 | 706763.8 | 1 | 0 | 0 | 0 | -32945.174634 |
| 2019-02-01 | 689904.4 | 1 | 0 | 0 | 0 | -16859.349921 |
| 2019-03-01 | 698882.0 | 1 | 0 | 0 | 0 | 8977.567242 |
| 2019-04-01 | 712972.4 | 0 | 1 | 0 | 0 | 14090.389672 |
| 2019-05-01 | 726522.7 | 0 | 1 | 0 | 0 | 13550.325376 |
| 2019-06-01 | 718205.0 | 0 | 1 | 0 | 0 | -8317.694296 |
| 2019-07-01 | 751610.0 | 0 | 0 | 1 | 0 | 33404.994783 |
| 2019-08-01 | 738295.7 | 0 | 0 | 1 | 0 | -13314.337335 |
| 2019-09-01 | 735714.7 | 0 | 0 | 1 | 0 | -2580.969488 |
| 2019-10-01 | 765904.8 | 0 | 0 | 0 | 1 | 30190.031940 |
| 2019-11-01 | 751888.5 | 0 | 0 | 0 | 1 | -14016.216314 |
| 2019-12-01 | 760367.0 | 0 | 0 | 0 | 1 | 8478.452122 |
| 2020-01-01 | 725058.8 | 1 | 0 | 0 | 0 | -35308.160781 |
| 2020-02-01 | 714600.7 | 1 | 0 | 0 | 0 | -10458.148102 |
| 2020-03-01 | 723115.5 | 1 | 0 | 0 | 0 | 8514.783205 |
| 2020-04-01 | 653864.1 | 0 | 1 | 0 | 0 | -69251.356173 |
| 2020-05-01 | 661612.0 | 0 | 1 | 0 | 0 | 7747.898985 |
| 2020-06-01 | 694692.1 | 0 | 1 | 0 | 0 | 33080.084519 |
| 2020-07-01 | 737299.0 | 0 | 0 | 1 | 0 | 42606.881568 |
| 2020-08-01 | 728749.0 | 0 | 0 | 1 | 0 | -8549.956001 |
| 2020-09-01 | 735042.6 | 0 | 0 | 1 | 0 | 6293.593171 |
| 2020-10-01 | 758357.7 | 0 | 0 | 0 | 1 | 23315.044507 |
| 2020-11-01 | 754535.5 | 0 | 0 | 0 | 1 | -3822.121949 |
| 2020-12-01 | 770907.3 | 0 | 0 | 0 | 1 | 16371.802219 |
| 2021-01-01 | 731680.6 | 1 | 0 | 0 | 0 | -39226.724368 |
| 2021-02-01 | 750086.1 | 1 | 0 | 0 | 0 | 18405.514450 |
| 2021-03-01 | 811273.1 | 1 | 0 | 0 | 0 | 61187.004122 |
| 2021-04-01 | 782022.8 | 0 | 1 | 0 | 0 | -29250.321350 |
| 2021-05-01 | 775193.2 | 0 | 1 | 0 | 0 | -6829.653053 |
| 2021-06-01 | 772853.1 | 0 | 1 | 0 | 0 | -2340.094751 |
| 2021-07-01 | 796847.4 | 0 | 0 | 1 | 0 | 23994.359551 |
| 2021-08-01 | 785520.1 | 0 | 0 | 1 | 0 | -11327.316490 |
| 2021-09-01 | 764799.1 | 0 | 0 | 1 | 0 | -20720.997573 |
| 2021-10-01 | 761170.8 | 0 | 0 | 0 | 1 | -3628.292063 |
| 2021-11-01 | 772984.2 | 0 | 0 | 0 | 1 | 11813.363359 |
| 2021-12-01 | 786974.9 | 0 | 0 | 0 | 1 | 13990.705804 |
| 2022-01-01 | 752223.6 | 1 | 0 | 0 | 0 | -34751.284789 |
| 2022-02-01 | 753542.9 | 1 | 0 | 0 | 0 | 1319.302758 |
Esse NA em janeiro de 1990 é simplesmente um valor faltante. Como não temos a informação do PIB um mês antes, esse valor é perdido. Por isso existe perda de informação na diferenciação da série. Quanto mais vezes eu repito esse processo, mais observações eu perco.
Visualmente a média naqueles mesmos intervalos é igual a partir de agora???
media_primeiro <- dataset %>%
filter(Data < as.POSIXct("2000-01-01", tz="UTC")) %>%
summarise(mean(primeira_diferenca, na.rm = TRUE)) %>%
pull()
media_segundo <- dataset %>%
filter(Data >= as.POSIXct("2000-01-01", tz="UTC") &
Data < as.POSIXct("2010-01-01", tz="UTC")) %>%
summarise(mean(primeira_diferenca)) %>%
pull()
media_terceiro <- dataset %>%
filter(Data >= as.POSIXct("2010-01-01", tz="UTC")) %>%
summarise(mean(primeira_diferenca)) %>%
pull()
ggplot(dataset, aes(x = Data, y= primeira_diferenca)) +
geom_line(color = "steelblue") +
scale_y_continuous(labels = scales::number_format()) +
geom_vline(xintercept = as.POSIXct("2000-01-01", tz="UTC"), color = "red") +
geom_vline(xintercept = as.POSIXct("2010-01-01", tz="UTC"), color = "red") +
geom_segment(aes(
x=as.POSIXct("1990-01-01", tz="UTC"),
xend=as.POSIXct("2000-01-01", tz="UTC"),
y=media_primeiro,
yend=media_primeiro)) +
geom_segment(aes(
x=as.POSIXct("2000-01-01", tz="UTC"),
xend=as.POSIXct("2010-01-01", tz="UTC"),
y=media_segundo,
yend=media_segundo)) +
geom_segment(aes(
x=as.POSIXct("2010-01-01", tz="UTC"),
xend=as.POSIXct("2022-02-01", tz="UTC"),
y=media_terceiro,
yend=media_terceiro)) +
theme_classic()
Parece que sim! Mas como dá pra ver, não posso afirmar com a mais absoluta certeza que as médias são estatisticamente iguais. É aí que entram os testes de estacionariedade Dickey Fuller, Dickey Fuller aumentado, KPSS entre outros. Quanto mais testes são usados, mais certeza podemos ter que a média dessa série em primeira diferença é de fato uma constante (o mesmo vale para sua variância).
7 A função de autocorrelação e autocorrelação parcial.
Inicio essa seção com uma indagação, você sabe definir correlação? Como definiria correlação com suas palavras? Correlação implica causalidade?
Com as minhas palavras, correlação é o quanto uma coisa varia considerando a variação de outra coisa. Por exemplo, quanto maior a escolaridade de uma pessoa, maior tende a ser o nível de renda. Essas varíaveis são consideradas muito correlacionadas, e existe, além da correlação entre elas, um sentido de causalidade. Assim, além de maiores níveis de escolaridade estarem correlacionados com maiores níveis de renda, existe um componente causal, que explica a renda da pessoa com base em sua educação!
Muitas vezes, a correlação não é um indicativo de causalidade, mas causalidade é indicativo de correlação. Sobre esse assunto, acesse aqui para conhecer algumas séries temporais muito correlacionadas que não implicam em causalidade alguma!
Mas beleza, falei muito de correlação, e por que isso é relevante?
Nas séries temporais, o valor do presente tende a estar muito relacionado com algum componente do passado. Esse sentido é apresentado por meio de uma correlação entre o termo no presente com o termo defasado (atrasado) em k vezes, ou por meio de uma representação direta (explicação causal) de um termo com o seu passado em k vezes.
A função de autocorrelação busca exatamente a representação de quanto o termo do passado varia considerando esse mesmo termo atrasado em k períodos. É o mesmo que comparar o seguinte:
dataset <- as.data.table(dataset)
dataset[, pib_um_mes_atras := lag(PIB)]
dataset[, pib_doze_meses_atras := lag(PIB, 12)]
dataset_long <- melt(
dataset[, .SD, .SDcols = c("Data", "PIB", "pib_um_mes_atras", "pib_doze_meses_atras")],
id.vars = "Data", variable.name = "Serie", value.name = "PIB")
ggplot(dataset_long[Data >= as.POSIXct("2019-01-01", tz="UTC")], aes(Data, PIB, color = Serie)) +
geom_line() +
scale_y_continuous(labels = scales::number_format()) +
theme_classic()
Qual das linhas apresenta um desenho mais similar ao PIB? Como o PIB defasado em um mês é mais parecido em desenho, sua correlação com o PIB deve ser maior também!
Assim, vamos supor que para cada termo de Y, eu gostaria de estimar o quanto esse termo se correlaciona com seu valor defasado (ele atrasado em n vezes). A autocorrelação, no fim, é um valor entre -1 e 1, e, quanto mais próximo de |1|, maior a correlação de dois efeitos.
A função de autocorrelação faz a relação de y com sua enésima defasagem, e retornaria esses resultados no caso do PIB:
plot(acf(dataset$PIB))
O gráfico acima é conhecido como correlograma. Como é possível análisar, o ponto em que cada linha bate no eixo y indica o quão correlacionada está o PIB com sua defasagem, no eixo x. Quanto mais defasagens, menor o sinal esperado da correlação.
E a função de autocorrelação parcial? Ao invés de usarmos a correlação entre duas variáveis, estimamos um coeficiente direto (um sentido de causalidade), por meio de pequenas “regressões” relacionando Y com Y defasado em n termos. Na prática é estimar b, nessa equação: \(Y_t = b(Y_{t -n})\) (é um pouco mais complexa que isso, mas posso generalizar aqui para facilitar).
Assim, o sinal da PACF (função de autocorrelação parcial) é mais sensível ao termo defasado que a simples correlação entre termos, e, graficamente tem essa cara:
plot(pacf(dataset$PIB))
Se refizermos esses dois gráficos, só que em cima da primeira diferença da série do PIB (que é estacionária), veremos uma notável diferença.
dataset <- dataset %>%
mutate(primeira_diferenca = PIB - lag(PIB))
plot(acf(dataset$primeira_diferenca, na.action = na.pass))
plot(pacf(dataset$primeira_diferenca, na.action = na.pass))
Os correlogramas da série normal, e em primeira diferença são bem diferentes! No caso, os dois primeiros gráficos são muito comuns a séries não estacionárias, enquanto que os dois últimos apresentam um padrão um pouco mais próximo de séries estacionárias.
A análise do correlograma não é suficiente para diagnosticar estacionariedade, mas pode ser uma ferramenta importante para identificar característiscas intrínsecas a essa série, conforme poderemos descobrir no decorrer da matéria. (Estimação por meio de ARIMA utiliza diagnóstico gráfico em cima desses conceitos)
8 Tratando a sazonalidade.
Recobrando do primeiro gráfico apresentado nesse documento, é possível notar que existem oscilações recorrentes ao longo da série temporal. Podemos utilizar uma técnica bem simples para “suavizar” essa série de tempo e tratar a sazonalidade. Essa técnica foi muito usada durante a pandemia do COVID-19 e se trata de suavizar por meio da média móvel de um periodo.
Funciona assim: em dado dia/mês/ano, pegamos n valores anteriores a essa observação e calculamos a média. Fazemos isso para todas as observações. Quanto mais valores forem utilizados para calcular a média, mais “suave” fica a série. Abaixo calculo a média de 3, 6, 9 e 12 meses:
dataset <- read_excel("PIB.xls")
dataset <- dataset %>%
mutate(
media_movel_3_meses = frollmean(PIB, 3),
media_movel_6_meses = frollmean(PIB, 6),
media_movel_9_meses = frollmean(PIB, 9),
media_movel_12_meses = frollmean(PIB, 12)
)
dataset %>%
kbl() %>%
kable_material() %>%
scroll_box(width = "800px", height = "350px")
| Data | PIB | media_movel_3_meses | media_movel_6_meses | media_movel_9_meses | media_movel_12_meses |
|---|---|---|---|---|---|
| 1990-01-01 | 174698.3 | NA | NA | NA | NA |
| 1990-02-01 | 195161.9 | NA | NA | NA | NA |
| 1990-03-01 | 268903.2 | 212921.2 | NA | NA | NA |
| 1990-04-01 | 211052.0 | 225039.1 | NA | NA | NA |
| 1990-05-01 | 219974.2 | 233309.8 | NA | NA | NA |
| 1990-06-01 | 195822.5 | 208949.6 | 210935.4 | NA | NA |
| 1990-07-01 | 195128.7 | 203641.8 | 214340.4 | NA | NA |
| 1990-08-01 | 190782.3 | 193911.2 | 213610.5 | NA | NA |
| 1990-09-01 | 183468.6 | 189793.2 | 199371.4 | 203888.0 | NA |
| 1990-10-01 | 202031.9 | 192094.3 | 197868.1 | 206925.1 | NA |
| 1990-11-01 | 208569.9 | 198023.5 | 195967.3 | 208414.8 | NA |
| 1990-12-01 | 184664.1 | 198422.0 | 194107.6 | 199054.9 | 202521.5 |
| 1991-01-01 | 178441.2 | 190558.4 | 191326.4 | 195431.5 | 202833.4 |
| 1991-02-01 | 175443.5 | 179516.3 | 188769.9 | 190483.7 | 201190.2 |
| 1991-03-01 | 168590.9 | 174158.5 | 186290.3 | 187457.9 | 192830.8 |
| 1991-04-01 | 196841.5 | 180292.0 | 185425.2 | 187648.2 | 191646.6 |
| 1991-05-01 | 209151.1 | 191527.8 | 185522.1 | 189689.2 | 190744.7 |
| 1991-06-01 | 213064.0 | 206352.2 | 190255.4 | 192977.6 | 192181.5 |
| 1991-07-01 | 209675.4 | 210630.2 | 195461.1 | 193826.9 | 193393.7 |
| 1991-08-01 | 208926.1 | 210555.2 | 201041.5 | 193866.4 | 194905.7 |
| 1991-09-01 | 187224.5 | 201942.0 | 204147.1 | 194150.9 | 195218.7 |
| 1991-10-01 | 204366.7 | 200172.4 | 205401.3 | 197031.5 | 195413.3 |
| 1991-11-01 | 201426.0 | 197672.4 | 204113.8 | 199918.5 | 194817.9 |
| 1991-12-01 | 184176.1 | 196656.3 | 199299.1 | 201650.2 | 194777.3 |
| 1992-01-01 | 183638.0 | 189746.7 | 194959.6 | 200183.1 | 195210.3 |
| 1992-02-01 | 185993.9 | 184602.7 | 191137.5 | 197610.1 | 196089.5 |
| 1992-03-01 | 185350.3 | 184994.1 | 190825.2 | 194530.8 | 197486.2 |
| 1992-04-01 | 182378.5 | 184574.3 | 187160.5 | 191497.8 | 196280.9 |
| 1992-05-01 | 189865.3 | 185864.7 | 185233.7 | 189379.9 | 194673.8 |
| 1992-06-01 | 195462.0 | 189235.3 | 187114.7 | 190295.2 | 193206.9 |
| 1992-07-01 | 196981.7 | 194103.0 | 189338.6 | 189474.7 | 192149.1 |
| 1992-08-01 | 196366.6 | 196270.1 | 191067.4 | 188912.5 | 191102.5 |
| 1992-09-01 | 196261.6 | 196536.6 | 192886.0 | 190255.3 | 191855.6 |
| 1992-10-01 | 199191.2 | 197273.1 | 195688.1 | 191983.5 | 191424.3 |
| 1992-11-01 | 199492.9 | 198315.2 | 197292.7 | 193483.4 | 191263.2 |
| 1992-12-01 | 180601.9 | 193095.3 | 194816.0 | 192955.7 | 190965.3 |
| 1993-01-01 | 181718.7 | 187271.1 | 192272.1 | 192882.4 | 190805.4 |
| 1993-02-01 | 181781.6 | 181367.4 | 189841.3 | 191984.2 | 190454.4 |
| 1993-03-01 | 202999.9 | 188833.4 | 190964.3 | 192821.8 | 191925.2 |
| 1993-04-01 | 198595.8 | 194459.1 | 190865.1 | 193001.1 | 193276.6 |
| 1993-05-01 | 201615.4 | 201070.4 | 191218.9 | 193584.3 | 194255.8 |
| 1993-06-01 | 196966.4 | 199059.2 | 193946.3 | 193662.6 | 194381.1 |
| 1993-07-01 | 204903.1 | 201161.6 | 197810.4 | 194297.3 | 195041.2 |
| 1993-08-01 | 208411.0 | 203426.8 | 202248.6 | 195288.2 | 196044.9 |
| 1993-09-01 | 212291.2 | 208535.1 | 203797.1 | 198809.2 | 197380.7 |
| 1993-10-01 | 206761.4 | 209154.5 | 205158.1 | 201591.8 | 198011.6 |
| 1993-11-01 | 204688.8 | 207913.8 | 205670.3 | 204137.0 | 198444.6 |
| 1993-12-01 | 186310.9 | 199253.7 | 203894.4 | 202282.7 | 198920.3 |
| 1994-01-01 | 170812.2 | 187270.6 | 198212.6 | 199195.6 | 198011.5 |
| 1994-02-01 | 153255.1 | 170126.1 | 189019.9 | 193822.2 | 195634.3 |
| 1994-03-01 | 157942.7 | 160670.0 | 179961.8 | 189486.3 | 191879.5 |
| 1994-04-01 | 165888.8 | 159028.9 | 173149.7 | 185151.3 | 189153.9 |
| 1994-05-01 | 181951.4 | 168594.3 | 169360.2 | 182211.4 | 187515.2 |
| 1994-06-01 | 234223.0 | 194021.0 | 177345.5 | 184648.2 | 190620.0 |
| 1994-07-01 | 276449.0 | 230874.5 | 194951.7 | 192391.3 | 196582.1 |
| 1994-08-01 | 292405.2 | 267692.4 | 218143.3 | 202137.6 | 203581.6 |
| 1994-09-01 | 286222.6 | 285025.6 | 239523.3 | 213238.9 | 209742.6 |
| 1994-10-01 | 287548.8 | 288725.5 | 259800.0 | 226209.6 | 216474.9 |
| 1994-11-01 | 285495.9 | 286422.4 | 277057.4 | 240903.0 | 223208.8 |
| 1994-12-01 | 270221.1 | 281088.6 | 283057.1 | 253378.4 | 230201.3 |
| 1995-01-01 | 283593.0 | 279770.0 | 284247.8 | 266456.7 | 239599.7 |
| 1995-02-01 | 297416.2 | 283743.4 | 285082.9 | 279286.1 | 251613.1 |
| 1995-03-01 | 350398.8 | 310469.3 | 295779.0 | 292194.5 | 267651.1 |
| 1995-04-01 | 328964.8 | 325593.3 | 302681.6 | 298029.6 | 281240.8 |
| 1995-05-01 | 313058.1 | 330807.3 | 307275.3 | 300324.4 | 292166.4 |
| 1995-06-01 | 308031.1 | 316684.7 | 313577.0 | 302747.5 | 298317.0 |
| 1995-07-01 | 313975.8 | 311688.3 | 318640.8 | 305683.9 | 301444.3 |
| 1995-08-01 | 322332.3 | 314779.7 | 322793.5 | 309776.8 | 303938.2 |
| 1995-09-01 | 316736.5 | 317681.5 | 317183.1 | 314945.2 | 306481.0 |
| 1995-10-01 | 326753.2 | 321940.7 | 316814.5 | 319740.8 | 309748.1 |
| 1995-11-01 | 343874.5 | 329121.4 | 321950.6 | 324902.8 | 314612.9 |
| 1995-12-01 | 333031.8 | 334553.2 | 326117.3 | 322973.1 | 319847.2 |
| 1996-01-01 | 317047.9 | 331318.1 | 326629.4 | 321649.0 | 322635.1 |
| 1996-02-01 | 305395.4 | 318491.7 | 323806.6 | 320797.6 | 323300.0 |
| 1996-03-01 | 306785.5 | 309742.9 | 322148.0 | 320659.2 | 319665.6 |
| 1996-04-01 | 307989.4 | 306723.4 | 319020.8 | 319994.1 | 317917.6 |
| 1996-05-01 | 330323.3 | 315032.7 | 316762.2 | 320881.9 | 319356.4 |
| 1996-06-01 | 334154.1 | 324155.6 | 316949.3 | 322817.2 | 321533.3 |
| 1996-07-01 | 349618.7 | 338032.0 | 322377.7 | 325357.8 | 324503.6 |
| 1996-08-01 | 347794.9 | 343855.9 | 329444.3 | 325793.5 | 326625.4 |
| 1996-09-01 | 332844.3 | 343419.3 | 333787.5 | 325772.6 | 327967.8 |
| 1996-10-01 | 357046.3 | 345895.2 | 341963.6 | 330216.9 | 330492.2 |
| 1996-11-01 | 370608.3 | 353499.6 | 348677.8 | 337462.8 | 332720.0 |
| 1996-12-01 | 373142.3 | 366932.3 | 355175.8 | 344835.7 | 336062.5 |
| 1997-01-01 | 351528.2 | 365092.9 | 355494.0 | 349673.4 | 338935.9 |
| 1997-02-01 | 320413.7 | 348361.4 | 350930.5 | 348572.3 | 340187.4 |
| 1997-03-01 | 315466.4 | 329136.1 | 348034.2 | 346495.9 | 340910.8 |
| 1997-04-01 | 327302.0 | 321060.7 | 343076.8 | 344016.3 | 342520.2 |
| 1997-05-01 | 345831.0 | 329533.1 | 338947.3 | 343798.1 | 343812.5 |
| 1997-06-01 | 358158.7 | 343763.9 | 336450.0 | 346610.8 | 345812.9 |
| 1997-07-01 | 361573.9 | 355187.9 | 338124.3 | 347113.8 | 346809.2 |
| 1997-08-01 | 361826.6 | 360519.7 | 345026.4 | 346138.1 | 347978.5 |
| 1997-09-01 | 360664.7 | 361355.1 | 352559.5 | 344751.7 | 350296.8 |
| 1997-10-01 | 383257.5 | 368582.9 | 361885.4 | 348277.2 | 352481.1 |
| 1997-11-01 | 373764.6 | 372562.3 | 366541.0 | 354205.0 | 352744.1 |
| 1997-12-01 | 353483.7 | 370168.6 | 365761.8 | 358429.2 | 351105.9 |
| 1998-01-01 | 343410.6 | 356886.3 | 362734.6 | 360219.0 | 350429.5 |
| 1998-02-01 | 326803.9 | 341232.7 | 356897.5 | 358104.9 | 350962.0 |
| 1998-03-01 | 345974.1 | 338729.5 | 354449.1 | 356751.1 | 353504.3 |
| 1998-04-01 | 347514.1 | 340097.4 | 348491.8 | 355188.9 | 355188.6 |
| 1998-05-01 | 363872.7 | 352453.6 | 346843.2 | 355416.2 | 356692.1 |
| 1998-06-01 | 365571.4 | 358986.1 | 348857.8 | 355961.4 | 357309.8 |
| 1998-07-01 | 372624.8 | 367356.3 | 353726.8 | 354780.0 | 358230.7 |
| 1998-08-01 | 371550.0 | 369915.4 | 361184.5 | 354533.9 | 359041.0 |
| 1998-09-01 | 364870.1 | 369681.6 | 364333.9 | 355799.1 | 359391.5 |
| 1998-10-01 | 376122.5 | 370847.5 | 369101.9 | 359433.7 | 358796.9 |
| 1998-11-01 | 371484.2 | 370825.6 | 370370.5 | 364398.2 | 358606.8 |
| 1998-12-01 | 355602.2 | 367736.3 | 368709.0 | 365468.0 | 358783.4 |
| 1999-01-01 | 343538.3 | 356874.9 | 363861.2 | 365026.2 | 358794.0 |
| 1999-02-01 | 339854.4 | 346331.6 | 358578.6 | 362357.5 | 359881.6 |
| 1999-03-01 | 369850.4 | 351081.0 | 359408.7 | 362833.0 | 361871.3 |
| 1999-04-01 | 363856.0 | 357853.6 | 357364.2 | 361858.7 | 363233.1 |
| 1999-05-01 | 369105.9 | 367604.1 | 356967.9 | 361587.1 | 363669.2 |
| 1999-06-01 | 377138.2 | 370033.4 | 360557.2 | 362950.2 | 364633.1 |
| 1999-07-01 | 371948.5 | 372730.9 | 365292.2 | 362486.5 | 364576.7 |
| 1999-08-01 | 374612.2 | 374566.3 | 371085.2 | 362834.0 | 364831.9 |
| 1999-09-01 | 365091.1 | 370550.6 | 370292.0 | 363888.3 | 364850.3 |
| 1999-10-01 | 382197.2 | 373966.8 | 373348.9 | 368183.8 | 365356.6 |
| 1999-11-01 | 393859.0 | 380382.4 | 377474.4 | 374184.3 | 367221.1 |
| 1999-12-01 | 388362.9 | 388139.7 | 379345.1 | 376241.2 | 369951.2 |
| 2000-01-01 | 362642.1 | 381621.3 | 377794.1 | 376106.4 | 371543.2 |
| 2000-02-01 | 358856.0 | 369953.7 | 375168.0 | 374967.5 | 373126.6 |
| 2000-03-01 | 360866.6 | 360788.2 | 374464.0 | 373159.5 | 372378.0 |
| 2000-04-01 | 355411.1 | 358377.9 | 369999.6 | 371322.0 | 371674.2 |
| 2000-05-01 | 383541.8 | 366606.5 | 368280.1 | 372314.2 | 372877.2 |
| 2000-06-01 | 395291.2 | 378081.4 | 369434.8 | 375669.8 | 374390.0 |
| 2000-07-01 | 392353.9 | 390395.6 | 374386.8 | 376798.3 | 376090.4 |
| 2000-08-01 | 396016.6 | 394553.9 | 380580.2 | 377038.0 | 377874.1 |
| 2000-09-01 | 376982.5 | 388451.0 | 383266.2 | 375773.5 | 378865.1 |
| 2000-10-01 | 401028.4 | 391342.5 | 390869.1 | 380038.7 | 380434.4 |
| 2000-11-01 | 401926.0 | 393312.3 | 393933.1 | 384824.2 | 381106.6 |
| 2000-12-01 | 392830.2 | 398594.9 | 393522.9 | 388375.8 | 381478.9 |
| 2001-01-01 | 378555.7 | 391104.0 | 391223.2 | 390947.4 | 382805.0 |
| 2001-02-01 | 373680.5 | 381688.8 | 387500.6 | 389851.7 | 384040.4 |
| 2001-03-01 | 396297.1 | 382844.4 | 390719.6 | 389963.4 | 386992.9 |
| 2001-04-01 | 391681.0 | 387219.5 | 389161.7 | 389888.7 | 390015.4 |
| 2001-05-01 | 403024.6 | 397000.9 | 389344.8 | 390667.3 | 391639.0 |
| 2001-06-01 | 376879.6 | 390528.4 | 386686.4 | 390655.9 | 390104.7 |
| 2001-07-01 | 393747.9 | 391217.3 | 389218.4 | 389846.9 | 390220.8 |
| 2001-08-01 | 399986.6 | 390204.7 | 393602.8 | 389631.5 | 390551.7 |
| 2001-09-01 | 382427.8 | 392054.1 | 391291.2 | 388475.6 | 391005.4 |
| 2001-10-01 | 405474.1 | 395962.8 | 393590.1 | 391466.6 | 391375.9 |
| 2001-11-01 | 408778.9 | 398893.6 | 394549.1 | 395366.4 | 391947.0 |
| 2001-12-01 | 389627.4 | 401293.5 | 396673.8 | 394625.3 | 391680.1 |
| 2002-01-01 | 385716.9 | 394707.8 | 395335.3 | 393962.6 | 392276.9 |
| 2002-02-01 | 380808.2 | 385384.2 | 392138.9 | 391494.2 | 392870.8 |
| 2002-03-01 | 401797.1 | 389440.8 | 395367.1 | 394262.8 | 393329.2 |
| 2002-04-01 | 406332.1 | 396312.5 | 395510.1 | 395661.0 | 394550.1 |
| 2002-05-01 | 415711.9 | 407947.0 | 396665.6 | 397408.3 | 395607.4 |
| 2002-06-01 | 411967.6 | 411337.2 | 400389.0 | 400690.5 | 398531.4 |
| 2002-07-01 | 419565.0 | 415748.2 | 406030.3 | 402256.1 | 400682.8 |
| 2002-08-01 | 419810.7 | 417114.4 | 412530.7 | 403481.9 | 402334.8 |
| 2002-09-01 | 406936.6 | 415437.4 | 413387.3 | 405405.1 | 404377.2 |
| 2002-10-01 | 423751.5 | 416832.9 | 416290.5 | 409631.2 | 405900.3 |
| 2002-11-01 | 421996.6 | 417561.5 | 417338.0 | 414207.7 | 407001.8 |
| 2002-12-01 | 395622.1 | 413790.0 | 414613.7 | 413521.6 | 407501.4 |
| 2003-01-01 | 379076.6 | 398898.4 | 407865.7 | 410493.2 | 406948.0 |
| 2003-02-01 | 386177.2 | 386958.6 | 402260.1 | 407211.5 | 407395.4 |
| 2003-03-01 | 403249.9 | 389501.2 | 401645.6 | 406242.9 | 407516.5 |
| 2003-04-01 | 407871.8 | 399099.6 | 398999.0 | 404943.6 | 407644.8 |
| 2003-05-01 | 401809.0 | 404310.2 | 395634.4 | 402943.5 | 406486.2 |
| 2003-06-01 | 397069.9 | 402250.2 | 395875.7 | 401847.2 | 405244.7 |
| 2003-07-01 | 418893.1 | 405924.0 | 402511.8 | 401307.3 | 405188.7 |
| 2003-08-01 | 413276.0 | 409746.3 | 407028.3 | 400338.4 | 404644.2 |
| 2003-09-01 | 421695.4 | 417954.8 | 410102.5 | 403235.4 | 405874.1 |
| 2003-10-01 | 438384.7 | 424452.0 | 415188.0 | 409825.2 | 407093.5 |
| 2003-11-01 | 432897.1 | 430992.4 | 420369.4 | 415016.3 | 408001.9 |
| 2003-12-01 | 430584.8 | 433955.6 | 425955.2 | 418053.5 | 410915.5 |
| 2004-01-01 | 401955.9 | 421812.6 | 423132.3 | 417396.2 | 412822.1 |
| 2004-02-01 | 395103.5 | 409214.7 | 420103.6 | 416651.1 | 413565.9 |
| 2004-03-01 | 433391.6 | 410150.3 | 422052.9 | 420686.9 | 416077.7 |
| 2004-04-01 | 430370.5 | 419621.9 | 420717.2 | 421962.2 | 417952.6 |
| 2004-05-01 | 434698.3 | 432820.1 | 421017.4 | 424342.4 | 420693.4 |
| 2004-06-01 | 447003.9 | 437357.6 | 423753.9 | 427154.5 | 424854.6 |
| 2004-07-01 | 459626.6 | 447109.6 | 433365.7 | 429514.7 | 428249.0 |
| 2004-08-01 | 451445.7 | 452692.1 | 442756.1 | 431575.6 | 431429.8 |
| 2004-09-01 | 437814.5 | 449628.9 | 443493.3 | 432378.9 | 432773.1 |
| 2004-10-01 | 450775.7 | 446678.7 | 446894.1 | 437803.4 | 433805.7 |
| 2004-11-01 | 464057.2 | 450882.5 | 451787.3 | 445464.9 | 436402.4 |
| 2004-12-01 | 464754.0 | 459862.3 | 454745.6 | 448949.6 | 439249.8 |
| 2005-01-01 | 423416.1 | 450742.4 | 448710.5 | 448176.9 | 441038.1 |
| 2005-02-01 | 413585.6 | 433918.5 | 442400.5 | 445831.0 | 442578.3 |
| 2005-03-01 | 448274.6 | 428425.4 | 444143.8 | 445972.2 | 443818.6 |
| 2005-04-01 | 449587.8 | 437149.3 | 443945.9 | 444856.8 | 445420.0 |
| 2005-05-01 | 449339.9 | 449067.4 | 441493.0 | 444622.8 | 446640.1 |
| 2005-06-01 | 457384.0 | 452103.9 | 440264.7 | 446797.2 | 447505.1 |
| 2005-07-01 | 464479.2 | 457067.7 | 447108.5 | 448319.8 | 447909.5 |
| 2005-08-01 | 471260.0 | 464374.4 | 456720.9 | 449120.1 | 449560.7 |
| 2005-09-01 | 454396.7 | 463378.6 | 457741.3 | 447969.3 | 450942.6 |
| 2005-10-01 | 470472.5 | 465376.4 | 461222.0 | 453197.8 | 452584.0 |
| 2005-11-01 | 482233.9 | 469034.4 | 466704.4 | 460825.4 | 454098.7 |
| 2005-12-01 | 489035.5 | 480580.6 | 471979.6 | 465354.4 | 456122.1 |
| 2006-01-01 | 454938.8 | 475402.7 | 470389.5 | 465948.9 | 458749.0 |
| 2006-02-01 | 435744.4 | 459906.2 | 464470.3 | 464438.3 | 460595.6 |
| 2006-03-01 | 462928.2 | 451203.8 | 465892.2 | 465054.3 | 461816.7 |
| 2006-04-01 | 449594.2 | 449422.3 | 462412.5 | 463400.5 | 461817.3 |
| 2006-05-01 | 481067.4 | 464529.9 | 462218.1 | 464490.2 | 464461.2 |
| 2006-06-01 | 484028.7 | 471563.5 | 461383.6 | 467782.6 | 466681.6 |
| 2006-07-01 | 502640.1 | 489245.4 | 469333.9 | 471356.8 | 469861.7 |
| 2006-08-01 | 508884.4 | 498517.7 | 481523.8 | 474318.0 | 472997.1 |
| 2006-09-01 | 486319.2 | 499281.2 | 485422.4 | 474016.2 | 475657.3 |
| 2006-10-01 | 516634.7 | 503946.1 | 496595.8 | 480871.3 | 479504.1 |
| 2006-11-01 | 527697.6 | 510217.2 | 504367.5 | 491088.3 | 483292.8 |
| 2006-12-01 | 529190.1 | 524507.5 | 511894.3 | 498450.7 | 486639.0 |
| 2007-01-01 | 502525.4 | 519804.4 | 511875.2 | 504332.0 | 490604.5 |
| 2007-02-01 | 480522.5 | 504079.3 | 507148.2 | 504271.4 | 494336.0 |
| 2007-03-01 | 514213.9 | 499087.3 | 511797.4 | 507625.3 | 498609.9 |
| 2007-04-01 | 507056.6 | 500597.7 | 510201.0 | 508116.0 | 503398.4 |
| 2007-05-01 | 532457.5 | 517909.4 | 510994.4 | 510735.3 | 507680.9 |
| 2007-06-01 | 536821.9 | 525445.4 | 512266.3 | 516346.7 | 512080.3 |
| 2007-07-01 | 546218.4 | 538499.3 | 519548.5 | 519633.8 | 515711.9 |
| 2007-08-01 | 547231.6 | 543424.0 | 530666.7 | 521804.2 | 518907.5 |
| 2007-09-01 | 518008.7 | 537152.9 | 531299.1 | 520561.8 | 521548.2 |
| 2007-10-01 | 560092.5 | 541777.6 | 540138.4 | 526958.2 | 525169.7 |
| 2007-11-01 | 556972.1 | 545024.4 | 544224.2 | 535452.6 | 527609.3 |
| 2007-12-01 | 554623.7 | 557229.4 | 547191.2 | 539942.6 | 529728.7 |
| 2008-01-01 | 539919.4 | 550505.1 | 546141.3 | 543594.0 | 532844.9 |
| 2008-02-01 | 526969.0 | 540504.0 | 542764.2 | 542984.1 | 536715.4 |
| 2008-03-01 | 545547.9 | 537478.8 | 547354.1 | 543953.7 | 539326.6 |
| 2008-04-01 | 556844.7 | 543120.5 | 546812.8 | 545134.4 | 543475.6 |
| 2008-05-01 | 566261.6 | 556218.1 | 548361.0 | 547248.8 | 546292.6 |
| 2008-06-01 | 586646.3 | 569917.5 | 553698.1 | 554875.2 | 550444.7 |
| 2008-07-01 | 611329.3 | 588079.1 | 565599.8 | 560568.2 | 555870.6 |
| 2008-08-01 | 590258.9 | 596078.2 | 576148.1 | 564266.7 | 559456.2 |
| 2008-09-01 | 579510.3 | 593699.5 | 581808.5 | 567031.9 | 564581.3 |
| 2008-10-01 | 610355.8 | 593375.0 | 590727.0 | 574858.2 | 568769.9 |
| 2008-11-01 | 587102.4 | 592322.9 | 594200.5 | 581539.7 | 571280.8 |
| 2008-12-01 | 571281.5 | 589579.9 | 591639.7 | 584399.0 | 572668.9 |
| 2009-01-01 | 537249.7 | 565211.2 | 579293.1 | 582221.8 | 572446.5 |
| 2009-02-01 | 522587.3 | 543706.2 | 568014.5 | 577369.1 | 572081.3 |
| 2009-03-01 | 559569.9 | 539802.3 | 564691.1 | 574360.6 | 573249.8 |
| 2009-04-01 | 551362.7 | 544506.7 | 554858.9 | 567697.6 | 572793.0 |
| 2009-05-01 | 567616.5 | 559516.4 | 551611.3 | 565181.8 | 572905.9 |
| 2009-06-01 | 581478.5 | 566819.2 | 553310.8 | 565400.5 | 572475.2 |
| 2009-07-01 | 600855.9 | 583317.0 | 563911.8 | 564344.9 | 571602.5 |
| 2009-08-01 | 597157.6 | 593164.0 | 576340.2 | 565462.2 | 572177.4 |
| 2009-09-01 | 593340.6 | 597118.0 | 581968.6 | 567913.2 | 573329.9 |
| 2009-10-01 | 630429.8 | 606976.0 | 595146.5 | 578266.5 | 575002.7 |
| 2009-11-01 | 634539.1 | 619436.5 | 606300.2 | 590705.6 | 578955.8 |
| 2009-12-01 | 648536.0 | 637835.0 | 617476.5 | 600590.7 | 585393.6 |
| 2010-01-01 | 593215.7 | 625430.3 | 616203.1 | 605241.1 | 590057.5 |
| 2010-02-01 | 582757.9 | 608169.9 | 613803.2 | 606923.5 | 595071.7 |
| 2010-03-01 | 632195.5 | 602723.1 | 620279.0 | 612558.7 | 601123.8 |
| 2010-04-01 | 619829.4 | 611594.3 | 618512.3 | 614666.9 | 606829.4 |
| 2010-05-01 | 636436.4 | 629487.1 | 618828.5 | 619031.2 | 612564.4 |
| 2010-06-01 | 646544.9 | 634270.2 | 618496.7 | 624942.8 | 617986.6 |
| 2010-07-01 | 669400.3 | 650793.9 | 631194.1 | 629272.8 | 623698.6 |
| 2010-08-01 | 671324.7 | 662423.3 | 645955.2 | 633360.1 | 629879.2 |
| 2010-09-01 | 661392.5 | 667372.5 | 650821.4 | 634788.6 | 635550.2 |
| 2010-10-01 | 683363.4 | 672026.9 | 661410.4 | 644805.0 | 639961.3 |
| 2010-11-01 | 701506.8 | 682087.6 | 672255.4 | 657999.3 | 645542.0 |
| 2010-12-01 | 694645.8 | 693172.0 | 680272.3 | 664938.2 | 649384.5 |
| 2011-01-01 | 645375.7 | 680509.4 | 676268.2 | 667776.7 | 653731.1 |
| 2011-02-01 | 643602.4 | 661207.9 | 671647.8 | 668572.9 | 658801.5 |
| 2011-03-01 | 663209.5 | 650729.2 | 671950.6 | 670424.6 | 661386.0 |
| 2011-04-01 | 661339.3 | 656050.4 | 668279.9 | 669528.9 | 664845.1 |
| 2011-05-01 | 691797.1 | 672115.3 | 666661.6 | 671803.6 | 669458.5 |
| 2011-06-01 | 699581.1 | 684239.2 | 667484.2 | 676046.8 | 673878.2 |
| 2011-07-01 | 701856.1 | 697744.8 | 676897.6 | 678101.5 | 676582.9 |
| 2011-08-01 | 705501.7 | 702313.0 | 687214.1 | 678545.4 | 679430.9 |
| 2011-09-01 | 674094.1 | 693817.3 | 689028.2 | 676261.9 | 680489.4 |
| 2011-10-01 | 702004.4 | 693866.7 | 695805.8 | 682554.0 | 682042.8 |
| 2011-11-01 | 718870.3 | 698322.9 | 700317.9 | 690917.1 | 683489.8 |
| 2011-12-01 | 718815.1 | 713229.9 | 703523.6 | 697095.5 | 685503.9 |
| 2012-01-01 | 670677.0 | 702787.5 | 698327.1 | 698133.0 | 687612.3 |
| 2012-02-01 | 668402.5 | 685964.9 | 692143.9 | 695533.6 | 689679.0 |
| 2012-03-01 | 712377.4 | 683818.9 | 698524.4 | 696955.4 | 693776.3 |
| 2012-04-01 | 688631.0 | 689803.6 | 696295.5 | 695485.9 | 696050.6 |
| 2012-05-01 | 720390.1 | 707132.8 | 696548.8 | 697140.2 | 698433.4 |
| 2012-06-01 | 715746.2 | 708255.8 | 696037.4 | 701768.2 | 699780.5 |
| 2012-07-01 | 741180.7 | 725772.4 | 707788.0 | 706121.1 | 703057.5 |
| 2012-08-01 | 746975.3 | 734634.1 | 720883.5 | 709243.9 | 706513.7 |
| 2012-09-01 | 696007.7 | 728054.6 | 718155.2 | 706709.8 | 708339.8 |
| 2012-10-01 | 743137.3 | 728706.8 | 727239.6 | 714760.9 | 711767.6 |
| 2012-11-01 | 740005.8 | 726383.6 | 730508.9 | 722716.8 | 713528.8 |
| 2012-12-01 | 732876.0 | 738673.0 | 733363.8 | 724994.5 | 714700.6 |
| 2013-01-01 | 711982.4 | 728288.1 | 728497.4 | 727589.1 | 718142.7 |
| 2013-02-01 | 681710.9 | 708856.4 | 717620.0 | 723291.4 | 719251.7 |
| 2013-03-01 | 727191.2 | 706961.5 | 722817.3 | 724563.0 | 720486.2 |
| 2013-04-01 | 743248.5 | 717383.5 | 722835.8 | 724792.8 | 725037.7 |
| 2013-05-01 | 741247.9 | 737229.2 | 723042.8 | 724156.4 | 726775.8 |
| 2013-06-01 | 746586.1 | 743694.1 | 725327.8 | 729776.2 | 729345.8 |
| 2013-07-01 | 771847.4 | 753227.1 | 735305.3 | 732966.2 | 731901.4 |
| 2013-08-01 | 760182.8 | 759538.8 | 748384.0 | 735208.1 | 733002.0 |
| 2013-09-01 | 733150.0 | 755060.1 | 749377.1 | 735238.6 | 736097.2 |
| 2013-10-01 | 774633.0 | 755988.6 | 754607.9 | 742199.8 | 738721.8 |
| 2013-11-01 | 768241.3 | 758674.8 | 759106.8 | 751814.2 | 741074.8 |
| 2013-12-01 | 775507.5 | 772794.0 | 763927.0 | 757182.7 | 744627.4 |
| 2014-01-01 | 742056.4 | 761935.1 | 758961.9 | 757050.3 | 747133.6 |
| 2014-02-01 | 727127.9 | 748230.6 | 753452.7 | 755481.4 | 750918.3 |
| 2014-03-01 | 740296.2 | 736493.5 | 754643.7 | 754782.5 | 752010.4 |
| 2014-04-01 | 746662.5 | 738028.9 | 749982.0 | 751984.2 | 752294.9 |
| 2014-05-01 | 750729.1 | 745895.9 | 747063.3 | 750933.8 | 753085.0 |
| 2014-06-01 | 725721.1 | 741037.6 | 738765.5 | 750108.3 | 751346.3 |
| 2014-07-01 | 761889.7 | 746113.3 | 742071.1 | 748692.4 | 750516.5 |
| 2014-08-01 | 751000.9 | 746203.9 | 746049.9 | 746776.8 | 749751.3 |
| 2014-09-01 | 746468.5 | 753119.7 | 747078.6 | 743550.3 | 750861.2 |
| 2014-10-01 | 769184.6 | 755551.3 | 750832.3 | 746564.5 | 750407.1 |
| 2014-11-01 | 758337.4 | 757996.8 | 752100.4 | 750032.2 | 749581.8 |
| 2014-12-01 | 766682.7 | 764734.9 | 758927.3 | 752964.1 | 748846.4 |
| 2015-01-01 | 716529.0 | 747183.1 | 751367.2 | 749615.9 | 746719.1 |
| 2015-02-01 | 688456.9 | 723889.6 | 740943.2 | 742696.8 | 743496.6 |
| 2015-03-01 | 743149.4 | 716045.1 | 740390.0 | 744633.2 | 743734.3 |
| 2015-04-01 | 715541.6 | 715716.0 | 731449.5 | 739483.4 | 741140.9 |
| 2015-05-01 | 705184.3 | 721291.7 | 722590.6 | 734392.7 | 737345.5 |
| 2015-06-01 | 705185.9 | 708637.2 | 712341.2 | 729805.7 | 735634.2 |
| 2015-07-01 | 724789.3 | 711719.8 | 713717.9 | 724872.9 | 732542.5 |
| 2015-08-01 | 708002.6 | 712659.3 | 716975.5 | 719280.2 | 728959.3 |
| 2015-09-01 | 708218.0 | 713670.0 | 711153.6 | 712784.1 | 725771.8 |
| 2015-10-01 | 734091.2 | 716770.6 | 714245.2 | 714735.5 | 722847.4 |
| 2015-11-01 | 719913.1 | 720740.7 | 716700.0 | 718230.6 | 719645.3 |
| 2015-12-01 | 723198.2 | 725734.2 | 719702.1 | 716013.8 | 716021.6 |
| 2016-01-01 | 672073.1 | 705061.5 | 710916.0 | 711184.0 | 712317.0 |
| 2016-02-01 | 668626.4 | 687965.9 | 704353.3 | 707122.0 | 710664.4 |
| 2016-03-01 | 700354.6 | 680351.3 | 703042.8 | 706585.2 | 707098.2 |
| 2016-04-01 | 683511.0 | 684164.0 | 694612.7 | 701998.7 | 704429.0 |
| 2016-05-01 | 686641.2 | 690168.9 | 689067.4 | 699625.2 | 702883.7 |
| 2016-06-01 | 714558.7 | 694903.6 | 687627.5 | 700329.7 | 703664.8 |
| 2016-07-01 | 706490.1 | 702563.3 | 693363.7 | 697262.9 | 702139.8 |
| 2016-08-01 | 707057.5 | 709368.8 | 699768.8 | 695834.5 | 702061.1 |
| 2016-09-01 | 673140.2 | 695562.6 | 695233.1 | 690272.5 | 699137.9 |
| 2016-10-01 | 691664.9 | 690620.9 | 696592.1 | 692449.4 | 695602.4 |
| 2016-11-01 | 711514.8 | 692106.6 | 700737.7 | 697214.8 | 694902.6 |
| 2016-12-01 | 740857.8 | 714679.1 | 705120.9 | 701715.1 | 696374.2 |
| 2017-01-01 | 687067.6 | 713146.7 | 701883.8 | 702110.3 | 697623.7 |
| 2017-02-01 | 668890.8 | 698938.7 | 695522.7 | 700138.0 | 697645.8 |
| 2017-03-01 | 706794.5 | 687584.3 | 701131.7 | 699275.4 | 698182.4 |
| 2017-04-01 | 680494.8 | 685393.4 | 699270.0 | 696387.0 | 697931.1 |
| 2017-05-01 | 710853.1 | 699380.8 | 699159.8 | 696808.7 | 699948.7 |
| 2017-06-01 | 721049.9 | 704132.6 | 695858.5 | 702132.0 | 700489.7 |
| 2017-07-01 | 720369.6 | 717424.2 | 701408.8 | 705321.4 | 701646.3 |
| 2017-08-01 | 716687.3 | 719368.9 | 709374.9 | 705896.2 | 702448.8 |
| 2017-09-01 | 680262.9 | 705773.3 | 704952.9 | 699163.4 | 703042.3 |
| 2017-10-01 | 704081.0 | 700343.7 | 708884.0 | 701053.8 | 704077.0 |
| 2017-11-01 | 723145.3 | 702496.4 | 710932.7 | 707082.0 | 705046.2 |
| 2017-12-01 | 749380.6 | 725535.6 | 715654.4 | 711813.8 | 705756.4 |
| 2018-01-01 | 704921.1 | 725815.7 | 713079.7 | 714527.9 | 707244.2 |
| 2018-02-01 | 669626.2 | 707976.0 | 705236.2 | 709947.1 | 707305.5 |
| 2018-03-01 | 708049.4 | 694198.9 | 709867.3 | 708502.6 | 707410.1 |
| 2018-04-01 | 704902.6 | 694192.7 | 710004.2 | 706784.0 | 709444.1 |
| 2018-05-01 | 683679.2 | 698877.1 | 703426.5 | 703116.5 | 707179.6 |
| 2018-06-01 | 720058.1 | 702880.0 | 698539.4 | 707538.2 | 707096.9 |
| 2018-07-01 | 722115.2 | 708617.5 | 701405.1 | 709542.0 | 707242.4 |
| 2018-08-01 | 720344.0 | 720839.1 | 709858.1 | 709230.7 | 707547.1 |
| 2018-09-01 | 685045.0 | 709168.1 | 706024.0 | 702082.3 | 707945.6 |
| 2018-10-01 | 727494.6 | 710961.2 | 709789.4 | 704590.5 | 709896.8 |
| 2018-11-01 | 730102.7 | 714214.1 | 717526.6 | 711310.1 | 710476.6 |
| 2018-12-01 | 739709.0 | 732435.5 | 720801.8 | 714827.8 | 709670.6 |
| 2019-01-01 | 706763.8 | 725525.2 | 718243.2 | 715034.6 | 709824.2 |
| 2019-02-01 | 689904.4 | 712125.7 | 713169.9 | 715726.3 | 711514.0 |
| 2019-03-01 | 698882.0 | 698516.8 | 715476.1 | 713373.4 | 710750.1 |
| 2019-04-01 | 712972.4 | 700586.3 | 713055.7 | 712357.6 | 711422.5 |
| 2019-05-01 | 726522.7 | 712792.4 | 712459.1 | 713044.1 | 714992.8 |
| 2019-06-01 | 718205.0 | 719233.4 | 708875.1 | 716728.5 | 714838.4 |
| 2019-07-01 | 751610.0 | 732112.6 | 716349.4 | 719408.0 | 717296.3 |
| 2019-08-01 | 738295.7 | 736036.9 | 724414.6 | 720318.3 | 718792.3 |
| 2019-09-01 | 735714.7 | 741873.5 | 730553.4 | 719874.5 | 723014.8 |
| 2019-10-01 | 765904.8 | 746638.4 | 739375.5 | 726445.8 | 726215.6 |
| 2019-11-01 | 751888.5 | 751169.3 | 743603.1 | 733332.9 | 728031.1 |
| 2019-12-01 | 760367.0 | 759386.8 | 750630.1 | 740164.5 | 729752.6 |
| 2020-01-01 | 725058.8 | 745771.5 | 746204.9 | 741507.5 | 731277.2 |
| 2020-02-01 | 714600.7 | 733342.2 | 742255.8 | 740182.8 | 733335.2 |
| 2020-03-01 | 723115.5 | 720925.0 | 740155.9 | 740728.4 | 735354.7 |
| 2020-04-01 | 653864.1 | 697193.4 | 721482.4 | 729867.8 | 730429.0 |
| 2020-05-01 | 661612.0 | 679530.5 | 706436.3 | 721347.3 | 725019.7 |
| 2020-06-01 | 694692.1 | 670056.1 | 695490.5 | 716789.3 | 723060.3 |
| 2020-07-01 | 737299.0 | 697867.7 | 697530.6 | 713610.9 | 721867.7 |
| 2020-08-01 | 728749.0 | 720246.7 | 699888.6 | 711039.8 | 721072.2 |
| 2020-09-01 | 735042.6 | 733696.9 | 701876.5 | 708226.0 | 721016.2 |
| 2020-10-01 | 758357.7 | 740716.4 | 719292.1 | 711925.8 | 720387.2 |
| 2020-11-01 | 754535.5 | 749311.9 | 734779.3 | 716363.1 | 720607.8 |
| 2020-12-01 | 770907.3 | 761266.8 | 747481.9 | 721673.3 | 721486.2 |
| 2021-01-01 | 731680.6 | 752374.5 | 746545.5 | 730319.5 | 722038.0 |
| 2021-02-01 | 750086.1 | 750891.4 | 750101.6 | 740150.0 | 724995.1 |
| 2021-03-01 | 811273.1 | 764346.6 | 762806.7 | 753103.4 | 732341.6 |
| 2021-04-01 | 782022.8 | 781127.4 | 766750.9 | 758072.8 | 743021.5 |
| 2021-05-01 | 775193.2 | 789496.4 | 770193.9 | 763233.2 | 752486.6 |
| 2021-06-01 | 772853.1 | 776689.7 | 770518.1 | 767434.4 | 759000.0 |
| 2021-07-01 | 796847.4 | 781631.2 | 781379.3 | 771711.0 | 763962.4 |
| 2021-08-01 | 785520.1 | 785073.5 | 787284.9 | 775153.7 | 768693.3 |
| 2021-09-01 | 764799.1 | 782388.9 | 779539.3 | 774475.1 | 771173.0 |
| 2021-10-01 | 761170.8 | 770496.7 | 776063.9 | 777751.7 | 771407.4 |
| 2021-11-01 | 772984.2 | 766318.0 | 775695.8 | 780296.0 | 772944.8 |
| 2021-12-01 | 786974.9 | 773710.0 | 778049.4 | 777596.2 | 774283.8 |
| 2022-01-01 | 752223.6 | 770727.6 | 770612.1 | 774285.1 | 775995.7 |
| 2022-02-01 | 753542.9 | 764247.1 | 765282.6 | 771879.6 | 776283.8 |
Perceba que aparecem uns NA, esses valores são o equivalente a “nada”. A média entre valores desconhecidos é desconhecida, por isso, suavizar a série ocasiona também na perda de informação. Abaixo observe que a tendência da série é mantida, mas a oscilação ao longo dela é reduzida.
data_long <- dataset %>%
tidyr::pivot_longer(!Data, names_to = "serie", values_to = "PIB")
ggplot(data_long, aes(x = Data, y= PIB)) +
geom_line(color = "steelblue") +
scale_y_continuous(labels = scales::number_format()) +
theme_classic() +
facet_wrap(~serie)
9 Modelos Autorregressivos Integrados de Média Móvel (ARIMA)
Nos capítulos anteriores busquei utilizar a série histórica do PIB como simplificadora. Na prática, series temporais podem ser qualquer observação de uma variável em dado recorte temporal. Além disso, busquei não entrar no mérito dos modelos AR(p), MA(q) ou modelos ARMA(p, q).
Dessa forma, nesta seção, buscarei conceituar os modelos AR(p), MA(q) e ARMA(p, q), além de introduzir mais um compontente, o grau de diferenciação I(d).
9.1 Modelos autoregressivos AR
São a classe de modelos que dependem de um componente defasado da série.
Em outras palavras: são os modelos em que o resultado do presente é influenciado por um ou mais resultados do passado. Exemplo: o PIB do ano de 2020 é fortemente influenciado pelos PIBs do passado!
A forma com uma defasagem do modelo AR(1) é: \[ Y_t = c + \phi_1 Y_{t-1} + \epsilon_t \] O valor de phi (\(\phi\)) é o sinal que é atribuido a combinação das variáveis que usamos pra explicar o fenômeno \(Y_t\). Ou seja, \(Y_t\) depende de uma constante mais alguma coisa de seu valor passado.
Podemos generalizar para p defasagens:
\[ Y_t = c + \phi_1 Y_{t-1} + \phi_2 Y_{t-2} + ... + \phi_p Y_{t-p} + \epsilon_t \]
Alguns exemplos gráficos para série AR(p):
O gráfico abaixo advém de um modelo da seguinte formula:
\[ Y_t = 50 + 0.9 Y_{t-1} + \epsilon_t \]
set.seed(402)
dataset <- data.table(x = 1:201, y = arima.sim(model = list(order = c(1, 1, 0), ar = .9), n = 200) + 50)
ggplot(dataset, aes(x, y)) +
geom_line(color = "steelblue") +
theme_classic()
O gráfico abaixo advém de um modelo da seguinte formula:
\[ Y_t = 20 - 0.4 Y_{t-1} + \epsilon_t \]
set.seed(402)
dataset <- data.table(x = 1:201, y = arima.sim(model = list(order = c(1, 1, 0), ar = -.4), n = 200) + 20)
ggplot(dataset, aes(x, y)) +
geom_line(color = "steelblue") +
theme_classic()
O gráfico abaixo advém de um modelo da seguinte formula:
\[ Y_t = 20 + 0.6 Y_{t-1} + 0.2 Y_{t-2}+ 0.1 Y_{t-3} + \epsilon_t \]
set.seed(402)
dataset <- data.table(x = 1:201, y = arima.sim(model = list(order = c(3, 1, 0), ar = c(.6, .2, .1)), n = 200) + 20)
ggplot(dataset, aes(x, y)) +
geom_line(color = "steelblue") +
theme_classic()
9.2 Modelos de média movel (MA)
São a classe de modelos que dependem do erro aleatório do componente passado.
Em outras palavras: são os modelos em que o resultado do presente é influenciado por um ou mais erros do passado. Exemplo: para aprender a andar de bicicleta, uma pessoa provavelmente irá cair algumas vezes, e seu aprendizado advém de cada tentativa e de cada erro.
A forma com uma defasagem do modelo MA(1) é: \[ Y_t = \mu + \epsilon_t + \theta \epsilon_{t-1} \] Em que \(\mu\) é o valor médio das observações e \(\epsilon_t\) é o erro estocástico (aleatório) da série no período t. O valor de \(\theta\) é simplesmente o sinal (e nosso objetivo de estimação) em que o erro passado influenciou no erro do presente.
Podemos escrever o componente MA(q) de uma forma geral, como segue: \[ Y_t = \mu + \epsilon_t + \theta_1 \epsilon_{t-1} + \theta_2 \epsilon_{t-2} + ... + \theta_q \epsilon_{t-q} \] Alguns exemplos gráficos para série MA(q):
O gráfico abaixo advém de um modelo da seguinte formula:
\[ Y_t = 20 + \epsilon_t + 10 \epsilon_{t-1} \]
set.seed(402)
dataset <- data.table(x = 1:201, y = arima.sim(model = list(order = c(0, 1, 1), ma = c(10)), n = 200) + 20)
ggplot(dataset, aes(x, y)) +
geom_line(color = "steelblue") +
theme_classic()
O gráfico abaixo advém de um modelo da seguinte formula:
\[ Y_t = 20 + \epsilon_t + 70 \epsilon_{t-1} + 40 \epsilon_{t-1} \]
set.seed(42)
dataset <- data.table(x = 1:201, y = arima.sim(model = list(order = c(0, 1, 2), ma = c(70, 40)), n = 200) + 20)
ggplot(dataset, aes(x, y)) +
geom_line(color = "steelblue") +
theme_classic()
Com a observação dos gráficos dessa subseção e da anterior você pode ter se perguntado: qual a diferença? As vezes não tem nenhuma! O modelo AR pode ser inversível, ou seja, pode ter uma representação direta em forma de modelo MA, e todo o modelo MA pode ser representado por um modelo AR!
Mais a frente, aprenderemos a diagnosticar qual a melhor adequação do modelo com base em diferentes critérios.
9.3 O modelo ARMA:
Agora que vimos a forma do modelo AR(p) e MA(q), para entendermos o modelo ARMA é uma simples questão de forma funcional!(a função que define o valor no presente)
No caso, um modelo ARMA(1,1) é uma combinação dos modelos AR(1) e MA(1), tendo a cara:
\[ Y_t = c + \phi_1 Y_{t-1} + \theta_1\epsilon_{t-1} + \epsilon_t \] De uma forma geral, podemos definir o modelo ARMA(p,q) da forma: \[ Y_t = c + \phi_1 Y_{t-1} + \phi_2 Y_{t-2} + ... + \phi_p Y_{t-p} + \theta_1\epsilon_{t-1} + \theta_2\epsilon_{t-2} + ... + \theta_q\epsilon_{t-q} + \epsilon_t \] Posso simplificar esse trem feio com dois somatórios: \[ Y_t = c + \sum_{i=1}^p\phi_i Y_{t-i} + \sum_{j = 1}^q\theta_j\epsilon_{t-j} + \epsilon_t \]
9.4 O componente I(d): grau de diferenciação
Nas seções anteriores, me dediquei a explicar o conceito de estacionariedade sem explicar exatamente o por quê isso era tão relevante. Bom, esse conceito entra aqui! Na série histórica do PIB, que foi utilizada de exemplo no início desse documento, vimos que ela era considerada estacionária a partir da sua primeira diferença. Isso quer dizer que aquela série podia ser chamada de integrada de ordem 1.
Assim, o grau de diferenciação é simplesmente em quantas diferenças a série em questão fica estacionária! No caso do exemplo do PIB, se fôssemos estimar um modelo ARIMA(p, d, q), já conheceríamos o componente d, visto que a série é integrada de ordem \(I(1)\)!
9.5 Sintese: a estimação de modelos ARIMA(p,d,q)
Vimos a relação dos modelos de componente autorregressivo AR(p), média móvel MA(q), e autorregressivo de médias móveis ARMA(p,q). O I, de ARIMA advém apenas de estimarmos um modelo ARMA(p,q) em uma série diferenciada em d vezes!
O processo de estimação em si não terá foco nesse documento, mas poderíamos estimar os coeficientes relacionados a cada modelo pelo método de Momentos Generalizados, ou por Máxima Verossimilhança. (Esses métodos são abordados na disciplina de ECO 457!)
10 Identificação de modelos ARIMA
Pela metodologia Box–Jenkins, existe um passo a passo para auxiliar na determinação dos componentes do modelo que melhor se adequem a realidade estudada.
O que eu quero dizer com identificação? Excelente pergunta! A questão da identificação está relacionada a melhor representação matemática de um fenômeno que observamos. No caso do PIB, é muito provável que eu tenha que considerar um ou mais componentes autoregressivos AR(p). A identificação tem exatamente esse objetivo: quais a forma ideal que meu modelo deve ter que melhor representa a natureza do evento que estou observando.
A identificação ocorre em 3 etapas:
- Se identifica a necessidade de uma transformação na série original, de forma que ocorra uma estabilização da variância. (A série é estacionária?)
- Caso a série já não seja estacionária, torná-la estacionária pelo processo de diferenciação. (Quantas diferenças são necessárias para estacionarizá-la?)
- Verificar, por meio da função de autocorrelação (correlograma) e por meio da função de autocorrelação parcial (correlograma parcial), o comportamento esperado dos componentes.
O item 3 é um tanto quanto nebuloso, não é mesmo? O que é comportamento esperado? Por que analisar um gráfico para verificar isso?
A próxima subseção explicará a análise gráfica por meio de diferentes exemplos de ajustamento.
10.1 Exemplos de identificação gráfica
A partir de agora, espero que minha explicação lhe ajude a compreender o por quê tudo isso que fizemos é relevante! (sugestão: reveja a seção referente a interpretação do correlograma!)
Começo primeiro com uma série de exemplo, já estacionária.
Seu objetivo com os gráficos abaixo é de pensar qual seriam os componentes ideais do modelo ARMA(p, q) e por que você acredita estar certo.
10.1.1 Exemplo 1:
set.seed(402)
dataset <- data.table(x = 1:200, y = arima.sim(model = list(order = c(1, 0, 0), ar = c(.4)), n = 200) + 150)
ggplot(dataset, aes(x, y)) +
geom_line(color = "steelblue") +
theme_classic()
plot(acf(dataset$y, na.action = na.pass))
plot(pacf(dataset$y, na.action = na.pass))
Uma dica: analise a significância de cada defasagem com o termo no presente. Qual o único valor significativo? O correlograma nos diz algo?
Ver a resposta:
Se você chegou a conclusão de que o modelo que melhor representa essa série é o ARMA(1,0), você acertou! Nesse caso, ocorre um sinal forte de que a primeira defasagem dessa série influencia o valor dela no presente. O modelo ARMA, nesse caso, seria um simples modelo AR(1)! Veja a estimação dele abaixo: \[ Y_t = 150 + 0.8 Y_{t-1} + \epsilon_t \]10.1.2 Exemplo 2
set.seed(402)
dataset <- data.table(x = 1:200, y = arima.sim(model = list(order = c(2, 0, 0), ar = c(.7, 0.2)), n = 200) + 40)
ggplot(dataset, aes(x, y)) +
geom_line(color = "steelblue") +
theme_classic()
plot(acf(dataset$y, na.action = na.pass))
plot(pacf(dataset$y, na.action = na.pass))
Ver a resposta:
Se você identificou um modelo ARMA(2,0), parabéns! Da mesma forma que antes, o correlograma apresenta uma descida exponencial, e o correlograma parcial apresenta apenas duas defasagens significativas. Por isso, a identificação do modelo AR(2) é o ideal!10.1.3 Exemplo 3
set.seed(2)
dataset <- data.table(x = 1:200, y = arima.sim(model = list(order = c(0, 0, 1), ma = 10), n = 200) + 400)
ggplot(dataset, aes(x, y)) +
geom_line(color = "steelblue") +
theme_classic()
plot(acf(dataset$y, na.action = na.pass))
plot(pacf(dataset$y, na.action = na.pass))
Dica: esses gráficos parecem com o que foram mostrados anteriormente? Então provavelmente não se tratam do mesmo tipo de especificação!
Ver a resposta:
Perceba que apenas a primeira defasagem pelo correlograma é significante, e, pelo correlograma parcial, um novo padrão pôde ser observado, uma “ondinha” que relaciona o valor no presente e defasado que se repete esporadicamente. Isso é comportamento de uma série ARMA(0, 1), ou, simplesmente, um modelo MA(1)!10.1.4 Exemplo 4
set.seed(154)
dataset <- data.table(x = 1:200, y = arima.sim(model = list(order = c(0, 0, 2), ma = c(40, 20)), n = 200) + 10)
ggplot(dataset, aes(x, y)) +
geom_line(color = "steelblue") +
theme_classic()
plot(acf(dataset$y, na.action = na.pass))
plot(pacf(dataset$y, na.action = na.pass))
Ver a resposta:
Se você classificou esse modelo como ARMA(0, 2) você acertou! Veja que, pelo correlograma, existem apenas duas defasagens com sinal significativo (depois da linha azul). Isso é um indicativo de que a série tem 2 componentes de média móvel, e, pelo correlograma parcial, existe uma mistura de subidas e descidas (ondinha), típica de uma série com padrões de MA(q).10.1.5 Exemplo 5
set.seed(2)
dataset <- data.table(x = 1:200, y = arima.sim(model = list(order = c(1, 0, 1), ar = 0.6, ma = 40), n = 200) + 70)
ggplot(dataset, aes(x, y)) +
geom_line(color = "steelblue") +
theme_classic()
plot(acf(dataset$y, na.action = na.pass))
plot(pacf(dataset$y, na.action = na.pass))
Dica: Mais uma vez, o padrão do gráfico é um pouco diferente dos anteriores. Analise o correlograma e o correlograma parcial simultaneamente!
Ver a resposta:
Se você julgou que o ajustamento correto do modelo seria de um ARMA(1,1), você acertou! Caso tenha chutado ARMA(1, 3), não desanime, você está no caminho! A interpretação do ajustamento dos modelos muitas vezes é digna de erro. Quantos mais componentes forem necessários para um ajustamento “ideal”, mais complexo fica o diagnóstico.
Pelo livro texto, a explicação do porque essa série apresenta um ajustamento ARMA(1,1) é devido ao comportamento de quedas exponenciais aceleradas em ambos os correlogramas.Vimos que é possível identificar os valores ideais de ARMA(p,q) no caso em que existem poucos componentes. Idealmente a análise pode ser feita com mais componentes, mas se torna cada vez mais dificil. Uma forma simples de analisar se o modelo se ajusta bem a tipificação dele será apresentada na seção seguinte.
10.2 Critério de Informação de Akaike (AIC) e Critério de Informação Bayesiano (BIC)
Os critérios de informação analisados nessa sessão são métricas de desempenho de um dado modelo estimado. Isso quer dizer que, para cada tipificação de modelo que supormos, existirá um AIC ou um BIC referentes. Buscamos minimizar os critérios de informação.
O AIC tem a seguinte fórmula: \[ AIC(p, q) = ln\hat{\sigma}_{p,q}² + \frac{2(p+1)}{N} \] O BIC tem a seguinte fórmula: \[ BIC(p, q) = ln\hat{\sigma}_{p,q}² + (p+q) \frac{lnN}{N} \]
O valor de \(\hat{\sigma}_{p,q}²\) nas duas equações é o mesmo, e é calculado por meio do método de máxima verossimilhança, de forma a maximizar a verossimilhança residual do modelo ARMA(p, q).
Parou tudo! Falei grego agora né? Vamos em partes: conhecemos os valores de p e q, certo? Lembra lá do modelo ARMA(p, q)! Eles são os termos que adicionam componentes autorregressivos ou de média móvel em nossos modelos. N é a quantidade de observações da série utilizada no modelo e o \(\hat{\sigma}_{p,q}²\) é um valor calculado que minimiza a variância dos resíduos por um método de otimização. (deriva e iguala a zero, encontra a relação de máximo ou mínimo… enfim, vem de uma conta dessas!)
Ok, então qual a relação dos dois critérios com a sua vida? Quanto maior o AIC, pior ajustado será o modelo, o BIC tem a mesma interpretação, mas ele penaliza mais a adição de mais componentes no modelo. Menos é mais!
Podemos então, considerar o valor do AIC ou BIC para auxiliar em nosso diagnóstico do tipo do modelo ajustado. Abaixo, faremos alguns exemplos:
10.2.1 Exemplo 1
set.seed(20)
dataset <- data.table(x = 1:200, y = arima.sim(model = list(order = c(5, 0, 0), ar = c(.3,.25,.22,.12, .1)), n = 200) + 700)
ggplot(dataset, aes(x, y)) +
geom_line(color = "steelblue") +
theme_classic()
plot(acf(dataset$y, na.action = na.pass))
plot(pacf(dataset$y, na.action = na.pass))
Com base nos correlogramas, como você ajustaria o modelo?
Vamos supor que esse modelo tenha natureza ARMA(4, 1). Qual o AIC relacionado a esse modelo?
print(arima(dataset$y, c(4, 0, 1)))
##
## Call:
## arima(x = dataset$y, order = c(4, 0, 1))
##
## Coefficients:
## ar1 ar2 ar3 ar4 ma1 intercept
## 0.5912 0.1418 0.0628 0.1491 -0.3760 697.0540
## s.e. 0.1952 0.0937 0.0964 0.0933 0.1904 0.6607
##
## sigma^2 estimated as 0.883: log likelihood = -272.1, aic = 558.19
E para um modelo ARMA(4,0)?
print(arima(dataset$y, c(4, 0, 0)))
##
## Call:
## arima(x = dataset$y, order = c(4, 0, 0))
##
## Coefficients:
## ar1 ar2 ar3 ar4 intercept
## 0.2434 0.2508 0.1802 0.2224 697.0467
## s.e. 0.0687 0.0696 0.0697 0.0687 0.5901
##
## sigma^2 estimated as 0.8972: log likelihood = -273.66, aic = 559.33
O AIC foi pior que nosso primeiro chute. E no caso de um modelo ARMA(5,1)?
print(arima(dataset$y, c(5, 0, 1)))
##
## Call:
## arima(x = dataset$y, order = c(5, 0, 1))
##
## Coefficients:
## ar1 ar2 ar3 ar4 ar5 ma1 intercept
## -0.2313 0.3293 0.2498 0.2609 0.2592 0.4524 697.0494
## s.e. 0.2900 0.1004 0.1048 0.0895 0.0782 0.2979 0.6434
##
## sigma^2 estimated as 0.8677: log likelihood = -270.41, aic = 556.81
Melhorou! E se for na verdade um ajuste tipo ARMA(5, 0)?
print(arima(dataset$y, c(5, 0, 0)))
##
## Call:
## arima(x = dataset$y, order = c(5, 0, 0))
##
## Coefficients:
## ar1 ar2 ar3 ar4 ar5 intercept
## 0.2056 0.2222 0.1393 0.1815 0.1646 697.0508
## s.e. 0.0696 0.0697 0.0710 0.0700 0.0702 0.6677
##
## sigma^2 estimated as 0.8727: log likelihood = -270.96, aic = 555.91
Se você tinha chutado um modelo ARMA(5,0), parabéns! Vimos que é realmente dificil identificar padrões quando existem muitos componentes na série temporal. Assim, a utilização de métricas auxilia nosso diagnóstico.
10.2.2 Exemplo 2
set.seed(20)
dataset <- data.table(x = 1:200, y = arima.sim(model = list(order = c(3, 0, 2), ar = c(.3,.25,.22), ma = c(40, 30)), n = 200) + 39)
ggplot(dataset, aes(x, y)) +
geom_line(color = "steelblue") +
theme_classic()
plot(acf(dataset$y, na.action = na.pass))
plot(pacf(dataset$y, na.action = na.pass))
Tente identificar o ajustamento ideal do modelo ARMA(p, q) com base nos correlogramas. Quais você imagina serem os valores mais prováveis?
Vamos imaginar um modelo ARMA(1, 3):
print(arima(dataset$y, c(1, 0, 3)))
##
## Call:
## arima(x = dataset$y, order = c(1, 0, 3))
##
## Coefficients:
## ar1 ma1 ma2 ma3 intercept
## 0.6995 0.3009 -0.0016 0.2962 62.2367
## s.e. 0.0860 0.0949 0.1093 0.0851 14.3421
##
## sigma^2 estimated as 1504: log likelihood = -1016.21, aic = 2044.42
E se eu supor o ajustamento ARMA(2,3)?
print(arima(dataset$y, c(2, 0, 3)))
##
## Call:
## arima(x = dataset$y, order = c(2, 0, 3))
##
## Coefficients:
## ar1 ar2 ma1 ma2 ma3 intercept
## 0.7694 -0.0697 0.2370 -0.0029 0.3180 62.3240
## s.e. 0.2138 0.1922 0.2014 0.1128 0.1026 13.9724
##
## sigma^2 estimated as 1503: log likelihood = -1016.14, aic = 2046.29
Houve piora no AIC, portanto não foi uma boa sugestão. E no caso de um ARMA(1,5)?
print(arima(dataset$y, c(1, 0, 5)))
##
## Call:
## arima(x = dataset$y, order = c(1, 0, 5))
##
## Coefficients:
## ar1 ma1 ma2 ma3 ma4 ma5 intercept
## 0.7262 0.2812 -0.0359 0.2896 -0.0108 -0.0630 62.2474
## s.e. 0.1469 0.1652 0.1632 0.1135 0.1237 0.0891 14.3860
##
## sigma^2 estimated as 1499: log likelihood = -1015.85, aic = 2047.7
Ainda não foi uma boa sugestão. Se parássemos de sugerir, a nossa primeira sugestão seria a melhor possível! Você teria chutado ela primeiro também?
10.2.3 Exemplo 3
set.seed(20)
dataset <- data.table(x = 1:200, y = arima.sim(model = list(order = c(1, 0, 3), ar = c(.9), ma = c(40, 30, 15)), n = 200) + 309)
ggplot(dataset, aes(x, y)) +
geom_line(color = "steelblue") +
theme_classic()
plot(acf(dataset$y, na.action = na.pass))
plot(pacf(dataset$y, na.action = na.pass))
Tente identificar o ajustamento ideal do modelo ARMA(p, q) com base nos correlogramas. Quais você imagina serem os valores mais prováveis?
Vamos imaginar um modelo ARMA(2, 1):
print(arima(dataset$y, c(2, 0, 1)))
##
## Call:
## arima(x = dataset$y, order = c(2, 0, 1))
##
## Coefficients:
## ar1 ar2 ma1 intercept
## 1.5348 -0.6255 0.0224 365.4808
## s.e. 0.0760 0.0740 0.0894 31.6918
##
## sigma^2 estimated as 1629: log likelihood = -1024.99, aic = 2059.99
E agora, ajustar outra sugestão, podendo ser ARMA(1, 2):
print(arima(dataset$y, c(1, 0, 2)))
##
## Call:
## arima(x = dataset$y, order = c(1, 0, 2))
##
## Coefficients:
## ar1 ma1 ma2 intercept
## 0.8582 0.7312 0.4602 364.1854
## s.e. 0.0381 0.0706 0.0603 42.1308
##
## sigma^2 estimated as 1589: log likelihood = -1022.57, aic = 2055.15
Essa sugestão melhorou nosso AIC! E se sugerirmos agora um ARMA(1, 3)?
print(arima(dataset$y, c(1, 0, 3)))
##
## Call:
## arima(x = dataset$y, order = c(1, 0, 3))
##
## Coefficients:
## ar1 ma1 ma2 ma3 intercept
## 0.8478 0.7464 0.4943 0.0492 364.1690
## s.e. 0.0431 0.0766 0.0811 0.0766 41.0609
##
## sigma^2 estimated as 1585: log likelihood = -1022.37, aic = 2056.74
E um ARMA(0,3)?
print(arima(dataset$y, c(0, 0, 3)))
##
## Call:
## arima(x = dataset$y, order = c(0, 0, 3))
##
## Coefficients:
## ma1 ma2 ma3 intercept
## 1.5743 1.3584 0.5107 364.3568
## s.e. 0.0613 0.0696 0.0476 15.7352
##
## sigma^2 estimated as 2541: log likelihood = -1069.4, aic = 2148.81
Vish! O componente autorregressivo é bem importante pro modelo! E um ARMA(2,3)?
print(arima(dataset$y, c(2, 0, 3)))
##
## Call:
## arima(x = dataset$y, order = c(2, 0, 3))
##
## Coefficients:
## ar1 ar2 ma1 ma2 ma3 intercept
## 0.1088 0.6489 1.4751 0.9950 0.3198 363.9926
## s.e. 0.4731 0.4019 0.4790 0.3706 0.2447 42.5784
##
## sigma^2 estimated as 1586: log likelihood = -1022.41, aic = 2058.82
Com base em nossos chutes, o melhor ajustamento do modelo é do tipo ARMA(1,2)!
10.3 Identificação pelos resíduos
Uma outra forma de analisarmos o ajustamento do modelo ARMA(p,q) é de testarmos a normalidade dos resíduos do modelo ajustados. O que quero dizer com isso? Lembre de um modelo AR(1):
\[ Y_t = c + \phi_1 Y_{t-1} + \epsilon_t \] Sem o termo de choque aleatório \(\epsilon_t\), eu teria uma estimativa do valor de \(Y_t\): \[ \hat{Y_t} = c + \phi_1 Y_{t-1} \] Resíduo é quanto minha previsão “errou” considerando o valor verdadeiro, que é \(Y_t\), então: \[ \epsilon_t = Y_t - \hat{Y_t} = Y_t - (c + \phi_1 Y_{t-1}) \] Se temos nossa estimativa de \(Y_t\), podemos assumir um valor para o termo de choque aleatório! Lembre-se, que esse termo de choque aleatório é um termo de ruído branco (normalmente distribuído). Caso o valor do choque aleatório não seja normalmente distribuído, a nossa sugestão de identificação para o modelo ARMA(p,q) não é próxima da realidade!
Farei um exemplo no modelo AR(1) simples:
set.seed(20)
dataset <- data.table(x = 1:200, y = arima.sim(model = list(order = c(1, 0, 0), ar = c(.9)), n = 200) + 9)
plot(acf(dataset$y, na.action = na.pass))
plot(pacf(dataset$y, na.action = na.pass))
Pelo gráfico, podemos facilmente classificar essa tipificação como modelo AR(1). E se eu tivesse classificado errado, por exemplo um modelo ARMA(0, 1)? Veja como ficariam os resíduos:
sarima(dataset$y, 0, 0, 1)
Muitas informações não é? Vamos devagar, com um passo a passo:
- O primeiro gráfico mostra o comportamento desse resíduo ao longo do tempo. Ele parece estacionário e sem componente cíclico aparente. Isso é um bom indicativo de ajustamento do modelo!
- O gráfico do meio, à esquerda nos mostra o correlograma dos resíduos. Existe uma correlação forte entre o resíduo em uma defasagem com o presente? Conforme aumentam as defasagens, a correlação fica cada vez menor?
- O gráfico do meio, à direita é chamado de Q-Plot. A linha azul apresenta uma distribuição normal clássica, de média 0 e desvio padrão 1. Quanto mais próximos os pontos dessa linha reta, mais próximos os resíduos estão da distribuição normal. Nesse caso, existem indícios de que os resíduos são normalizados.
- O gráfico de baixo é o mais sensível de todos. Ele apresenta um teste para cada defasagem do resíduo, que apresenta como hipótese nula os resíduos serem normais. Como o pvalor dos pontos estão todos abaixo do ponto de corte (0.05), rejeitamos a hipótese que os resíduos são normais em toda a amostra!
Pelo item 4, nosso modelo não pode ser considerado bem ajustado aos dados. E se fosse um modelo ARMA(1,0)?
sarima(dataset$y, 1, 0, 0)
Agora sim, do último gráfico poderia assumir normalidade dos erros, visto que existem muitos poucos pontos abaixo da linha azul.
Agora que vimos como realizar a identificação do modelo pelos resíduos, farei mais 2 exemplos abaixo:
10.3.1 Exemplo 1
Identifique a série abaixo:
set.seed(2000)
dataset <- data.table(x = 1:200, y = arima.sim(model = list(order = c(2, 0, 1), ar = c(.5, 0.4), ma = 50), n = 200) + 100)
plot(acf(dataset$y, na.action = na.pass))
plot(pacf(dataset$y, na.action = na.pass))
O primeiro chute para essa tipificação poderia ser um ARMA(0, 3). Vejamos o comportamento do resíduo nesse caso:
sarima(dataset$y, 0, 0, 3)
Pelo gráfico de baixo não poderiamos aceitar essa especificação para o modelo. E se chutassemos ARMA(3, 0)?
sarima(dataset$y, 3, 0, 0)
Esse chute se saiu melhor! Poderíamos já aceitar esse ajustamento para o modelo. Mas e se eu chutasse outro valor? Que tal ARMA(2, 1)?
sarima(dataset$y, 2, 0, 1)
Parece que essa outra tipificação se saiu bem tambem… Nesse caso poderíamos utilizar os critérios de informação para encontrar o melhor modelo:
print(arima(dataset$y, c(3, 0, 0)))
##
## Call:
## arima(x = dataset$y, order = c(3, 0, 0))
##
## Coefficients:
## ar1 ar2 ar3 intercept
## 0.5155 0.3789 -0.0975 101.5875
## s.e. 0.0704 0.0751 0.0706 16.7428
##
## sigma^2 estimated as 2425: log likelihood = -1063.66, aic = 2137.32
print(arima(dataset$y, c(2, 0, 1)))
##
## Call:
## arima(x = dataset$y, order = c(2, 0, 1))
##
## Coefficients:
## ar1 ar2 ma1 intercept
## 0.2639 0.491 0.2467 101.7286
## s.e. 0.1536 0.114 0.1708 17.2737
##
## sigma^2 estimated as 2427: log likelihood = -1063.74, aic = 2137.47
Parece que o modelo ARMA(3,0) é a melhor tipificação do modelo! (por muito pouco)
10.3.2 Exemplo 2
set.seed(2000)
dataset <- data.table(x = 1:200, y = arima.sim(model = list(order = c(1, 0, 5), ar = c(.9), ma = c(50, 40, 30, 20, 10)), n = 200) + 100)
plot(acf(dataset$y, na.action = na.pass))
plot(pacf(dataset$y, na.action = na.pass))
Chutando um modelo ARMA(2,1), os resíduos são normais?
sarima(dataset$y, 2, 0, 1)
Parece que sim! E um ARMA(1, 3)?
sarima(dataset$y, 1, 0, 3)
Não são, por muito pouco! E um ARMA(1,5)?
sarima(dataset$y, 1, 0, 5)
Os resíduos parecem ser normalmente distribuídos, excelente. Entre os dois modelos que foram bem ajustados, qual o melhor?
print(arima(dataset$y, c(2, 0, 1)))
##
## Call:
## arima(x = dataset$y, order = c(2, 0, 1))
##
## Coefficients:
## ar1 ar2 ma1 intercept
## 1.6099 -0.6872 0.1044 117.1819
## s.e. 0.0656 0.0645 0.0831 48.8958
##
## sigma^2 estimated as 2408: log likelihood = -1064.46, aic = 2138.93
print(arima(dataset$y, c(1, 0, 5)))
##
## Call:
## arima(x = dataset$y, order = c(1, 0, 5))
##
## Coefficients:
## ar1 ma1 ma2 ma3 ma4 ma5 intercept
## 0.7634 0.9625 0.8787 0.6349 0.4136 0.0981 116.9379
## s.e. 0.0740 0.1028 0.1495 0.1735 0.1400 0.0981 56.1202
##
## sigma^2 estimated as 2324: log likelihood = -1061.01, aic = 2138.03
O modelo de tipificação ARMA(1,5) foi o melhor pro nosso caso!
Com isso, concluímos a seção sobre ARIMA. Na próxima seção, iremos trabalhar com ARIMA com ajustes sazonais, o SARIMA!
11 Modelos Sazonais Autoregressivos Integrados de Média Móvel (SARIMA)
Primeiro, gostaria de introduzir o conceito de modelo sazonal puro. Esse, tipo de modelo acontece quando o valor no presente é influenciado somente pelo valor passado dele em termos de sazonalidade. Lembremos do caso do PIB (para os anos de 2001 e 2002), apresentado no início do documento:
rm(list = ls())
dataset <- as.data.table(read_excel("PIB.xls"))[Data >= as.POSIXct("2001-01-01", tz="UTC") &
Data < as.POSIXct("2003-01-01", tz="UTC")]
ggplot(dataset, aes(Data, PIB, label = substr(format(dataset$Data, "%B"), 1,1))) +
geom_line(color = "steelblue") +
geom_text(aes(color = as.factor(format(Data, "%B"))), size = 7) +
theme_classic() +
theme(legend.position="none")
Nas seções iniciais, eu estimei o componente sazonal utilizando o MQO e 4 dummies. O gráfico acima foi apenas para ilustrar com clareza o componente cíclico dessa série.
Note que, os meses de fevereiro costumam ser meses de baixa no PIB, com um uma tendência de crescimento em maio! Esse movimento é exatamente igual nos dois anos. Na prática então, ao invés de usar um modelo AR, que utiliza da primeira defasagem da série, o componente sazonal puro seria simplesmente a série no ano passado!
\[ Y_t = c + \Phi_1Y_{t-12} + \epsilon_t \] Veja que esse modelo não poderia ser necessariamente considerado um AR(12), visto que AR(12) implicaria falar nesse modelo: \[ Y_t = c + \phi_1Y_{t-1} + \phi_2Y_{t-2} + \phi_3Y_{t-3} + \phi_4Y_{t-4} + \phi_5Y_{t-5} + \phi_6Y_{t-6} + \phi_7Y_{t-7} + \phi_8Y_{t-8} + \phi_9Y_{t-9} + \phi_{10}Y_{t-10} + \phi_{11}Y_{t-11} + \phi_{12}Y_{t-12} + \epsilon_t \] Claramente não são a mesma coisa não é mesmo? Então uma forma de representar o modelo sazonal puro (isso é, o modelo que utiliza apenas o componente sazonal para previsão) seria por meio do seguinte:
\[ SAR(1)_s = c + \Phi_1Y_{t-s} + \epsilon_t \] A introdução de mais termos no modelo SAR(P) inclui apenas mais componentes sazonais, considerando a frequência (s): \[ SAR(P)_s = c + \Phi_1Y_{t-s} + \Phi_2Y_{t-2s} + ... + \Phi_PY_{t-Ps} + \epsilon_t \]
O modelo MA(q) tem a mesma lógica, considerando componentes sazonais, e apresenta um modelo genérico similar: \[ SMA(Q)_s = \mu + \epsilon_t + \Theta_1\epsilon_{t-s} + \Theta_2\epsilon_{t-2s} + ... + \Theta_Q\epsilon_{t-Qs} \] Da mesma forma, o modelo ARMA(p,q), considerando um modelo puramente sazonal pode ser representado da forma: \[ SARMA(P, Q)_s = c + \sum_{j=1}^P\Phi_jY_{t-js} + \sum_{i=1}^Q \Theta_i\epsilon_{t-is} + \epsilon_t \] Sem assustar! Essas são simplesmente representações genéricas do modelo que a gente busca tipificar, igual fizemos na seção anterior!
Olhando para aquela série do PIB que apresentei no início da seção, qual tipo de modelo você consideraria ajustar, utilizando apenas componentes sazonais? Minha resposta e justificativa abaixo:
Expandir aqui:
Analisando somente o comportamento direto entre meses, eu diria que uma boa tipificação, considerando os dois anos de análise, e, considerando que buscamos classificar apenas um modelo puramente sazonal, seria de um modelo \(SAR(1)_{12}\). Visto que os meses, ao longo de um ano, tendem a representar comportamentos similares!Agora que comentei sobre os modelos de pura natureza sazonal, podemos misturar o que aprendemos na seção anterior com essa! Vamos supor que uma série apresentou forte presença de um componente Autorregressivo de primeira ordem, a série é estacionária somente em sua primeira diferença e apresentou um componente de médias móveis. Parando por aí, teríamos um modelo ARIMA(1,1,1)!
Adicionando o componente sazonal, poderíamos supor que a série é similar a que eu mostrei acima, em que os meses dependem em certo grau do valor no ano anterior. Então teria um modelo, de forma genérica \(SARIMA(p,d,q)(P,D,Q)_s\), que, no caso que comentei, seria: \(SARIMA(1,1,1)(1,1,0)_{12}\).
Antes de finalizar essa seção, vou mastigar um pouco a definição que dei logo acima: \[ SARIMA(p,d,q)(P,D,Q)_s \] O que cada componente desse modelo geral quer dizer é simples: temos os valores AR(p), grau de diferenciação I(d) e MA(q). Esse é o ARIMA tradicional. Lembrando que a aplicação do ARIMA envolve em estimar ARMA na série diferenciada d vezes!
O mesmo vale para os componentes \(SAR(P)_s\), o grau de diferenciação do componente sazonal \(I(P)_s\), e o componente \(SMA(Q)_s\). Esse é o ARIMA com componentes sazonais puros. A mistura dos dois, matematicamente falando seria: \[ SARMA(p,d,q)(P,D,Q)_s = c + \sum_{i = 1}^p \phi_iY_{t-i} + \sum_{j=1}^q\theta_j\epsilon_{t-j} + \sum_{k=1}^P\Phi_kY_{t-ks} + \sum_{l=1}^Q \Theta_l\epsilon_{t-ls} + \epsilon_t \] Pro exemplo dado acima, o modelo teria a cara: \[ SARIMA(1,1,1)(1,1,0)_{12} = c + \phi_1Y_{t-1} + \theta_1\epsilon_{t-1} + \Phi_1Y_{t-12} + \Theta\epsilon_{t-12} + \epsilon_t \]
Na seção seguinte, iremos aprofundar nesses termos e na tipificação de séries com componentes sazonais.
12 Identificação de modelos SARIMA
A identificação de modelos mistos que envolvem um componente sazonal funcionam de forma silimar aos modelos ARIMA normais. Nas seções anteriores eu apresentei 3 ferramentas para analisar o ajustamento do modelo. A ideia dessa seção é a mesma. Podemos analisar por meio dos correlogramas, pelos critérios de informação e pelo ajustamento dos resíduos. Por isso, essa seção será dedicada a resolução de alguns exemplos.
12.1 Exemplo 1
set.seed(32)
dataset <- data.table(x = 1:200, y = sarima.sim(0, 1, 0, 0.4, 0, 0, 12, n = 200) + 100)
ggplot(dataset, aes(x, y)) +
geom_line(color = "steelblue") +
theme_classic()
Essa série é estacionária? Não. Primeiro busco em qual diferença ela é estacionária.
dataset <- data.table(x = 1:199, y = diff(dataset$y))
ggplot(dataset, aes(x, y)) +
geom_line(color = "steelblue") +
theme_classic()
tseries::adf.test(dataset$y)
##
## Augmented Dickey-Fuller Test
##
## data: dataset$y
## Dickey-Fuller = -5.7847, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary
Pelo teste Dickey-Fuller aumentado, rejeitamos a hipótese nula que a série não é estacionária! Então encontramos nossos componentes I(d) e SI(D).
Analiso agora o correlograma e o correlograma parcial:
Acf(dataset$y, lag.max = 30)
Pacf(dataset$y, lag.max = 30)
Pela interpretação do correlograma parcial, notamos que existe um valor muito significativo no ponto de lag(12), mas não existem muitos valores significativos antes disso. Além disso, não existem componentes significativos no início dos dois gráficos. Por isso, o modelo que melhor representa a série acima é o \(SARMA(0, 0, 0)(1,0,0)_{12}\)!
12.2 Exemplo 2
Tente dar um diagnóstico da série abaixo:
set.seed(32)
dataset <- data.table(x = 1:200, y = sarima.sim(0, 0, 0.9, 0.9, 0, 0, 4, n = 200) + 78)
Acf(dataset$y)
Pacf(dataset$y)
Dica: identifique primeiro a sazonalidade da série. A partir desse valor, no eixo x, você irá identificar o componente sazonal, antes dele, os componentes ARMA(p,q) normalmente!
Ver a resposta:
Se você classificou esse modelo como \(SARIMA(0, 0, 1)(1, 0, 0)_4\) você acertou! A sazonalidade da série é notável a partir da quarta defasagem, ao analisar o correlograma, ou seja, esse é o valor de s. Antes da quarta defasagem, o correlograma indica presença de um componente MA(1), depois da quarta defasagem, pelo correlograma parcial, existe um indicativo forte de um componente SAR(1), visto que, comparado com o correlograma que de 4 em 4 defasagens apresenta um sinal significativo, o correlograma parcial apresenta valor significativo apenas para 4ª defasagem.12.3 Exemplo 3
set.seed(32)
dataset <- data.table(x = 1:200, y = sarima.sim(0, 0, 0, c(0.5, 0.4), 0, 0, 6, n = 200) + 78)
Acf(dataset$y)
Pacf(dataset$y)
Note que o componente sazonal apresenta picos e cumes, ou seja, o padrão se repete de quanto em quanto tempo?
Ver a resposta:
Se você classificou esse modelo como \(SARIMA(0, 0, 0)(2, 0, 0)_6\) você acertou! A sazonalidade da série é notável a partir da sexta defasagem, ao analisar o correlograma, sendo a terceira defasagem relacionada a um momento de baixa, e a sexta a um momento de alta. Antes da sexta defasagem não existem valores significativos, portanto, a série temporal é puramente sazonal!12.4 Exemplo 4
set.seed(32)
dataset <- data.table(x = 1:200, y = sarima.sim(0, 0, 0, 0, 0, 0.9, 12, n = 200) + 78)
Acf(dataset$y)
Pacf(dataset$y)
Ver a resposta:
Se você classificou esse modelo como \(SARIMA(0, 0, 0)(0, 0, 1)_12\) você acertou! A sazonalidade da série é notável a partir da décima segunda defasagem, ao analisar o correlograma. Antes da sexta defasagem não existem valores significativos, portanto, a série temporal é puramente sazonal! Note que, quando identificamos um padrão SAR(1), precisamos analisar conjuntamente o correlograma e o correlograma parcial, sendo os valores significativos somente no correlograma. No caso do modelo SMA(1), os valores são significativos no correlograma parcial, e, no correlograma, é significativo apenas uma vez.12.5 Exemplo 5
Finalmente, iremos classificar a série que apresentamos no início deste documento! Tá valendo tudo, porque quanto mais complexa a série, mais difícil fica de dar um diagnóstico gráfico sobre o ajustamento da série. Mãos a obra!
dataset <- as.data.table(read_excel("PIB.xls"))
ggplot(dataset, aes(x = Data, y= PIB)) +
geom_line(color = "steelblue") +
scale_y_continuous(labels = scales::number_format()) +
theme_classic()
A série não é estacionária, veremos se ela passa a ser com a primeira diferença.
dataset[, primeira_diferença := PIB - lag(PIB)]
ggplot(dataset, aes(x = Data, y= primeira_diferença)) +
geom_line(color = "steelblue") +
scale_y_continuous(labels = scales::number_format()) +
theme_classic()
tseries::adf.test(na.omit(dataset$primeira_diferença))
##
## Augmented Dickey-Fuller Test
##
## data: na.omit(dataset$primeira_diferença)
## Dickey-Fuller = -9.0955, Lag order = 7, p-value = 0.01
## alternative hypothesis: stationary
Pelo teste ADF, rejeitamos a hipótese de que a série não é estacionária. Vamos identificar os componentes nos correlogramas dessa série diferenciada.
Acf(dataset$primeira_diferença)
Pacf(dataset$primeira_diferença)
Um chute inicial que eu daria sobre o ajustamento dessa série seria que existe uma sazonalidade mensal (doze em doze defasagens). No início do correlograma, imagino a existência de um componente MA(2), visto que existem duas defasagens significativas, e pelo correlograma parcial, existe um componente AR(4). Sobre os componentes sazonais, acredito existir um componente SAR(2). Assim, meu modelo teria a cara \(SARIMA(4, 0, 1)(2, 0, 0)_{12}\)
Estou certo? EU acho bem difícil dizer apenas por análise gráfica. Vamos ver se essa minha suposição apresenta resíduos bem ajustados!
sarima(na.omit(dataset$primeira_diferença), 4, 0, 1, 2, 0, 0, 12)
Parece que eu errei em algum componente! Vou fazer alguns chutes e comparar diferentes modelos pelo BIC. Esse foi o BIC do meu chute inicial.
sarima(na.omit(dataset$primeira_diferença), 4, 0, 1, 2, 0, 0, 12, details = FALSE)$BIC
## [1] 22.27353
E se o ajustamento correto for \(SARIMA(4, 0, 1)(1, 0, 1)_{12}\)? Abaixo o BIC do modelo proposto:
sarima(na.omit(dataset$primeira_diferença), 4, 0, 1, 1, 0, 1, 12, details = FALSE)$BIC
## [1] 22.1238
Houve uma melhoria significativa. Vamos ver se eu consigo melhorar ainda mais com \(SARIMA(4, 0, 0)(1, 0, 1)_{12}\)
sarima(na.omit(dataset$primeira_diferença), 4, 0, 0, 1, 0, 1, 12, details = FALSE)$BIC
## [1] 22.1086
Melhorou ainda mais! E como estão distribuídos os resíduos desse ajustamento?
sarima(na.omit(dataset$primeira_diferença), 4, 0, 0, 1, 0, 1, 12)
Em maiores defasagens os erros parecem não estar normalmente distribuídos. Independente disso, com base nos outros diagnósticos, os resíduos desse modelo se ajustam muito bem! Essa é a realidade com dados reais (tem que rir pra não chorar), a tipificação do modelo é bem mais difícil!
Tentei várias sugestões e não encontrei alguma com BIC menor, então julgo que o modelo \(SARIMA(4, 0, 0)(1, 0, 1)_{12}\) representa bem o PIB brasileiro!
Poderia fazer uma projeção para o PIB com esse modelo então! Sei que na série original, o modelo seria \(SARIMA(4, 1, 0)(1, 0, 1)_{12}\). Assim, uma projeção para 48 meses de PIB abaixo:
previsoes <- sarima.for(dataset$PIB, n.ahead = 48, 4, 0, 0, 1, 0, 1, 12, plot = FALSE)
dados_previsao <- data.table(previsto = as.numeric(previsoes$pred),
se = as.numeric(previsoes$se),
Data = seq(as.POSIXct("2022-03-01"), by = "month", length.out = 48))
dados_previsao[
,
`:=` (
minimo = previsto - se,
maximo = previsto + se
)
]
ggplot(dataset) +
geom_point(aes(x = Data, y = PIB), color = "gray23", size = 0.4) +
geom_line(aes(x = Data, y = PIB), color = "steelblue") +
geom_point(data = dados_previsao, aes(Data, previsto), color = "lightpink1", size = 0.4) +
geom_line(data = dados_previsao, aes(Data, previsto), color = "indianred2") +
scale_y_continuous(labels = scales::number_format()) +
geom_ribbon(data = dados_previsao, aes(Data, ymin = minimo, ymax = maximo), alpha = 0.5, fill = "indianred1") +
theme_classic()
13 Modelagem de Vetores Autoregressivos VAR
Sobre a modelagem de modelos VAR, um assunto que ainda não foi abordado nesse documento se faz relevante: a cointegração. Por isso, a próxima subseção será dedicada a falar sobre esse tema, e depois abordarei a temática de modelagem em VAR.
13.1 Cointegração
Em seções anteriores, quando me dediquei a falar sobre séries estacionárias e séries diferenciadas, o termo integrada de ordem d foi utilizado, para definir uma série que era estacionária a partir de uma diferença d. A cointegração tem mesmo sentido, só que dessa vez, a interação entre mais de uma série temporal pode tornar a série estacionária.
Tomemos como exemplo a seguinte série de dados macroeconomicos do Canadá, disponíveis quadrimestralmente:
rm(list = ls())
dataset <- as.data.table(Canada)
names(dataset) <- c("empregados_a_cada_1000_pessoas", "produtividade_do_trabalho", "salario_real", "taxa_de_desemprego")
dataset[, tempo := seq.Date(as.Date("1980/01/01"), as.Date("2000/12/01"), "quarter")]
dataset %>%
kbl() %>%
kable_material() %>%
scroll_box(width = "800px", height = "350px")
| empregados_a_cada_1000_pessoas | produtividade_do_trabalho | salario_real | taxa_de_desemprego | tempo |
|---|---|---|---|---|
| 929.6105 | 405.3665 | 386.1361 | 7.53 | 1980-01-01 |
| 929.8040 | 404.6398 | 388.1358 | 7.70 | 1980-04-01 |
| 930.3184 | 403.8149 | 390.5401 | 7.47 | 1980-07-01 |
| 931.4277 | 404.2158 | 393.9638 | 7.27 | 1980-10-01 |
| 932.6620 | 405.0467 | 396.7647 | 7.37 | 1981-01-01 |
| 933.5509 | 404.4167 | 400.0217 | 7.13 | 1981-04-01 |
| 933.5315 | 402.8191 | 400.7515 | 7.40 | 1981-07-01 |
| 933.0769 | 401.9773 | 405.7335 | 8.33 | 1981-10-01 |
| 932.1238 | 402.0897 | 409.0504 | 8.83 | 1982-01-01 |
| 930.6359 | 401.3067 | 411.3984 | 10.43 | 1982-04-01 |
| 929.0971 | 401.6302 | 413.0194 | 12.20 | 1982-07-01 |
| 928.5633 | 401.5638 | 415.1670 | 12.77 | 1982-10-01 |
| 929.0694 | 402.8157 | 414.6621 | 12.43 | 1983-01-01 |
| 930.2655 | 403.1421 | 415.7319 | 12.23 | 1983-04-01 |
| 931.6770 | 403.0786 | 416.2315 | 11.70 | 1983-07-01 |
| 932.1390 | 403.7188 | 418.1439 | 11.20 | 1983-10-01 |
| 932.2767 | 404.8668 | 419.7352 | 11.27 | 1984-01-01 |
| 932.8328 | 405.6362 | 420.4842 | 11.47 | 1984-04-01 |
| 933.7334 | 405.1363 | 420.9309 | 11.30 | 1984-07-01 |
| 934.1772 | 406.0246 | 422.1124 | 11.17 | 1984-10-01 |
| 934.5928 | 406.4123 | 423.6278 | 11.00 | 1985-01-01 |
| 935.6067 | 406.3009 | 423.9887 | 10.63 | 1985-04-01 |
| 936.5111 | 406.3354 | 424.1902 | 10.27 | 1985-07-01 |
| 937.4201 | 406.7737 | 426.1270 | 10.20 | 1985-10-01 |
| 938.4159 | 405.1525 | 426.8578 | 9.67 | 1986-01-01 |
| 938.9992 | 404.9298 | 426.7457 | 9.60 | 1986-04-01 |
| 939.2354 | 404.5765 | 426.8858 | 9.60 | 1986-07-01 |
| 939.6795 | 404.1995 | 428.8403 | 9.50 | 1986-10-01 |
| 940.2497 | 405.9499 | 430.1223 | 9.50 | 1987-01-01 |
| 941.4358 | 405.8221 | 430.2307 | 9.03 | 1987-04-01 |
| 942.2981 | 406.4463 | 430.3930 | 8.70 | 1987-07-01 |
| 943.5322 | 407.0512 | 432.0284 | 8.13 | 1987-10-01 |
| 944.3490 | 407.9460 | 433.3886 | 7.87 | 1988-01-01 |
| 944.8215 | 408.1796 | 433.9641 | 7.67 | 1988-04-01 |
| 945.0671 | 408.5998 | 434.4844 | 7.80 | 1988-07-01 |
| 945.8067 | 409.0906 | 436.1569 | 7.73 | 1988-10-01 |
| 946.8697 | 408.7042 | 438.2651 | 7.57 | 1989-01-01 |
| 946.8766 | 408.9803 | 438.7636 | 7.57 | 1989-04-01 |
| 947.2497 | 408.3287 | 439.9498 | 7.33 | 1989-07-01 |
| 947.6513 | 407.8857 | 441.8359 | 7.57 | 1989-10-01 |
| 948.1840 | 407.2605 | 443.1769 | 7.63 | 1990-01-01 |
| 948.3492 | 406.7752 | 444.3592 | 7.60 | 1990-04-01 |
| 948.0322 | 406.1794 | 444.5236 | 8.17 | 1990-07-01 |
| 947.1065 | 405.4398 | 446.9694 | 9.20 | 1990-10-01 |
| 946.0796 | 403.2800 | 450.1586 | 10.17 | 1991-01-01 |
| 946.1838 | 403.3649 | 451.5464 | 10.33 | 1991-04-01 |
| 946.2258 | 403.3807 | 452.2984 | 10.40 | 1991-07-01 |
| 945.9978 | 404.0032 | 453.1201 | 10.37 | 1991-10-01 |
| 945.5183 | 404.4774 | 453.9991 | 10.60 | 1992-01-01 |
| 945.3514 | 404.7868 | 454.9552 | 11.00 | 1992-04-01 |
| 945.2918 | 405.2710 | 455.4824 | 11.40 | 1992-07-01 |
| 945.4008 | 405.3830 | 456.1009 | 11.73 | 1992-10-01 |
| 945.9058 | 405.1564 | 457.2027 | 11.07 | 1993-01-01 |
| 945.9035 | 406.4700 | 457.3886 | 11.67 | 1993-04-01 |
| 946.3190 | 406.2293 | 457.7799 | 11.47 | 1993-07-01 |
| 946.5796 | 406.7265 | 457.5535 | 11.30 | 1993-10-01 |
| 946.7800 | 408.5785 | 458.8024 | 10.97 | 1994-01-01 |
| 947.6283 | 409.6767 | 459.0564 | 10.63 | 1994-04-01 |
| 948.6221 | 410.3858 | 459.1578 | 10.10 | 1994-07-01 |
| 949.3992 | 410.5395 | 459.7037 | 9.67 | 1994-10-01 |
| 949.9481 | 410.4453 | 459.7037 | 9.53 | 1995-01-01 |
| 949.7945 | 410.6256 | 460.0258 | 9.47 | 1995-04-01 |
| 949.9534 | 410.8672 | 461.0257 | 9.50 | 1995-07-01 |
| 950.2502 | 411.2359 | 461.3039 | 9.27 | 1995-10-01 |
| 950.5380 | 410.6637 | 461.4031 | 9.50 | 1996-01-01 |
| 950.7871 | 410.8085 | 462.9277 | 9.43 | 1996-04-01 |
| 950.8695 | 412.1160 | 464.6888 | 9.70 | 1996-07-01 |
| 950.9281 | 412.9994 | 465.0717 | 9.90 | 1996-10-01 |
| 951.8457 | 412.9551 | 464.2851 | 9.43 | 1997-01-01 |
| 952.6005 | 412.8241 | 464.0344 | 9.30 | 1997-04-01 |
| 953.5976 | 413.0489 | 463.4535 | 8.87 | 1997-07-01 |
| 954.1434 | 413.6110 | 465.0717 | 8.77 | 1997-10-01 |
| 954.5426 | 413.6048 | 466.0889 | 8.60 | 1998-01-01 |
| 955.2631 | 412.9684 | 466.6171 | 8.33 | 1998-04-01 |
| 956.0561 | 412.2659 | 465.7478 | 8.17 | 1998-07-01 |
| 956.7966 | 412.9106 | 465.8995 | 8.03 | 1998-10-01 |
| 957.3865 | 413.8294 | 466.4099 | 7.90 | 1999-01-01 |
| 958.0634 | 414.2242 | 466.9552 | 7.87 | 1999-04-01 |
| 958.7166 | 415.1678 | 467.6281 | 7.53 | 1999-07-01 |
| 959.4881 | 415.7016 | 467.7026 | 6.93 | 1999-10-01 |
| 960.3625 | 416.8674 | 469.1348 | 6.80 | 2000-01-01 |
| 960.7834 | 417.6104 | 469.3364 | 6.70 | 2000-04-01 |
| 961.0290 | 418.0030 | 470.0117 | 6.93 | 2000-07-01 |
| 961.7657 | 417.2667 | 469.6472 | 6.87 | 2000-10-01 |
A relação de cada uma dessas variáveis com o tempo é:
dataset_long <- melt(dataset, id.vars = "tempo", variable.name = "serie", value.name = "valor")
ggplot(dataset_long, aes(tempo, valor)) +
geom_line(color = "steelblue") +
facet_wrap(~ serie, scales = "free") +
theme_classic()
Observando os dados dispostos acima, você diria que as 4 séries aparentam ser estacionárias?
Antes de analisar a cointegração nos dados reais acima, vou gerar uma situação bem clara de cointegração, gerada artificialmente por mim.
Veja a série da taxa de desemprego, comparada com outra série muito parecida:
dataset[, parecida_com_desemprego := taxa_de_desemprego + rnorm(3, 0, 0.5)]
ggplot(dataset) +
geom_line(aes(tempo, taxa_de_desemprego), color = "steelblue") +
geom_line(aes(tempo, parecida_com_desemprego), color = "indianred1", linetype = "dashed") +
theme_classic()
A linha azul é simplesmente a taxa de desemprego, e a linha vermelha é essa série simulada, muito parecida com a que já tinhamos. Em que diferença ambas as séries serão estacionárias?
temp <- dataset[
,
. (
diff_taxa_de_desemprego = taxa_de_desemprego - lag(taxa_de_desemprego),
diff_parecida_com_desemprego = parecida_com_desemprego - lag(parecida_com_desemprego)
)
]
tseries::adf.test(na.omit(temp$diff_taxa_de_desemprego))
##
## Augmented Dickey-Fuller Test
##
## data: na.omit(temp$diff_taxa_de_desemprego)
## Dickey-Fuller = -3.7325, Lag order = 4, p-value = 0.02698
## alternative hypothesis: stationary
tseries::adf.test(na.omit(temp$diff_parecida_com_desemprego))
##
## Augmented Dickey-Fuller Test
##
## data: na.omit(temp$diff_parecida_com_desemprego)
## Dickey-Fuller = -4.3674, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary
Ambas as séries são integradas de ordem 1! Isso quer dizer que são cointegradas? Não necessariamente. A cointegração implica numa combinação de séries não estacionárias parecidas, que gera uma série estacionária, sem o uso do operador de diferença.
Matematicamente: \[ Y_t = y_1 - \beta_1y_2 \] Sendo \(y_1\) e \(y_2\) duas séries distintas, e \(Y_t\) uma nova série, que é estacionária.
Se eu chutar que esse valor de \(\beta_1\) é um, como seria essa nova série no nosso caso?
rm(temp)
dataset[, Yt := taxa_de_desemprego - parecida_com_desemprego]
ggplot(dataset) +
geom_line(aes(tempo, taxa_de_desemprego), color = "steelblue") +
geom_line(aes(tempo, parecida_com_desemprego), color = "indianred1", linetype = "dashed") +
geom_line(aes(tempo, Yt), color = "gray23") +
theme_classic()
A diferença entre as duas séries gerou uma série perfeitamente estacionária (um ruído branco)! Veja o resultado do teste para ter certeza:
tseries::adf.test(dataset$Yt)
##
## Augmented Dickey-Fuller Test
##
## data: dataset$Yt
## Dickey-Fuller = -3.8278e+15, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary
Agora vou dar nomes aos bois! Eu só chutei que \(\beta_1\) era 1 porque eu gerei a nova série lá com base na antiga. Se as séries não fossem extremamente parecidas seria difícil dizer qual o valor correto pra \(\beta_1\), certo? Mais ou menos! Podemos inferir sobre esse valor regredindo uma série sob outra usando MQO! Seria o mesmo que fazer a regressão abaixo: \[ TaxaDeDesemprego = \beta_0 + \beta_1 ParecidaComDesemprego \]
Que tem esse resultado:
jtools::export_summs(lm(taxa_de_desemprego ~ parecida_com_desemprego, dataset))
| Model 1 | |
|---|---|
| (Intercept) | -0.18 |
| (0.19) | |
| parecida_com_desemprego | 0.97 *** |
| (0.02) | |
| N | 84 |
| R2 | 0.97 |
| *** p < 0.001; ** p < 0.01; * p < 0.05. | |
Posso ignorar o intercepto e olhar diretamente para o valor de inclinação estimado! Essa seria uma forma de combinar linearmente duas series temporais não estacionárias em uma série temporal estacionária!
Usando dados mais reais, existem duas séries muito parecidas naquele
conjunto de gráficos que apresentei, as séries de
salário_real e taxa_de_desemprego. Vamos
identificar se essas séries são cointegradas pelo procedimento que
utilizei acima!
Primeiro, vejo se essas séries tem a mesma ordem de integração (caso não tenham, provavelmente não são cointegradas!).
dataset[
,
`:=` (
diff_empregados_a_cada_1000_pessoas = empregados_a_cada_1000_pessoas - lag(empregados_a_cada_1000_pessoas),
diff_salario_real = salario_real - lag(salario_real)
)
]
tseries::adf.test(na.omit(dataset$diff_empregados_a_cada_1000_pessoas))
##
## Augmented Dickey-Fuller Test
##
## data: na.omit(dataset$diff_empregados_a_cada_1000_pessoas)
## Dickey-Fuller = -3.2668, Lag order = 4, p-value = 0.08274
## alternative hypothesis: stationary
tseries::adf.test(na.omit(dataset$diff_salario_real))
##
## Augmented Dickey-Fuller Test
##
## data: na.omit(dataset$diff_salario_real)
## Dickey-Fuller = -3.2352, Lag order = 4, p-value = 0.08789
## alternative hypothesis: stationary
dataset[
,
`:=` (
diff2_empregados_a_cada_1000_pessoas = diff_empregados_a_cada_1000_pessoas - lag(diff_empregados_a_cada_1000_pessoas),
diff2_salario_real = diff_salario_real - lag(diff_salario_real)
)
]
tseries::adf.test(na.omit(dataset$diff2_empregados_a_cada_1000_pessoas))
##
## Augmented Dickey-Fuller Test
##
## data: na.omit(dataset$diff2_empregados_a_cada_1000_pessoas)
## Dickey-Fuller = -5.271, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary
tseries::adf.test(na.omit(dataset$diff2_salario_real))
##
## Augmented Dickey-Fuller Test
##
## data: na.omit(dataset$diff2_salario_real)
## Dickey-Fuller = -5.9644, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary
Ambas as séries são estacionárias na segunda diferença, pelos testes Dickey-Fuller. Será que as séries são cointegradas?
lm(empregados_a_cada_1000_pessoas ~ salario_real, dataset) # O valor estimado de beta é 0.3649
##
## Call:
## lm(formula = empregados_a_cada_1000_pessoas ~ salario_real, data = dataset)
##
## Coefficients:
## (Intercept) salario_real
## 783.4157 0.3649
dataset[, Yt := empregados_a_cada_1000_pessoas - 0.3649 * salario_real]
ggplot(dataset, aes(tempo, Yt)) +
geom_line(color = "steelblue") +
theme_classic()
Não tá com muita cara de série estacionária ein! Vamos testar pelo Dickey-Fuller aumentado:
tseries::adf.test(dataset$Yt)
##
## Augmented Dickey-Fuller Test
##
## data: dataset$Yt
## Dickey-Fuller = -2.6667, Lag order = 4, p-value = 0.3024
## alternative hypothesis: stationary
As séries analisadas não aparentam ser cointegradas!
Como sempre, podemos utilizar testes estatísticos para analisar a presença de cointegração. Utilizarei o teste de Engle-Granger para tal, sob a hipótese nula de ausência de cointegração:
coint.test(dataset$empregados_a_cada_1000_pessoas, dataset$salario_real, d = 0, nlag = NULL, output = TRUE)
## Response: dataset$empregados_a_cada_1000_pessoas
## Input: dataset$salario_real
## Number of inputs: 1
## Model: y ~ X + 1
## -------------------------------
## Engle-Granger Cointegration Test
## alternative: cointegrated
##
## Type 1: no trend
## lag EG p.value
## 3.00 -1.66 0.10
## -----
## Type 2: linear trend
## lag EG p.value
## 3.00 1.04 0.10
## -----
## Type 3: quadratic trend
## lag EG p.value
## 3.00 -1.54 0.10
## -----------
## Note: p.value = 0.01 means p.value <= 0.01
## : p.value = 0.10 means p.value >= 0.10
O teste usou 3 tipos de forma funcional e verificou a presença de cointegração, não rejeitando a hipótese nula em nenhuma delas! Assim, essas séries de fato não são cointegradas!
13.2 Modelagem VAR sem cointegração
Os modelos VAR fazem parte da classe de modelos que eu gosto de chamar de SEF (Simples e Eficientes!). A ideia de utilizar vetores autoregressivos é de chegar em projeções precisas de um evento sem ter muita complicação de tipificação, identificação ou um monte de termo que (desculpem estatísticos!) o estudante de graduação em economia nem vai fazer questão de lembrar depois de cursar a disciplina.
A praticidade do modelo vem do efeito causal que uma variável pode ter com outra ao longo do tempo. Pense da seguinte forma: antes usamos componentes do passado de uma série para encontrar um valor dela no presente. Isso nos permitia extrapolar a série no futuro sem muita complicação, sem precisar de fazer uma coleta extensiva de dados.
Agora, com modelagem VAR, podemos combinar o passado de outras variáveis em meio a explicar o presente de outra. Um exemplo: para prever a taxa de desemprego, poderíamos usar o PIB passado e o desemprego passado como variáveis explicativas. O mesmo poderia ser feito para o PIB, podemos usar o desemprego passado e o PIB passado para prever o PIB. Isso implica em um sistema de equações dinâmicas!
A notação do modelo VAR(1) pode ser escrita da seguinte forma:
\[ r_{1t} = \phi_{10} + \phi_{11}r_{1t-1} + \phi_{12} r_{2t-1} + a_{1t} \] \[ r_{2t} = \phi_{20} + \phi_{21}r_{1t-1} + \phi_{22} r_{2t-1} + a_{2t} \]
Calma lá! Acompanha comigo essas duas equações pois eu sei que pode parecer confuso. Na equação de cima, a série de \(r_{1t}\) é ajustada de acordo com um intercepto próprio \(\phi_{10}\), uma combinação dela no passado \(\phi_{11}r_{1t-1}\) e uma combinação de outra série no passado \(\phi_{12} r_{2t-1}\) mais um erro para esse ajuste (porque não dá pra acertar sempre né!) \(a_{1t}\). Essa série pode ser exatamente traduzida pro exemplo que dei acima:
\[ TaxaDeDesemprego_t = \phi_{10} + \phi_{11}TaxaDeDesemprego_{t-1} + \phi_{12} PIB_{t-1} + a_{1t} \] \[ PIB_t = \phi_{20} + \phi_{21}TaxaDeDesemprego_{t-1} + \phi_{22} PIB_{t-1} + a_{2t} \]
Ou seja, nosso modelo VAR considera o impacto dinâmico causal na determinação de uma série temporal, quando usa outra série como preditora!
Se eu incluir mais uma série temporal nesse modelo, incluiria mais uma equação e mais uma variável em cada equação. Exemplo, se eu incluir o salário real como preditor nesse modelo, teria o seguinte modelo VAR(1): \[ TaxaDeDesemprego_t = \phi_{10} + \phi_{11}TaxaDeDesemprego_{t-1} + \phi_{12} PIB_{t-1} + \phi_{13} SalarioReal_{t-1} + a_{1t} \] \[ PIB_t = \phi_{20} + \phi_{21}TaxaDeDesemprego_{t-1} + \phi_{22} PIB_{t-1} + \phi_{23} SalarioReal_{t-1} + a_{2t} \] \[ SalarioReal_t = \phi_{30} + \phi_{31}TaxaDeDesemprego_{t-1} + \phi_{32} PIB_{t-1} + \phi_{33} SalarioReal_{t-1} + a_{3t} \]
A complexidade do modelo cresce muito rapidamente! Isso porque estamos utilizando o VAR com uma única defasagem. Imagine como ficaria o modelo VAR(2)! Eu adicionaria para cada variável incluída no modelo, 2 variáveis defasadas em cada equação. Por isso a abordagem matricial facilita nossa vida, e reduz a quantidade de termo escrito. De forma genérica, o VAR(1) com duas séries, na forma matricial é:
\[ \left[\begin{matrix} r_{1t} \\ r_{2t} \end{matrix}\right] = \left[\begin{matrix} \phi_{10} \\ \phi_{20} \end{matrix}\right] + \left[\begin{matrix} \phi_{11} & \phi_{12} \\ \phi_{21} & \phi_{22} \end{matrix}\right] \left[\begin{matrix} r_{1t-1} \\ r_{2t-1} \end{matrix}\right] + \left[\begin{matrix} a_{1t} \\ a_{2t} \end{matrix}\right] \]
Veja que o VAR(2) é simplesmente:
\[ \begin{bmatrix} r_{1t} \\r_{2t}\end{bmatrix}=\begin{bmatrix} \phi_{10} \\\phi_{20}\end{bmatrix}+\begin{bmatrix} \phi_{11} & \phi_{12} & \phi_{13} & \phi_{14} \\\phi_{21} & \phi_{22} & \phi_{23} & \phi_{24}\end{bmatrix}\begin{bmatrix} r_{1t-1} \\ r_{2t-1} \\ r_{1t-2} \\ r_{2t-2}\end{bmatrix}+\begin{bmatrix} a_{1t} \\a_{2t}\end{bmatrix} \]
No nosso exemplo com 3 séries, o VAR(2) seria:
\[ \begin{bmatrix} TaxaDeDesemprego_t \\PIB_t \\SalarioReal_t\end{bmatrix}=\begin{bmatrix} \phi_{10} \\\phi_{20} \\\phi_{30}\end{bmatrix}+\begin{bmatrix} \phi_{11} & \phi_{12} & \phi_{13} & \phi_{14} & \phi_{15} & \phi_{16} \\\phi_{21} & \phi_{22} & \phi_{23} & \phi_{24} & \phi_{25} & \phi_{26} \\\phi_{31} & \phi_{32} & \phi_{33} & \phi_{34} & \phi_{35} & \phi_{36} \end{bmatrix}\begin{bmatrix} TaxaDeDesemprego_{t-1} \\PIB_{t-1} \\ SalarioReal_{t-1} \\ TaxaDeDesemprego_{t-2} \\ PIB_{t-2} \\ SalarioReal_{t-2}\end{bmatrix}+\begin{bmatrix} a_{1t} \\a_{2t} \\a_{3t}\end{bmatrix} \]
Que tremzinho feio né? Imagina se eu fosse escrever as 3 equações!
Agora que vimos a representação geral do modelo VAR, quero atentar para um detalhe muito importante que são os parâmetros \(\phi_{ij}\). Poderia simplesmente dizer que eles são parâmetros de inclinação do modelo, que combinam uma informação para gerar outra, mas isso é uma forma meio simplista de encarar as coisas não?
Relembre das duas equações originais que apresentei: \[ TaxaDeDesemprego_t = \phi_{10} + \phi_{11}TaxaDeDesemprego_{t-1} + \phi_{12} PIB_{t-1} + a_{1t} \] \[ PIB_t = \phi_{20} + \phi_{21}TaxaDeDesemprego_{t-1} + \phi_{22} PIB_{t-1} + a_{2t} \] O que os parâmetros \(\phi_{11}\) e \(\phi_{22}\) querem dizer? Eles determinam a a relação de uma variável sob outra! Ou seja, um aumento de uma unidade no passado do PIB causa um aumento ou diminuição do desemprego em \(\phi_{11}\), na primeira equação. Esse mesmo sinal é mensurado na segunda equação em \(\phi_{22}\). Uma forma interessante de testar o ajustamento correto de um modelo VAR é aplicar o teste de causalidade de Granger, de forma a testar se a utilização de dado conjunto de variáveis faz sentido.
Outra coisa interessante sobre os parâmetros é no sinal de \(\phi_{12}\) e \(\phi_{21}\). Se a estimativa desses valores for 0, significa dizer que nosso modelo é melhor representado ao utilizar apenas o componente AR(1)!
Vamos ao exemplo usando a base de dados macroeconomicos do Canadá,
abordado na subseção anterior. Desejo estimar a
taxa_de_desemprego, utilizando a
produtividade_do_trabalho. As séries não são cointegradas.
Como ambas não são estacionárias, primeiro estacionarizo as séries,
depois estimo um modelo VAR(1) usando MQO para ambas as equações:
dataset[
,
`:=` (
diff_taxa_de_desemprego = taxa_de_desemprego - lag(taxa_de_desemprego),
diff_produtividade_do_trabalho = produtividade_do_trabalho - lag(produtividade_do_trabalho)
)
]
dataset[, diff2_produtividade_do_trabalho := diff_produtividade_do_trabalho - lag(diff_produtividade_do_trabalho)]
ggplot(dataset) +
geom_line(aes(tempo, diff2_produtividade_do_trabalho, color = "produtividade_do_trabalho"), show.legend = T) +
geom_line(aes(tempo, diff_taxa_de_desemprego, color = "taxa_de_desemprego"), show.legend =) +
scale_color_manual(values = c("produtividade_do_trabalho" = "indianred1", "taxa_de_desemprego" = "steelblue")) +
labs(color = "Series", y = "Valor") +
theme_classic()
A produtividade do trabalho é estacionária em sua segunda diferença, sendo integrada de ordem 2, enquanto que a taxa de desemprego é estacionária em sua primeira diferença, sendo integrada de primeira ordem. Isso só quer dizer que vou gerar o modelo nessas diferenças.
A primeira equação desse modelo teria essa aparência: \[ DiferencaTaxaDeDesemprego_t = \phi_{10} + \phi_{11}DiferencaTaxaDeDesemprego_{t-1} + \phi_{12}SegundaDiferencaProdTrabalho_{t-1} + a_{1t} \] Com os seguintes resultados:
coefficients(VAR(y = na.omit(dataset[, c("diff_taxa_de_desemprego", "diff2_produtividade_do_trabalho")]), p = 1, type = "const"))[1] %>%
kbl() %>%
kable_paper()
|
E a segunda equação seria:
\[ SegundaDiferencaProdTrabalho_ = \phi_{20} + \phi_{21}DiferencaTaxaDeDesemprego_{t-1} + \phi_{22}SegundaDiferencaProdTrabalho_{t-1} + a_{2t} \] Com os seguintes resultados:
coefficients(VAR(y = na.omit(dataset[, c("diff_taxa_de_desemprego", "diff2_produtividade_do_trabalho")]), p = 1, type = "const"))[2] %>%
kbl() %>%
kable_paper()
|
Analisando o resultado das regressões, daria para chegar em uma conclusão fundamental sobre a forma funcional desse modelo VAR. A conclusão é que uma série não influencia na outra de forma significativa, ou seja, seria melhor estimarmos um modelo AR(1) que um modelo VAR(1).
Uma forma de testar a causalidade de duas séries é testar para a
causalidade de Granger! Os resultados do teste, considerando apenas uma
defasagem, da série diff_taxa_de_desemprego para
diff2_produtividade_do_trabalho são:
grangertest(dataset$diff_taxa_de_desemprego, dataset$diff2_produtividade_do_trabalho, order = 1)
## Granger causality test
##
## Model 1: dataset$diff2_produtividade_do_trabalho ~ Lags(dataset$diff2_produtividade_do_trabalho, 1:1) + Lags(dataset$diff_taxa_de_desemprego, 1:1)
## Model 2: dataset$diff2_produtividade_do_trabalho ~ Lags(dataset$diff2_produtividade_do_trabalho, 1:1)
## Res.Df Df F Pr(>F)
## 1 78
## 2 79 -1 0.0044 0.9472
A hipótese nula do teste de Granger é que o termo associado a
diff2_produtividade_do_trabalho não Granger Causa a
primeira série. Como o pvalor do teste foi muito alto, não negamos a
hipótese de ausência de causalidade.
Agora vou quebrar sua cabeça. Com uma defasagem não rejeitamos, certo? E com três?
grangertest(dataset$diff_taxa_de_desemprego, dataset$diff2_produtividade_do_trabalho, order = 3)
## Granger causality test
##
## Model 1: dataset$diff2_produtividade_do_trabalho ~ Lags(dataset$diff2_produtividade_do_trabalho, 1:3) + Lags(dataset$diff_taxa_de_desemprego, 1:3)
## Model 2: dataset$diff2_produtividade_do_trabalho ~ Lags(dataset$diff2_produtividade_do_trabalho, 1:3)
## Res.Df Df F Pr(>F)
## 1 72
## 2 75 -3 3.5774 0.01796 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Com três defasagens, há indícios de uma correlação de Granger entre as séries! Como escolher o melhor modelo pode ter sido uma válida pergunta que você tenha feito agora. A resposta para ela nunca é simples, visto que muitas vezes o processo de ajustamento de um modelo advém de muita tentativa e erro até encontrar um modelo que se ajuste bem. Sobre a definição da ordem do modelo VAR, podemos usar os critérios de informação apresentados na seção de modelos ARIMA.
O Critério de Informação de Akaike (AIC) e o Critério de Informação Bayesiano (BIC) são formas de mensurar o ajustamento do modelo. Quanto menor os valores desses critérios, melhor. A diferença entre o AIC e o BIC vem do fato de que o BIC penaliza modelos complexos demais, ou seja, com muitas variáveis. Como modelos VAR utilizam de muitas variáveis eu acho interessante de se utilizar o AIC, mas isso pode depender da natureza do evento estimado.
Veja um comparativo de modelos VAR do evento que estimamos acima, com diferentes ordens (note que eu uso outras 3 métricas para mensurar ajustamento. A ideia delas é igual, quanto menor melhor, mas depois sugiro dar uma olhada!):
temp <- as.data.table(
t(VARselect(na.omit(dataset[, c("diff_taxa_de_desemprego", "diff2_produtividade_do_trabalho")]), lag.max = 4)$criteria))[, defasagens := 1:4]
setcolorder(temp, c("defasagens", "AIC(n)", "HQ(n)", "SC(n)", "FPE(n)"))
temp %>%
kbl() %>%
kable_paper()
| defasagens | AIC(n) | HQ(n) | SC(n) | FPE(n) |
|---|---|---|---|---|
| 1 | -2.414637 | -2.342066 | -2.233352 | 0.0894065 |
| 2 | -2.464820 | -2.343867 | -2.162678 | 0.0850540 |
| 3 | -2.469301 | -2.299967 | -2.046302 | 0.0847260 |
| 4 | -2.436872 | -2.219157 | -1.893017 | 0.0876146 |
Pelo AIC, o melhor modelo seria o terceiro (o valor mais negativo), que usa 3 ordens de defasagem (que vai de encontro com nosso teste de granger!).
Outra forma de medir um bom ajustamento do modelo seria por meio da análise do resíduo da regressão. Um resíduo bem comportado implica num ajustamento adequado do modelo. Lá na seção de ARIMA fizemos esse procedimento! Vamos analisar os resíduos do modelo VAR(3):
model <- VAR(y = na.omit(dataset[, c("diff_taxa_de_desemprego", "diff2_produtividade_do_trabalho")]), p = 3, type = "const")
temp <- dataset[, .(residuos = residuals(model), tempo)]
temp_long <- melt(temp, id.vars = "tempo", value.name = "residuo", variable.name = "equacao")
ggplot(temp_long, aes(tempo, residuo, color = equacao)) +
geom_line() +
theme_classic() +
geom_hline(yintercept = 0, size = 0.2, color = "red")
Os resíduos parecem estacionários. Posso testar a estacionariedade deles pelo teste Dickey-Fuller Aumentado. Além disso, testar normalidade por meio do teste de Shapiro–Wilk, ou analisar o Q-Qplot desses resíduos. Existe um mundo de possibilidades que espero que tenha sido compreendido por você, leitor!
Finalizo essa seção utilizando todas as variáveis da base que apresentei para estimar o melhor modelo que eu puder!
Primeiro, identifico em qual diferença cada série é estacionária. Isso já fiz em cima e é o mesmo procedimento que fiz em todo o documento.
rm(list = setdiff(ls(), "dataset"))
temp <- dataset[, c("diff_taxa_de_desemprego", "diff2_produtividade_do_trabalho",
"diff2_empregados_a_cada_1000_pessoas", "diff2_salario_real", "tempo")]
temp %>%
kbl() %>%
kable_paper() %>%
scroll_box(width = "800px", height = "350px")
| diff_taxa_de_desemprego | diff2_produtividade_do_trabalho | diff2_empregados_a_cada_1000_pessoas | diff2_salario_real | tempo |
|---|---|---|---|---|
| NA | NA | NA | NA | 1980-01-01 |
| 0.17 | NA | NA | NA | 1980-04-01 |
| -0.23 | -0.0983185 | 0.3209324 | 0.4047038 | 1980-07-01 |
| -0.20 | 1.2258411 | 0.5948968 | 1.0193505 | 1980-10-01 |
| 0.10 | 0.4300503 | 0.1250183 | -0.6228307 | 1981-01-01 |
| -0.24 | -1.4609153 | -0.3453840 | 0.4561370 | 1981-04-01 |
| 0.27 | -0.9676364 | -0.9083477 | -2.5272136 | 1981-07-01 |
| 0.93 | 0.7558186 | -0.4352332 | 4.2521779 | 1981-10-01 |
| 0.50 | 0.9541830 | -0.4984795 | -1.6650623 | 1982-01-01 |
| 1.60 | -0.8954269 | -0.5346878 | -0.9689212 | 1982-04-01 |
| 1.77 | 1.1065195 | -0.0510651 | -0.7269477 | 1982-07-01 |
| 0.57 | -0.3898995 | 1.0051549 | 0.5264976 | 1982-10-01 |
| -0.34 | 1.3183609 | 1.0397688 | -2.6524336 | 1983-01-01 |
| -0.20 | -0.9255356 | 0.6900916 | 1.5747577 | 1983-04-01 |
| -0.53 | -0.3898972 | 0.2153794 | -0.5703327 | 1983-07-01 |
| -0.50 | 0.7036550 | -0.9495794 | 1.4129253 | 1983-10-01 |
| 0.07 | 0.5078467 | -0.3242171 | -0.3211537 | 1984-01-01 |
| 0.20 | -0.3786256 | 0.4183778 | -0.8423494 | 1984-04-01 |
| -0.17 | -1.2692891 | 0.3445394 | -0.3022598 | 1984-07-01 |
| -0.13 | 1.3882559 | -0.4568489 | 0.7348279 | 1984-10-01 |
| -0.17 | -0.5007247 | -0.0281534 | 0.3338782 | 1985-01-01 |
| -0.37 | -0.4989669 | 0.5982364 | -1.1545203 | 1985-04-01 |
| -0.36 | 0.1457562 | -0.1094939 | -0.1593550 | 1985-07-01 |
| -0.07 | 0.4039245 | 0.0046280 | 1.7353048 | 1985-10-01 |
| -0.53 | -2.0594913 | 0.0868274 | -1.2060798 | 1986-01-01 |
| -0.07 | 1.3984308 | -0.4125831 | -0.8428271 | 1986-04-01 |
| 0.00 | -0.1305676 | -0.3470636 | 0.2521519 | 1986-07-01 |
| -0.10 | -0.0237693 | 0.2079647 | 1.8143839 | 1986-10-01 |
| 0.00 | 2.1274173 | 0.1260205 | -0.6723908 | 1987-01-01 |
| -0.47 | -1.8781277 | 0.6159746 | -1.1737118 | 1987-04-01 |
| -0.33 | 0.7519547 | -0.3238673 | 0.0539587 | 1987-07-01 |
| -0.57 | -0.0192255 | 0.3718500 | 1.4731095 | 1987-10-01 |
| -0.26 | 0.2898115 | -0.4173807 | -0.2752193 | 1988-01-01 |
| -0.20 | -0.6612158 | -0.3442276 | -0.7847400 | 1988-04-01 |
| 0.13 | 0.1866674 | -0.2268708 | -0.0551733 | 1988-07-01 |
| -0.07 | 0.0705198 | 0.4939411 | 1.1522024 | 1988-10-01 |
| -0.16 | -0.8770934 | 0.3233461 | 0.4357697 | 1989-01-01 |
| 0.00 | 0.6624056 | -1.0559847 | -1.6098213 | 1989-04-01 |
| -0.24 | -0.9276452 | 0.3661295 | 0.6877808 | 1989-07-01 |
| 0.24 | 0.2085917 | 0.0285037 | 0.6998206 | 1989-10-01 |
| 0.06 | -0.1821709 | 0.1311108 | -0.5450286 | 1990-01-01 |
| -0.03 | 0.1397829 | -0.3674261 | -0.1586899 | 1990-04-01 |
| 0.57 | -0.1103557 | -0.4823371 | -1.0179106 | 1990-07-01 |
| 1.03 | -0.1438831 | -0.6086189 | 2.2813741 | 1990-10-01 |
| 0.97 | -1.4202023 | -0.1012413 | 0.7433925 | 1991-01-01 |
| 0.16 | 2.2447078 | 1.1311863 | -1.8013420 | 1991-04-01 |
| 0.07 | -0.0690608 | -0.0622740 | -0.6359161 | 1991-07-01 |
| -0.03 | 0.6066779 | -0.2699947 | 0.0697909 | 1991-10-01 |
| 0.23 | -0.1482868 | -0.2514936 | 0.0573643 | 1992-01-01 |
| 0.40 | -0.1648313 | 0.3126233 | 0.0769508 | 1992-04-01 |
| 0.40 | 0.1748368 | 0.1072695 | -0.4288253 | 1992-07-01 |
| 0.33 | -0.3722319 | 0.1686124 | 0.0913429 | 1992-10-01 |
| -0.66 | -0.3385664 | 0.3960236 | 0.4832199 | 1993-01-01 |
| 0.60 | 1.5402042 | -0.5073634 | -0.9158749 | 1993-04-01 |
| -0.20 | -1.5543612 | 0.4178978 | 0.2054165 | 1993-07-01 |
| -0.17 | 0.7379090 | -0.1549658 | -0.6176702 | 1993-10-01 |
| -0.33 | 1.3548462 | -0.0601816 | 1.4752255 | 1994-01-01 |
| -0.34 | -0.7538158 | 0.6478411 | -0.9948640 | 1994-04-01 |
| -0.53 | -0.3891520 | 0.1455213 | -0.1525808 | 1994-07-01 |
| -0.43 | -0.5552928 | -0.2166476 | 0.4444771 | 1994-10-01 |
| -0.14 | -0.2480258 | -0.2281710 | -0.5458970 | 1995-01-01 |
| -0.06 | 0.2746123 | -0.7025985 | 0.3220939 | 1995-04-01 |
| 0.03 | 0.0612875 | 0.3125299 | 0.6778145 | 1995-07-01 |
| -0.23 | 0.1270437 | 0.1379732 | -0.7217164 | 1995-10-01 |
| 0.23 | -0.9409407 | -0.0090678 | -0.1790249 | 1996-01-01 |
| -0.07 | 0.7171157 | -0.0386938 | 1.4254777 | 1996-04-01 |
| 0.27 | 1.1626000 | -0.1666975 | 0.2364071 | 1996-07-01 |
| 0.20 | -0.4240075 | -0.0237963 | -1.3781296 | 1996-10-01 |
| -0.47 | -0.9277960 | 0.8589862 | -1.1694970 | 1997-01-01 |
| -0.13 | -0.0865733 | -0.1628363 | 0.5358756 | 1997-04-01 |
| -0.43 | 0.3556655 | 0.2423228 | -0.3302474 | 1997-07-01 |
| -0.10 | 0.3374012 | -0.4512410 | 2.1991673 | 1997-10-01 |
| -0.17 | -0.5683789 | -0.1466306 | -0.6010533 | 1998-01-01 |
| -0.27 | -0.6301577 | 0.3213378 | -0.4889141 | 1998-04-01 |
| -0.16 | -0.0661080 | 0.0723740 | -1.3975775 | 1998-07-01 |
| -0.14 | 1.3472093 | -0.0523832 | 1.0210549 | 1998-10-01 |
| -0.13 | 0.2741147 | -0.1506395 | 0.3586674 | 1999-01-01 |
| -0.03 | -0.5240866 | 0.0870412 | 0.0349211 | 1999-04-01 |
| -0.34 | 0.5488830 | -0.0237588 | 0.1275177 | 1999-07-01 |
| -0.60 | -0.4098093 | 0.1183738 | -0.5983559 | 1999-10-01 |
| -0.13 | 0.6320175 | 0.1028004 | 1.3577449 | 2000-01-01 |
| -0.10 | -0.4228349 | -0.4534647 | -1.2305945 | 2000-04-01 |
| 0.23 | -0.3504105 | -0.1752351 | 0.4736152 | 2000-07-01 |
| -0.06 | -1.1288817 | 0.4910290 | -1.0396785 | 2000-10-01 |
Cada uma dessas séries no gráfico:
temp_long <- melt(temp, id.vars = "tempo", variable.name = "serie", value.name = "valor")
ggplot(temp_long, aes(tempo, valor, color = serie)) +
geom_line() +
theme_classic() +
geom_hline(yintercept = 0, size = 0.2, color = "gray23")
Defino o número ótimo de defasagens para meu modelo VAR:
temp1 <- as.data.table(
t(VARselect(na.omit(temp)[, tempo := NULL], lag.max = 4)$criteria))[, defasagens := 1:4]
setcolorder(temp1, c("defasagens", "AIC(n)", "HQ(n)", "SC(n)", "FPE(n)"))
temp1 %>%
kbl() %>%
kable_paper()
| defasagens | AIC(n) | HQ(n) | SC(n) | FPE(n) |
|---|---|---|---|---|
| 1 | -4.559586 | -4.317680 | -3.955301 | 0.0104738 |
| 2 | -4.801665 | -4.366234 | -3.713953 | 0.0082501 |
| 3 | -5.250349 | -4.621393 | -3.679210 | 0.0053120 |
| 4 | -5.170243 | -4.347763 | -3.115677 | 0.0058470 |
O melhor modelo pelo AIC foi o VAR(3), os resíduos dele estão estacionários?
model <- VAR(y = na.omit(temp)[, tempo := NULL], p = 3, type = "const")
temp1 <- temp[, .(residuos = residuals(model), tempo)]
temp_long <- melt(temp1, id.vars = "tempo", value.name = "residuo", variable.name = "equacao")
ggplot(temp_long, aes(tempo, residuo, color = equacao)) +
geom_line() +
theme_classic() +
geom_hline(yintercept = 0, size = 0.2, color = "red") +
facet_wrap(~ equacao) +
theme(legend.position = "none")
Pela análise gráfica, as equações do modelo apresentam resíduos estacionários, com média 0. São normalizados?
ggplot(temp_long, aes(sample = residuo, color = equacao)) +
stat_qq() +
stat_qq_line(color = "gray23") +
theme_classic() +
labs(y = "residuos X distribuição normal") +
facet_wrap(~ equacao) +
theme(legend.position = "none")
Os resíduos parecem seguir uma distribuição normal, pela análise do QQ-plot.
A equação de um modelo VAR(3), para o salário real, tem as seguintes estimações:
as.data.table(broom::tidy(VAR(y = na.omit(temp)[, tempo := NULL], p = 3, type = "const")))[order(group, term)][group == "diff2_salario_real"] %>%
kbl() %>%
kable_paper() %>%
scroll_box(width = "800px", height = "600px")
| group | term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|---|
| diff2_salario_real | const | -0.0071487 | 0.0377912 | -0.1891619 | 0.8505464 |
| diff2_salario_real | diff2_empregados_a_cada_1000_pessoas.l1 | -0.5088296 | 0.1257016 | -4.0479169 | 0.0001381 |
| diff2_salario_real | diff2_empregados_a_cada_1000_pessoas.l2 | -0.2954479 | 0.1229848 | -2.4023112 | 0.0191132 |
| diff2_salario_real | diff2_empregados_a_cada_1000_pessoas.l3 | -0.1189037 | 0.1076962 | -1.1040657 | 0.2735737 |
| diff2_salario_real | diff2_produtividade_do_trabalho.l1 | -0.0653328 | 0.0553184 | -1.1810301 | 0.2418293 |
| diff2_salario_real | diff2_produtividade_do_trabalho.l2 | -0.0057731 | 0.0594723 | -0.0970717 | 0.9229636 |
| diff2_salario_real | diff2_produtividade_do_trabalho.l3 | -0.0170697 | 0.0546377 | -0.3124164 | 0.7557091 |
| diff2_salario_real | diff2_salario_real.l1 | -0.0416679 | 0.0428116 | -0.9732848 | 0.3339655 |
| diff2_salario_real | diff2_salario_real.l2 | -0.0017265 | 0.0464304 | -0.0371849 | 0.9704498 |
| diff2_salario_real | diff2_salario_real.l3 | -0.0009579 | 0.0410901 | -0.0233122 | 0.9814716 |
| diff2_salario_real | diff_taxa_de_desemprego.l1 | 0.1176640 | 0.1500378 | 0.7842289 | 0.4357115 |
| diff2_salario_real | diff_taxa_de_desemprego.l2 | 0.1801356 | 0.1506287 | 1.1958910 | 0.2360180 |
| diff2_salario_real | diff_taxa_de_desemprego.l3 | 0.2452473 | 0.1433135 | 1.7112645 | 0.0917286 |
Como somente diff2_empregados_a_cada_1000_pessoas foi
significativa na determinação do salário real, vou gerar um VAR(3)
usando somente essas séries temporais.
model <- VAR(y = na.omit(temp)[, c("diff2_salario_real", "diff2_empregados_a_cada_1000_pessoas")], p = 3, type = "const")
as.data.table(broom::tidy(model))[order(group, term)][group == "diff2_salario_real"] %>%
kbl() %>%
kable_paper() %>%
scroll_box(width = "800px", height = "600px")
| group | term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|---|
| diff2_salario_real | const | -0.0924045 | 0.0951995 | -0.9706405 | 0.3349768 |
| diff2_salario_real | diff2_empregados_a_cada_1000_pessoas.l1 | -0.6532302 | 0.2274479 | -2.8719991 | 0.0053546 |
| diff2_salario_real | diff2_empregados_a_cada_1000_pessoas.l2 | -0.0529673 | 0.2317197 | -0.2285834 | 0.8198407 |
| diff2_salario_real | diff2_empregados_a_cada_1000_pessoas.l3 | 0.2219781 | 0.2315157 | 0.9588038 | 0.3408663 |
| diff2_salario_real | diff2_salario_real.l1 | -0.6975735 | 0.1016568 | -6.8620469 | 0.0000000 |
| diff2_salario_real | diff2_salario_real.l2 | -0.5534004 | 0.1077126 | -5.1377497 | 0.0000023 |
| diff2_salario_real | diff2_salario_real.l3 | -0.4902077 | 0.0992899 | -4.9371347 | 0.0000050 |
Será que existe causalidade de Granger entre as séries?
grangertest(dataset$diff2_empregados_a_cada_1000_pessoas, dataset$diff2_salario_real, order = 3)
## Granger causality test
##
## Model 1: dataset$diff2_salario_real ~ Lags(dataset$diff2_salario_real, 1:3) + Lags(dataset$diff2_empregados_a_cada_1000_pessoas, 1:3)
## Model 2: dataset$diff2_salario_real ~ Lags(dataset$diff2_salario_real, 1:3)
## Res.Df Df F Pr(>F)
## 1 72
## 2 75 -3 3.5525 0.01851 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Parece que sim! Então meu modelo final conta com componentes
defasados da própria série e de
diff2_empregados_a_cada_1000_pessoas.
As projeções desse modelo na série original, para 10 períodos de tempo a frente foram:
previsoes <- predict(model, n.ahead = 10)$fcst$diff2_salario_real
previsoes_em_nivel <- diffinv(c(na.omit(dataset)$diff2_salario_real, previsoes[,1]), lag = 1, differences = 2, xi = dataset$salario_real[1:2])
previsoes_em_nivel <- tail(previsoes_em_nivel, 10)
minimo_em_nivel <- diffinv(c(na.omit(dataset)$diff2_salario_real, previsoes[,2]), lag = 1, differences = 2, xi = dataset$salario_real[1:2])
minimo_em_nivel <- tail(minimo_em_nivel, 10)
maximo_em_nivel <- diffinv(c(na.omit(dataset)$diff2_salario_real, previsoes[,3]), lag = 1, differences = 2, xi = dataset$salario_real[1:2])
maximo_em_nivel <- tail(maximo_em_nivel, 10)
dados_previsao <- data.table(tempo = seq(as.Date("2001-01-01"), by = "quarter", length.out = 10),
previsto = previsoes_em_nivel,
minimo = minimo_em_nivel,
maximo = maximo_em_nivel)
ggplot(dataset) +
geom_line(aes(x = tempo, y = salario_real), color = "steelblue", size = 0.4) +
geom_line(data = dados_previsao, aes(tempo, previsto), color = "indianred2") +
scale_y_continuous(labels = scales::number_format()) +
geom_ribbon(data = dados_previsao, aes(tempo, ymin = minimo, ymax = maximo), alpha = 0.5, fill = "indianred1") +
theme_classic()
Note que quanto mais a frente, maior o intervalo de confiança da previsão, indicando o que se espera de uma série temporal: prever o que está mais perto é mais fácil que prever o que está mais longe de ocorrer.
Caso houvessem séries cointegradas nesse modelo, deveria ter estimado um VAR com um mecanismo de correção o Modelo Vetorial de Correção de Erros (VEC), que não entrarei nos detalhes desse documento por ser um pouco mais teórico.
14 Considerações finais.
Espero que eu tenha lhe ajudado a melhor compreender os principais conceitos e métodos de modelagem de séries temporais. Caso você tenha interesse, sugiro aprender a modelar séries temporais com recursos computacionais, essa é a área do Aprendizado de Máquina, ou em inglês, o famoso Machine Learning. Essas técnicas utilizam de poder computacional para encontrar relações nos dados e retornam resultados tão precisos quanto ou até melhores do que os resultados dos modelos apresentados nesse documento.
Esse documento foi gerado por meio de um script .Rmd, que é basicamente uma combinação da linguagem R com o Markdown. Todas as linhas de código que eu executar estarão “escondidas” dentro de um botão preto escrito code. Como esse documento tem objetivo de apresentar as diferentes abordagens e objetivos da econometria de séries de tempo, utilizo o R por me dar maior liberdade, mas durante monitorias posso apresentar uma forma de gerar resultados via gretl. (ainda recomendo aprender R!)
Caso tenha alguma dúvida, critica ou elogio (sempre bom esse último aí) não exite em me mandar mensagem. Eu tento ao máximo “simplificar” o conteúdo, mas com certeza é uma matéria bem complexa, principalmente sem um contexto de como todo o processo funciona. Bons estudos!