Introdução

Primeiro importamos a base de dados e apresentamos sua estrutura básica.

dados <- read_excel("dados trabalho.xlsx")
## 'data.frame':    244 obs. of  6 variables:
##  $ data: Date, format: "1947-01-01" "1947-04-01" ...
##  $ RPD : num  1096 1073 1103 1090 1107 ...
##  $ PIB : num  1571 1569 1568 1591 1616 ...
##  $ DCP : num  1017 1034 1038 1038 1043 ...
##  $ LC  : num  21.2 20 19.8 21.7 22.9 24.1 23.8 23 21 18.6 ...
##  $ DIV : num  6 6.3 6.5 6.4 7 6.7 7.1 7.4 7.2 7.2 ...

A primeira coluna se refere a data e, como definido pelo professor, as outras colunas são:

Questão 1

Gráfico das Séries Temporais

Auto Correlation Function

Partial Auto Correlation Function

Em uma primeira análise visual parece que todas as séries são não estacionárias e que possuem algum tipo de tendência. Além disso, uma equação de tendência quadrática parece ter um ajuste melhor do que uma equação de tendência linear.

Questão 2

Explicação

A equação do teste Dickey-Fuler Aumentado é:

\[\Delta r_{t}=\mu+\beta t+(\phi-1)r_{t-1}+\sum_{k=1}^{p-1}(\phi_k\times\Delta r_{t-k})+\epsilon_t\]

Como no caso acima temos apenas uma diferença de lag nosso k é igual a 1 e a equação é simplificada para

\[\Delta r_{t}=\mu+\beta t+\tau\times r_{t-1}+\phi_1\Delta r_{t-1}+\epsilon_t\]

em que,

\[\tau=(\phi-1)\]

Assim, seguimos para explicação acerca do fim da tabela abaixo1:

O primeiro valor da estatística de teste (0.2687) se refere a “tau3”; o segundo valor da estatística de teste (51.3392) se refere a “phi2”; e o terceiro valor da estatística de teste (18.4812) se refere a “phi3”.

Por sua vez, “tau3” é um teste em que a hipótese nula é de que existe raiz unitária e existe tendência determinística e existe drift. Já “phi2” tem a hipótese nula de que existe raiz unitária e NÃO existe tendência determinística e NÃO existe drift. Já “phi3” tem a hipótese nula de que existe raiz unitária e existe drift e NÃO existe tendência determinística.

Como podemos perceber, “phi1” não aparece no resultado do modelo. Isso ocorre porque selecionamos o tipo como “trend”. Se tivessemos selecionado o tipo como “drift”, o “phi1” apareceria. Caso optassemos pelo tipo “drift”, “phi1” teria a hipótese nula de que a série possui raiz unitária e NÃO possui drift.

Nos iremos rejeitar a hipótese nula de “tau3”, “phi1”, “phi2” e “phi3” - implicando que pelo menos uma das nossas condições não é verdadeira - quando o valor da estatística de teste estiver dentro da área de rejeição. Para “tau3” isso acontecerá quando o valor crítico é maior que o valor da estatística de teste; para “phi1”, “phi2” e “phi3” isso acontecerá quando o valor crítico for menor que a estatística de teste.

Renda Real Pessoal Disponível (bilhões de dólares)

summary(ur.df(dados$RPD, type = "trend"))
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression trend 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -142.009  -15.913    0.365   16.190  132.795 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  9.315849   5.214042   1.787  0.07526 . 
## z.lag.1      0.001654   0.006155   0.269  0.78840   
## tt           0.181394   0.191056   0.949  0.34337   
## z.diff.lag  -0.208767   0.063877  -3.268  0.00124 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 39.11 on 238 degrees of freedom
## Multiple R-squared:  0.1399, Adjusted R-squared:  0.129 
## F-statistic:  12.9 on 3 and 238 DF,  p-value: 7.737e-08
## 
## 
## Value of test-statistic is: 0.2687 51.3392 18.4812 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau3 -3.99 -3.43 -3.13
## phi2  6.22  4.75  4.07
## phi3  8.43  6.49  5.47

Nesse caso, percebemos que não rejeitamos “tau3”, mas que rejeitamos “phi2” e “phi3” (\(\alpha=0.05\)). Isso nos indica que temos um modelo com raiz unitária, tendência determinística e drift. Desse modo, nossa série é não estacionária.

Analisando nossa segunda equação, temos, então, \(\tau=0\); \(\mu\neq0\); \(\beta\neq0\). Assim, nossa série é um passeio aleatório com drift e tendência determinística.

Produto Interno Bruto (bilhões de dólares)

summary(ur.df(dados$PIB, type = "trend"))
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression trend 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -142.648  -21.628    0.205   23.237  154.839 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 7.639e+00  5.519e+00   1.384    0.168    
## z.lag.1     9.062e-06  4.414e-03   0.002    0.998    
## tt          1.907e-01  1.812e-01   1.053    0.293    
## z.diff.lag  2.569e-01  6.328e-02   4.060 6.65e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 40.39 on 238 degrees of freedom
## Multiple R-squared:  0.2158, Adjusted R-squared:  0.2059 
## F-statistic: 21.83 on 3 and 238 DF,  p-value: 1.599e-12
## 
## 
## Value of test-statistic is: 0.0021 25.4152 10.9829 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau3 -3.99 -3.43 -3.13
## phi2  6.22  4.75  4.07
## phi3  8.43  6.49  5.47

Nesse caso, percebemos que não rejeitamos “tau3”, mas que rejeitamos “phi2” e “phi3” (\(\alpha=0.05\)). Isso nos indica que temos um modelo com raiz unitária, tendência determinística e drift. Desse modo, nossa série é não estacionária.

Analisando nossa segunda equação, temos, então, \(\tau=0\); \(\mu\neq0\); \(\beta\neq0\). Assim, nossa série é um passeio aleatório com drift e tendência determinística.

Despesas Reais de Consumo Pessoal (bilhões de dólares)

summary(ur.df(dados$DCP, type = "trend"))
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression trend 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -101.080  -12.250    1.033   12.242   66.042 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept) 2.120986   2.914047   0.728   0.4674  
## z.lag.1     0.004145   0.003016   1.375   0.1705  
## tt          0.073149   0.087903   0.832   0.4062  
## z.diff.lag  0.142789   0.064669   2.208   0.0282 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 22.39 on 238 degrees of freedom
## Multiple R-squared:  0.3472, Adjusted R-squared:  0.339 
## F-statistic:  42.2 on 3 and 238 DF,  p-value: < 2.2e-16
## 
## 
## Value of test-statistic is: 1.3747 41.3054 29.3665 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau3 -3.99 -3.43 -3.13
## phi2  6.22  4.75  4.07
## phi3  8.43  6.49  5.47

Nesse caso, percebemos que não rejeitamos “tau3”, mas que rejeitamos “phi2” e “phi3” (\(\alpha=0.05\)). Isso nos indica que temos um modelo com raiz unitária, tendência determinística e drift. Desse modo, nossa série é não estacionária.

Analisando nossa segunda equação, temos, então, \(\tau=0\); \(\mu\neq0\); \(\beta\neq0\). Assim, nossa série é um passeio aleatório com drift e tendência determinística.

Lucros Corporativos Após Impostos (bilhões de dólares)

summary(ur.df(dados$LC, type = "trend"))
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression trend 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -92.075  -2.720   0.303   3.281 185.592 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)  
## (Intercept) -1.767422   3.170825  -0.557   0.5778  
## z.lag.1      0.018190   0.008034   2.264   0.0245 *
## tt           0.018770   0.033313   0.563   0.5737  
## z.diff.lag   0.168061   0.066296   2.535   0.0119 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 21.72 on 238 degrees of freedom
## Multiple R-squared:  0.1491, Adjusted R-squared:  0.1384 
## F-statistic:  13.9 on 3 and 238 DF,  p-value: 2.204e-08
## 
## 
## Value of test-statistic is: 2.2642 9.0793 9.4205 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau3 -3.99 -3.43 -3.13
## phi2  6.22  4.75  4.07
## phi3  8.43  6.49  5.47

Nesse caso, percebemos que não rejeitamos “tau3”, mas que rejeitamos “phi2” e “phi3” (\(\alpha=0.05\)). Isso nos indica que temos um modelo com raiz unitária, tendência determinística e drift. Desse modo, nossa série é não estacionária.

Analisando nossa segunda equação, temos, então, \(\tau=0\); \(\mu\neq0\); \(\beta\neq0\). Assim, nossa série é um passeio aleatório com drift e tendência determinística.

Dividendos Corporativos (bilhões de dólares)

summary(ur.df(dados$DIV, type = "trend"))
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression trend 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -75.786  -0.569   0.095   1.110 115.503 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.38937    1.60627   0.242    0.809    
## z.lag.1      0.04059    0.00725   5.599 5.93e-08 ***
## tt          -0.01248    0.01746  -0.715    0.476    
## z.diff.lag  -0.29366    0.06435  -4.564 8.06e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 10.5 on 238 degrees of freedom
## Multiple R-squared:  0.238,  Adjusted R-squared:  0.2284 
## F-statistic: 24.78 on 3 and 238 DF,  p-value: 5.461e-14
## 
## 
## Value of test-statistic is: 5.5987 33.0722 36.956 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau3 -3.99 -3.43 -3.13
## phi2  6.22  4.75  4.07
## phi3  8.43  6.49  5.47

Nesse caso, percebemos que não rejeitamos “tau3”, mas que rejeitamos “phi2” e “phi3” (\(\alpha=0.05\)). Isso nos indica que temos um modelo com raiz unitária, tendência determinística e drift. Desse modo, nossa série é não estacionária.

Analisando nossa segunda equação, temos, então, \(\tau=0\); \(\mu\neq0\); \(\beta\neq0\). Assim, nossa série é um passeio aleatório com drift e tendência determinística.

Questão 3

Renda Real Pessoal Disponível (bilhões de dólares)

urca::ur.pp(dados$RPD, type="Z-tau", model="trend", lags="short")
## 
## ################################################## 
## # Phillips-Perron Unit Root / Cointegration Test # 
## ################################################## 
## 
## The value of the test statistic is: 0.018
##                      1pct      5pct     10pct
## critical values -3.998978 -3.429523 -3.137979

Como podemos perceber, nosso valor da estatística de teste (0.018) é maior que o valor crítico com 5% de significância (-3.43). Desse modo, não podemos rejeitar a hipótese nula de não estacionaridade. Assim, devemos considerar a série como sendo não estacionária.

Produto Interno Bruto (bilhões de dólares)

urca::ur.pp(dados$PIB, type="Z-tau", model="trend", lags="short")
## 
## ################################################## 
## # Phillips-Perron Unit Root / Cointegration Test # 
## ################################################## 
## 
## The value of the test statistic is: 0.0126
##                      1pct      5pct     10pct
## critical values -3.998978 -3.429523 -3.137979

Como podemos perceber, nosso valor da estatística de teste (0.0126) é maior que o valor crítico com 5% de significância (-3.43). Desse modo, não podemos rejeitar a hipótese nula de não estacionaridade. Assim, devemos considerar a série como sendo não estacionária.

Despesas Reais de Consumo Pessoal (bilhões de dólares)

urca::ur.pp(dados$DCP, type="Z-tau", model="trend", lags="short")
## 
## ################################################## 
## # Phillips-Perron Unit Root / Cointegration Test # 
## ################################################## 
## 
## The value of the test statistic is: 1.2275
##                      1pct      5pct     10pct
## critical values -3.998978 -3.429523 -3.137979

Como podemos perceber, nosso valor da estatística de teste (1.2275) é maior que o valor crítico com 5% de significância (-3.43). Desse modo, não podemos rejeitar a hipótese nula de não estacionaridade. Assim, devemos considerar a série como sendo não estacionária.

Lucros Corporativos Após Impostos (bilhões de dólares)

urca::ur.pp(dados$LC, type="Z-tau", model="trend", lags="short")
## 
## ################################################## 
## # Phillips-Perron Unit Root / Cointegration Test # 
## ################################################## 
## 
## The value of the test statistic is: 2.9097
##                      1pct      5pct     10pct
## critical values -3.998978 -3.429523 -3.137979

Como podemos perceber, nosso valor da estatística de teste (2.9097) é maior que o valor crítico com 5% de significância (-3.43). Desse modo, não podemos rejeitar a hipótese nula de não estacionaridade. Assim, devemos considerar a série como sendo não estacionária.

Dividendos Corporativos (bilhões de dólares)

urca::ur.pp(dados$DIV, type="Z-tau", model="trend", lags="short")
## 
## ################################################## 
## # Phillips-Perron Unit Root / Cointegration Test # 
## ################################################## 
## 
## The value of the test statistic is: 5.6776
##                      1pct      5pct     10pct
## critical values -3.998978 -3.429523 -3.137979

Como podemos perceber, nosso valor da estatística de teste (5.6776) é maior que o valor crítico com 5% de significância (-3.43). Desse modo, não podemos rejeitar a hipótese nula de não estacionaridade. Assim, devemos considerar a série como sendo não estacionária.

Explicação

Como podemos observar, ambos os testes (Augmented Dickey-Fuller e Phillips-Perron) apontam para a não estacionaridade de todas as séries. A decisão do que fazer caso os testes apresentem resultados contraditórios depende do analista, entretanto, uma boa prática pode ser tentar encontrar alguma forma de ambos os testes apresentarem o mesmo resultado. Tal objetivo pode ser alcançado fazendo a primeira diferença da série, retirar a tendência determinística, etc.

Questão 4

Não é de se esperar que essa regressão sofra do problema de correlação espúria. Para corroborar essa afirmação, apresentamos uma definição do problema2:

“In statistics, a spurious relationship or spurious correlation is a mathematical relationship in which two or more events or variables are associated but not causally related, due to either coincidence or the presence of a certain third, unseen factor (referred to as a”common response variable“,”confounding factor“, or”lurking variable“).”

Ou seja, uma correlação só pode sofre de espuriedade se as variáveis não são casualmente relacionadas. Como o próprio enunciado da questão afirma, “posto que os dividendos dependem dos lucros”, podemos rejeitar a hipótese de que essa relação possa sofrer do fenômeno da regressão espúria.

Questão 5

Gráfico da diferença das Séries Temporais

Não podemos determinar se a série é estacionária ou não apenas analisando o gráfico, entretanto, as séries aparentam ser estacionárias.

Auto Correlation Function

Partial Auto Correlation Function

Questão 6

Essa regressão é espúria?

Não devemos considerar essa regressão como sendo espúria. Isso se deve ao fato de que as variações no lucro geram uma variação nos dividendos. Se uma empresa, por exemplo, tem uma redução de 50% no lucro, é esperado que uma redução na mesma proporção seja observada nos dividendos caso desejemos manter o pay out constante. Assim, existe uma relação causal entre a série temporal das diferenças do lucro e a série temporal das diferenças dos dividendos.

Você incluiria o intercepto nessa regressão? Por quê?

O intercepto desse modelo pode ser interpretado como sendo o valor do dividendo quando o lucro é igual a zero. Sabemos que quando o lucro é igual a zero e pressupondo que o lucro é uma boa proxy para o fluxo de caixa livre, o dividendo será igual a 0. Sabemos também que um número negativo para essa variável não é possível, dado que o dividendo é, por definição, um número positivo.

Entretanto, obrigar a reta de regressão a passar pela origem pode piorar o ajuste do modelo. Assim, dado que o intercepto tende a ser estatisticamente igual a 0, como esperado, a não exclusão do intercepto pode ser a escolha mais intressante.

Apresente as estimativas e analise os resultados da regressão.

regres_div_lc <- lm(dados$DIV ~ dados$LC)
summary(regres_div_lc)
## 
## Call:
## lm(formula = dados$DIV ~ dados$LC)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -110.103   -9.092   -3.645    6.106  105.791 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.722594   2.537779  -0.285    0.776    
## dados$LC     0.576118   0.006409  89.892   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 31.45 on 242 degrees of freedom
## Multiple R-squared:  0.9709, Adjusted R-squared:  0.9708 
## F-statistic:  8081 on 1 and 242 DF,  p-value: < 2.2e-16

Teste a estacionaridade dos resíduos dessa regressão. O que você conclui sobre eles?

Augmented Dickey-Fuler

summary(ur.df(regres_div_lc$residuals, type = "trend"))
## 
## ############################################### 
## # Augmented Dickey-Fuller Test Unit Root Test # 
## ############################################### 
## 
## Test regression trend 
## 
## 
## Call:
## lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -187.415   -3.407    0.187    1.846   96.070 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -2.16368    2.31435  -0.935   0.3508    
## z.lag.1     -0.15739    0.03840  -4.099  5.7e-05 ***
## tt           0.01810    0.01655   1.094   0.2752    
## z.diff.lag  -0.11539    0.06446  -1.790   0.0747 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 17.35 on 238 degrees of freedom
## Multiple R-squared:  0.1011, Adjusted R-squared:  0.0898 
## F-statistic: 8.926 on 3 and 238 DF,  p-value: 1.256e-05
## 
## 
## Value of test-statistic is: -4.0987 5.6006 8.3997 
## 
## Critical values for test statistics: 
##       1pct  5pct 10pct
## tau3 -3.99 -3.43 -3.13
## phi2  6.22  4.75  4.07
## phi3  8.43  6.49  5.47

Phillips-Perron

urca::ur.pp(regres_div_lc$residuals, type="Z-tau", model="trend", lags="short")
## 
## ################################################## 
## # Phillips-Perron Unit Root / Cointegration Test # 
## ################################################## 
## 
## The value of the test statistic is: -4.4521
##                      1pct      5pct     10pct
## critical values -3.998978 -3.429523 -3.137979

Como podemos perceber pelo resultado dos testes, podemos rejeitar a hipótese nula de não estacionaridade e, dessa forma, devemos considerar a série como sendo estacionária.

Questão 7

Delineie os passos envolvidos para que se realize essa tarefa e implemente todos eles chegando a uma conclusão sobre a especificação mais adequada.

Como desejamos ajustar nosso modelo \(SARIMA(p,d,q)x(P,D,Q)\) para previsão, o primeiro passo é dividir a amostra entre um período de estimação - onde os parâmetros serão estimados - e um período de avaliação - onde compararemos se as previsões estão adequadas. O segundo passo seria analisar os gráficos das funções de autocorrelação e autocorrelação parcial. Com base nesses gráfico teríamos uma intuição inicial de quais modelos teriam o melhor ajuste. O terceiro passo seria selecionar esse modelos e comparar seus poderes preditivos (MAPE, por exemplo), bem como seus critérios de informação - não queremos selecionar um modelo que prevê “bem” apenas por aleatoriedade e sim entender o PGD. Após esse passo teríamos o modelo mais adequado para previsão.

Entretanto, o software R é capaz de realizar esse processo de forma quase automática.

auto_rpd <- auto.arima(dados_estim_ts[,1], ic = "aicc",seasonal = TRUE, trace = TRUE, stepwise = FALSE, approximation = FALSE)
## 
##  ARIMA(0,2,0)                              : 2086.185
##  ARIMA(0,2,0)(0,0,1)[4]                    : 2085.555
##  ARIMA(0,2,0)(0,0,2)[4]                    : 2082.829
##  ARIMA(0,2,0)(1,0,0)[4]                    : 2086.318
##  ARIMA(0,2,0)(1,0,1)[4]                    : 2084.093
##  ARIMA(0,2,0)(1,0,2)[4]                    : 2081.054
##  ARIMA(0,2,0)(2,0,0)[4]                    : 2084.1
##  ARIMA(0,2,0)(2,0,1)[4]                    : 2085.462
##  ARIMA(0,2,0)(2,0,2)[4]                    : 2082.702
##  ARIMA(0,2,1)                              : 1941.229
##  ARIMA(0,2,1)(0,0,1)[4]                    : 1943.184
##  ARIMA(0,2,1)(0,0,2)[4]                    : 1942.968
##  ARIMA(0,2,1)(1,0,0)[4]                    : 1943.205
##  ARIMA(0,2,1)(1,0,1)[4]                    : 1944.766
##  ARIMA(0,2,1)(1,0,2)[4]                    : 1942.116
##  ARIMA(0,2,1)(2,0,0)[4]                    : 1943.267
##  ARIMA(0,2,1)(2,0,1)[4]                    : 1941.928
##  ARIMA(0,2,1)(2,0,2)[4]                    : 1941.562
##  ARIMA(0,2,2)                              : 1941.508
##  ARIMA(0,2,2)(0,0,1)[4]                    : 1943.59
##  ARIMA(0,2,2)(0,0,2)[4]                    : 1943.383
##  ARIMA(0,2,2)(1,0,0)[4]                    : 1943.591
##  ARIMA(0,2,2)(1,0,1)[4]                    : 1945.469
##  ARIMA(0,2,2)(1,0,2)[4]                    : 1942.178
##  ARIMA(0,2,2)(2,0,0)[4]                    : 1943.797
##  ARIMA(0,2,2)(2,0,1)[4]                    : 1941.967
##  ARIMA(0,2,3)                              : 1941.487
##  ARIMA(0,2,3)(0,0,1)[4]                    : 1943.592
##  ARIMA(0,2,3)(0,0,2)[4]                    : 1942.993
##  ARIMA(0,2,3)(1,0,0)[4]                    : 1943.592
##  ARIMA(0,2,3)(1,0,1)[4]                    : 1945.464
##  ARIMA(0,2,3)(2,0,0)[4]                    : 1943.444
##  ARIMA(1,2,0)                              : 2004.617
##  ARIMA(1,2,0)(0,0,1)[4]                    : 2006.646
##  ARIMA(1,2,0)(0,0,2)[4]                    : 2000.466
##  ARIMA(1,2,0)(1,0,0)[4]                    : 2006.658
##  ARIMA(1,2,0)(1,0,1)[4]                    : 2001.986
##  ARIMA(1,2,0)(1,0,2)[4]                    : 1999.631
##  ARIMA(1,2,0)(2,0,0)[4]                    : 2002.364
##  ARIMA(1,2,0)(2,0,1)[4]                    : 1999.773
##  ARIMA(1,2,0)(2,0,2)[4]                    : 2001.756
##  ARIMA(1,2,1)                              : 1941.171
##  ARIMA(1,2,1)(0,0,1)[4]                    : 1943.253
##  ARIMA(1,2,1)(0,0,2)[4]                    : 1942.972
##  ARIMA(1,2,1)(1,0,0)[4]                    : 1943.254
##  ARIMA(1,2,1)(1,0,1)[4]                    : 1941.474
##  ARIMA(1,2,1)(1,0,2)[4]                    : 1941.714
##  ARIMA(1,2,1)(2,0,0)[4]                    : 1943.438
##  ARIMA(1,2,1)(2,0,1)[4]                    : 1941.505
##  ARIMA(1,2,2)                              : 1941.89
##  ARIMA(1,2,2)(0,0,1)[4]                    : 1943.706
##  ARIMA(1,2,2)(0,0,2)[4]                    : 1940.831
##  ARIMA(1,2,2)(1,0,0)[4]                    : 1943.793
##  ARIMA(1,2,2)(1,0,1)[4]                    : 1946.051
##  ARIMA(1,2,2)(2,0,0)[4]                    : 1942.519
##  ARIMA(1,2,3)                              : 1943.992
##  ARIMA(1,2,3)(0,0,1)[4]                    : 1945.374
##  ARIMA(1,2,3)(1,0,0)[4]                    : 1945.373
##  ARIMA(2,2,0)                              : 1982.148
##  ARIMA(2,2,0)(0,0,1)[4]                    : 1984.195
##  ARIMA(2,2,0)(0,0,2)[4]                    : 1984.561
##  ARIMA(2,2,0)(1,0,0)[4]                    : 1984.201
##  ARIMA(2,2,0)(1,0,1)[4]                    : 1986.196
##  ARIMA(2,2,0)(1,0,2)[4]                    : 1981.507
##  ARIMA(2,2,0)(2,0,0)[4]                    : 1984.913
##  ARIMA(2,2,0)(2,0,1)[4]                    : 1980.868
##  ARIMA(2,2,1)                              : 1941.868
##  ARIMA(2,2,1)(0,0,1)[4]                    : 1943.964
##  ARIMA(2,2,1)(0,0,2)[4]                    : 1943.02
##  ARIMA(2,2,1)(1,0,0)[4]                    : 1943.966
##  ARIMA(2,2,1)(1,0,1)[4]                    : 1942.208
##  ARIMA(2,2,1)(2,0,0)[4]                    : 1943.628
##  ARIMA(2,2,2)                              : 1943.992
##  ARIMA(2,2,2)(0,0,1)[4]                    : 1945.832
##  ARIMA(2,2,2)(1,0,0)[4]                    : 1945.918
##  ARIMA(2,2,3)                              : 1946.064
##  ARIMA(3,2,0)                              : 1972.505
##  ARIMA(3,2,0)(0,0,1)[4]                    : 1940.572
##  ARIMA(3,2,0)(0,0,2)[4]                    : 1941.141
##  ARIMA(3,2,0)(1,0,0)[4]                    : 1963.463
##  ARIMA(3,2,0)(1,0,1)[4]                    : 1941.241
##  ARIMA(3,2,0)(2,0,0)[4]                    : 1958.089
##  ARIMA(3,2,1)                              : 1943.673
##  ARIMA(3,2,1)(0,0,1)[4]                    : 1945.8
##  ARIMA(3,2,1)(1,0,0)[4]                    : 1945.8
##  ARIMA(3,2,2)                              : 1945.794
## 
## 
## 
##  Best model: ARIMA(3,2,0)(0,0,1)[4]

Assim, selecionamos os três modelos com menor IC. Nesse caso, são:

  1. ARIMA(3,2,0)(0,0,1)[4]
  2. ARIMA(1,2,2)(0,0,2)[4]
  3. ARIMA(3,2,0)(0,0,2)[4]

Agora, analisamos a acurácia dos modelos para realizar previsões.

Justifique sua resposta apresentando comparativamente e analisando os critérios de informação e os MAPES para esses modelos.

ARIMA(3,2,0)(0,0,1)[4]

arima_rpd1 <- Arima(dados_estim_ts[,1], order = c(3,2,0), seasonal = c(0,0,1))

forc_rpd1 <- forecast(arima_rpd1, 44)

Criamos uma função que irá calcular o erro absoluto percentual médio.

mape <- function(forc, actual_values){
  sum(abs((actual_values - forc$mean)/actual_values))*100/44
}

Aplicamos a função acima nos nossos dados.

mape(forc_rpd1, dados_aval_ts[,1])
## [1] 7.615233

ARIMA(1,2,2)(0,0,2)[4]

arima_rpd2 <- Arima(dados_estim_ts[,1], order = c(1,2,2), seasonal = c(0,0,2))

forc_rpd2 <- forecast(arima_rpd2, 44)

E apresentamos o MAPE:

mape(forc_rpd2, dados_aval_ts[,1])
## [1] 7.906358

ARIMA(3,2,0)(0,0,2)[4]

arima_rpd3 <- Arima(dados_estim_ts[,1], order = c(3,2,0), seasonal = c(0,0,2))

forc_rpd3 <- forecast(arima_rpd3, 44)

E apresentamos o MAPE:

mape(forc_rpd3, dados_aval_ts[,1])
## [1] 7.407936

Como podemos observar, o modelo que possui menor MAPE é o ARIMA(3,2,0)(0,0,2)[4]. Assim, partimos para previsão fora da amostra com esse modelo.

Apresente as Previsões “fora da amostra” para os 4 próximos trimestres feitas pelo modelo com melhor capacidade preditiva.

arima_rpd4 <- Arima(dados_ts[,1], order = c(3,2,0), seasonal = c(0,0,2))

forc_rpd4 <- forecast(arima_rpd4, 4)
##         Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 2008 Q1       8732.533 8681.448 8783.618 8654.405 8810.660
## 2008 Q2       8801.081 8729.208 8872.954 8691.160 8911.001
## 2008 Q3       8868.390 8774.312 8962.468 8724.509 9012.270
## 2008 Q4       8898.394 8783.894 9012.894 8723.282 9073.506

Questão 8

auto_pib <- auto.arima(dados_estim_ts[,2], ic = "aicc",seasonal = TRUE, trace = TRUE, stepwise = FALSE, approximation = FALSE)
## 
##  ARIMA(0,2,0)                              : 2083.93
##  ARIMA(0,2,0)(0,0,1)[4]                    : 2085.964
##  ARIMA(0,2,0)(0,0,2)[4]                    : 2084.805
##  ARIMA(0,2,0)(1,0,0)[4]                    : 2085.966
##  ARIMA(0,2,0)(1,0,1)[4]                    : 2087.914
##  ARIMA(0,2,0)(1,0,2)[4]                    : 2085.58
##  ARIMA(0,2,0)(2,0,0)[4]                    : 2084.368
##  ARIMA(0,2,0)(2,0,1)[4]                    : 2083.831
##  ARIMA(0,2,0)(2,0,2)[4]                    : 2079.016
##  ARIMA(0,2,1)                              : 2030.339
##  ARIMA(0,2,1)(0,0,1)[4]                    : 2028.735
##  ARIMA(0,2,1)(0,0,2)[4]                    : 2025.127
##  ARIMA(0,2,1)(1,0,0)[4]                    : 2029.956
##  ARIMA(0,2,1)(1,0,1)[4]                    : 2025.659
##  ARIMA(0,2,1)(1,0,2)[4]                    : 2026.315
##  ARIMA(0,2,1)(2,0,0)[4]                    : 2027.924
##  ARIMA(0,2,1)(2,0,1)[4]                    : 2025.29
##  ARIMA(0,2,1)(2,0,2)[4]                    : 2023.56
##  ARIMA(0,2,2)                              : 2020.154
##  ARIMA(0,2,2)(0,0,1)[4]                    : 2022.237
##  ARIMA(0,2,2)(0,0,2)[4]                    : 2021.213
##  ARIMA(0,2,2)(1,0,0)[4]                    : 2022.237
##  ARIMA(0,2,2)(1,0,1)[4]                    : 2024.278
##  ARIMA(0,2,2)(1,0,2)[4]                    : 2021.45
##  ARIMA(0,2,2)(2,0,0)[4]                    : 2021.48
##  ARIMA(0,2,2)(2,0,1)[4]                    : 2020.247
##  ARIMA(0,2,3)                              : 2014.592
##  ARIMA(0,2,3)(0,0,1)[4]                    : 2016.687
##  ARIMA(0,2,3)(0,0,2)[4]                    : 2015.359
##  ARIMA(0,2,3)(1,0,0)[4]                    : 2016.69
##  ARIMA(0,2,3)(1,0,1)[4]                    : 2018.796
##  ARIMA(0,2,3)(2,0,0)[4]                    : 2015.67
##  ARIMA(1,2,0)                              : 2048.109
##  ARIMA(1,2,0)(0,0,1)[4]                    : 2049.101
##  ARIMA(1,2,0)(0,0,2)[4]                    : 2046.176
##  ARIMA(1,2,0)(1,0,0)[4]                    : 2049.441
##  ARIMA(1,2,0)(1,0,1)[4]                    : 2047.159
##  ARIMA(1,2,0)(1,0,2)[4]                    : 2047.222
##  ARIMA(1,2,0)(2,0,0)[4]                    : 2047.567
##  ARIMA(1,2,0)(2,0,1)[4]                    : 2045.831
##  ARIMA(1,2,0)(2,0,2)[4]                    : 2041.075
##  ARIMA(1,2,1)                              : 2014.748
##  ARIMA(1,2,1)(0,0,1)[4]                    : 2016.831
##  ARIMA(1,2,1)(0,0,2)[4]                    : 2016.1
##  ARIMA(1,2,1)(1,0,0)[4]                    : 2016.831
##  ARIMA(1,2,1)(1,0,1)[4]                    : 2017.02
##  ARIMA(1,2,1)(1,0,2)[4]                    : 2016.683
##  ARIMA(1,2,1)(2,0,0)[4]                    : 2016.157
##  ARIMA(1,2,1)(2,0,1)[4]                    : 2015.439
##  ARIMA(1,2,2)                              : 2014.622
##  ARIMA(1,2,2)(0,0,1)[4]                    : 2016.612
##  ARIMA(1,2,2)(0,0,2)[4]                    : 2015.633
##  ARIMA(1,2,2)(1,0,0)[4]                    : 2016.643
##  ARIMA(1,2,2)(1,0,1)[4]                    : Inf
##  ARIMA(1,2,2)(2,0,0)[4]                    : 2016.065
##  ARIMA(1,2,3)                              : 2015.337
##  ARIMA(1,2,3)(0,0,1)[4]                    : 2017.465
##  ARIMA(1,2,3)(1,0,0)[4]                    : 2017.465
##  ARIMA(2,2,0)                              : 2044.042
##  ARIMA(2,2,0)(0,0,1)[4]                    : 2044.613
##  ARIMA(2,2,0)(0,0,2)[4]                    : 2042.346
##  ARIMA(2,2,0)(1,0,0)[4]                    : 2045.073
##  ARIMA(2,2,0)(1,0,1)[4]                    : 2043.051
##  ARIMA(2,2,0)(1,0,2)[4]                    : 2043.615
##  ARIMA(2,2,0)(2,0,0)[4]                    : 2043.734
##  ARIMA(2,2,0)(2,0,1)[4]                    : 2042.537
##  ARIMA(2,2,1)                              : 2013.692
##  ARIMA(2,2,1)(0,0,1)[4]                    : 2015.683
##  ARIMA(2,2,1)(0,0,2)[4]                    : 2014.494
##  ARIMA(2,2,1)(1,0,0)[4]                    : 2015.713
##  ARIMA(2,2,1)(1,0,1)[4]                    : 2017.885
##  ARIMA(2,2,1)(2,0,0)[4]                    : 2014.976
##  ARIMA(2,2,2)                              : 2015.554
##  ARIMA(2,2,2)(0,0,1)[4]                    : 2017.518
##  ARIMA(2,2,2)(1,0,0)[4]                    : 2017.568
##  ARIMA(2,2,3)                              : 2014.5
##  ARIMA(3,2,0)                              : 2041.608
##  ARIMA(3,2,0)(0,0,1)[4]                    : 2023.461
##  ARIMA(3,2,0)(0,0,2)[4]                    : 2023.647
##  ARIMA(3,2,0)(1,0,0)[4]                    : 2035.674
##  ARIMA(3,2,0)(1,0,1)[4]                    : 2023.782
##  ARIMA(3,2,0)(2,0,0)[4]                    : 2033.369
##  ARIMA(3,2,1)                              : 2015.458
##  ARIMA(3,2,1)(0,0,1)[4]                    : 2020.048
##  ARIMA(3,2,1)(1,0,0)[4]                    : 2017.544
##  ARIMA(3,2,2)                              : 2013.887
## 
## 
## 
##  Best model: ARIMA(2,2,1)

Assim, selecionamos os três modelos com menor IC. Nesse caso, são:

  1. ARIMA(2,2,1)
  2. ARIMA(3,2,2)
  3. ARIMA(0,2,3)

Agora, analisamos a acurácia dos modelos para realizar previsões.

Justifique sua resposta apresentando comparativamente e analisando os critérios de informação e os MAPES para esses modelos.

ARIMA(2,2,1)

arima_pib1 <- Arima(dados_estim_ts[,2], order = c(2,2,1), seasonal = c(0,0,0))

forc_pib1 <- forecast(arima_pib1, 44)

E apresentamos o MAPE:

mape(forc_pib1, dados_aval_ts[,2])
## [1] 4.771147

ARIMA(3,2,2)

arima_pib2 <- Arima(dados_estim_ts[,2], order = c(3,2,2), seasonal = c(0,0,0))

forc_pib2 <- forecast(arima_pib2, 44)

E apresentamos o MAPE:

mape(forc_pib2, dados_aval_ts[,2])
## [1] 4.080193

ARIMA(0,2,3)

arima_pib3 <- Arima(dados_estim_ts[,2], order = c(0,2,3), seasonal = c(0,0,0))

forc_pib3 <- forecast(arima_pib3, 44)

E apresentamos o MAPE:

mape(forc_pib3, dados_aval_ts[,2])
## [1] 4.697608

Como podemos observar, o modelo que possui menor MAPE é o ARIMA(3,2,2). Assim, partimos para previsão fora da amostra com esse modelo.

Apresente as Previsões “fora da amostra” para os 4 próximos trimestres feitas pelo modelo com melhor capacidade preditiva.

arima_pib4 <- Arima(dados_ts[,2], order = c(3,2,2), seasonal = c(0,0,0))

forc_pib4 <- forecast(arima_pib4, 4)
##         Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 2008 Q1       11740.88 11688.74 11793.01 11661.14 11820.61
## 2008 Q2       11796.71 11712.65 11880.78 11668.15 11925.27
## 2008 Q3       11863.29 11747.15 11979.42 11685.68 12040.89
## 2008 Q4       11926.49 11782.30 12070.69 11705.96 12147.02

Questão 9

auto_dcp <- auto.arima(dados_estim_ts[,3], ic = "aicc",seasonal = TRUE, trace = TRUE, stepwise = FALSE, approximation = FALSE)
## 
##  ARIMA(0,2,0)                              : 1877.109
##  ARIMA(0,2,0)(0,0,1)[4]                    : 1876.081
##  ARIMA(0,2,0)(0,0,2)[4]                    : 1876.295
##  ARIMA(0,2,0)(1,0,0)[4]                    : 1876.759
##  ARIMA(0,2,0)(1,0,1)[4]                    : 1876.714
##  ARIMA(0,2,0)(1,0,2)[4]                    : 1878.262
##  ARIMA(0,2,0)(2,0,0)[4]                    : 1876.616
##  ARIMA(0,2,0)(2,0,1)[4]                    : 1877.828
##  ARIMA(0,2,0)(2,0,2)[4]                    : Inf
##  ARIMA(0,2,1)                              : 1783.431
##  ARIMA(0,2,1)(0,0,1)[4]                    : 1782.885
##  ARIMA(0,2,1)(0,0,2)[4]                    : 1780.893
##  ARIMA(0,2,1)(1,0,0)[4]                    : 1783.776
##  ARIMA(0,2,1)(1,0,1)[4]                    : 1781.683
##  ARIMA(0,2,1)(1,0,2)[4]                    : 1782.566
##  ARIMA(0,2,1)(2,0,0)[4]                    : 1781.587
##  ARIMA(0,2,1)(2,0,1)[4]                    : 1782.021
##  ARIMA(0,2,1)(2,0,2)[4]                    : 1783.334
##  ARIMA(0,2,2)                              : 1785.226
##  ARIMA(0,2,2)(0,0,1)[4]                    : 1784.525
##  ARIMA(0,2,2)(0,0,2)[4]                    : 1782.68
##  ARIMA(0,2,2)(1,0,0)[4]                    : 1785.749
##  ARIMA(0,2,2)(1,0,1)[4]                    : 1783.532
##  ARIMA(0,2,2)(1,0,2)[4]                    : 1784.513
##  ARIMA(0,2,2)(2,0,0)[4]                    : 1783.385
##  ARIMA(0,2,2)(2,0,1)[4]                    : 1783.945
##  ARIMA(0,2,3)                              : 1781.973
##  ARIMA(0,2,3)(0,0,1)[4]                    : 1784.008
##  ARIMA(0,2,3)(0,0,2)[4]                    : 1783.531
##  ARIMA(0,2,3)(1,0,0)[4]                    : 1784.027
##  ARIMA(0,2,3)(1,0,1)[4]                    : 1784.215
##  ARIMA(0,2,3)(2,0,0)[4]                    : 1783.422
##  ARIMA(1,2,0)                              : 1815.244
##  ARIMA(1,2,0)(0,0,1)[4]                    : 1813.572
##  ARIMA(1,2,0)(0,0,2)[4]                    : 1813.633
##  ARIMA(1,2,0)(1,0,0)[4]                    : 1814.495
##  ARIMA(1,2,0)(1,0,1)[4]                    : 1814.365
##  ARIMA(1,2,0)(1,0,2)[4]                    : 1815.734
##  ARIMA(1,2,0)(2,0,0)[4]                    : 1813.325
##  ARIMA(1,2,0)(2,0,1)[4]                    : 1815.117
##  ARIMA(1,2,0)(2,0,2)[4]                    : 1815.277
##  ARIMA(1,2,1)                              : 1784.384
##  ARIMA(1,2,1)(0,0,1)[4]                    : 1784.435
##  ARIMA(1,2,1)(0,0,2)[4]                    : 1782.605
##  ARIMA(1,2,1)(1,0,0)[4]                    : 1785.687
##  ARIMA(1,2,1)(1,0,1)[4]                    : 1783.463
##  ARIMA(1,2,1)(1,0,2)[4]                    : 1784.456
##  ARIMA(1,2,1)(2,0,0)[4]                    : 1783.292
##  ARIMA(1,2,1)(2,0,1)[4]                    : 1783.887
##  ARIMA(1,2,2)                              : 1779.523
##  ARIMA(1,2,2)(0,0,1)[4]                    : 1786.503
##  ARIMA(1,2,2)(0,0,2)[4]                    : 1784.655
##  ARIMA(1,2,2)(1,0,0)[4]                    : 1787.686
##  ARIMA(1,2,2)(1,0,1)[4]                    : 1785.502
##  ARIMA(1,2,2)(2,0,0)[4]                    : 1785.327
##  ARIMA(1,2,3)                              : 1777.572
##  ARIMA(1,2,3)(0,0,1)[4]                    : 1778.319
##  ARIMA(1,2,3)(1,0,0)[4]                    : 1778.709
##  ARIMA(2,2,0)                              : 1792.919
##  ARIMA(2,2,0)(0,0,1)[4]                    : 1792.818
##  ARIMA(2,2,0)(0,0,2)[4]                    : 1792.378
##  ARIMA(2,2,0)(1,0,0)[4]                    : 1793.384
##  ARIMA(2,2,0)(1,0,1)[4]                    : 1793.282
##  ARIMA(2,2,0)(1,0,2)[4]                    : 1794.441
##  ARIMA(2,2,0)(2,0,0)[4]                    : 1792.265
##  ARIMA(2,2,0)(2,0,1)[4]                    : 1793.872
##  ARIMA(2,2,1)                              : 1779.447
##  ARIMA(2,2,1)(0,0,1)[4]                    : 1780.842
##  ARIMA(2,2,1)(0,0,2)[4]                    : 1780.934
##  ARIMA(2,2,1)(1,0,0)[4]                    : 1781.007
##  ARIMA(2,2,1)(1,0,1)[4]                    : 1781.521
##  ARIMA(2,2,1)(2,0,0)[4]                    : 1780.891
##  ARIMA(2,2,2)                              : 1778.909
##  ARIMA(2,2,2)(0,0,1)[4]                    : 1779.391
##  ARIMA(2,2,2)(1,0,0)[4]                    : 1779.818
##  ARIMA(2,2,3)                              : 1778.796
##  ARIMA(3,2,0)                              : 1793.939
##  ARIMA(3,2,0)(0,0,1)[4]                    : 1782.7
##  ARIMA(3,2,0)(0,0,2)[4]                    : 1783.393
##  ARIMA(3,2,0)(1,0,0)[4]                    : 1789.675
##  ARIMA(3,2,0)(1,0,1)[4]                    : 1783.561
##  ARIMA(3,2,0)(2,0,0)[4]                    : 1786.701
##  ARIMA(3,2,1)                              : 1776.209
##  ARIMA(3,2,1)(0,0,1)[4]                    : 1777.614
##  ARIMA(3,2,1)(1,0,0)[4]                    : 1777.781
##  ARIMA(3,2,2)                              : 1777.833
## 
## 
## 
##  Best model: ARIMA(3,2,1)

Assim, selecionamos os três modelos com menor IC. Nesse caso, são:

  1. ARIMA(3,2,1)
  2. ARIMA(1,2,3)
  3. ARIMA(3,2,1)(0,0,1)[4]

Agora, analisamos a acurácia dos modelos para realizar previsões.

Justifique sua resposta apresentando comparativamente e analisando os critérios de informação e os MAPES para esses modelos.

ARIMA(3,2,1)

arima_dcp1 <- Arima(dados_estim_ts[,3], order = c(3,2,1), seasonal = c(0,0,0))

forc_dcp1 <- forecast(arima_dcp1, 44)

E apresentamos o MAPE:

mape(forc_dcp1, dados_aval_ts[,3])
## [1] 7.980222

ARIMA(1,2,3)

arima_dcp2 <- Arima(dados_estim_ts[,3], order = c(1,2,3), seasonal = c(0,0,0))

forc_dcp2 <- forecast(arima_dcp2, 44)

E apresentamos o MAPE:

mape(forc_dcp2, dados_aval_ts[,3])
## [1] 8.00571

ARIMA(3,2,1)(0,0,1)[4]

arima_dcp3 <- Arima(dados_estim_ts[,3], order = c(3,2,1), seasonal = c(0,0,1))

forc_dcp3 <- forecast(arima_dcp3, 44)

E apresentamos o MAPE:

mape(forc_dcp3, dados_aval_ts[,3])
## [1] 7.963923

Como podemos observar, o modelo que possui menor MAPE é o ARIMA(3,2,1)(0,0,1)[4]. Assim, partimos para previsão fora da amostra com esse modelo.

Apresente as Previsões “fora da amostra” para os 4 próximos trimestres feitas pelo modelo com melhor capacidade preditiva.

arima_dcp4 <- Arima(dados_ts[,3], order = c(3,2,1), seasonal = c(0,0,1))

forc_dcp4 <- forecast(arima_dcp4, 4)
##         Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 2008 Q1       8396.780 8368.565 8424.995 8353.629 8439.931
## 2008 Q2       8452.989 8410.103 8495.875 8387.401 8518.577
## 2008 Q3       8505.309 8446.898 8563.719 8415.977 8594.640
## 2008 Q4       8559.370 8483.631 8635.109 8443.537 8675.203

Questão 10

auto_lc <- auto.arima(dados_estim_ts[,4], ic = "aicc",seasonal = TRUE, trace = TRUE, stepwise = FALSE, approximation = FALSE)
## 
##  ARIMA(0,2,0)                              : 1554.486
##  ARIMA(0,2,0)(0,0,1)[4]                    : 1540.959
##  ARIMA(0,2,0)(0,0,2)[4]                    : 1534.372
##  ARIMA(0,2,0)(1,0,0)[4]                    : 1549.541
##  ARIMA(0,2,0)(1,0,1)[4]                    : 1538.181
##  ARIMA(0,2,0)(1,0,2)[4]                    : 1536.261
##  ARIMA(0,2,0)(2,0,0)[4]                    : 1532.705
##  ARIMA(0,2,0)(2,0,1)[4]                    : 1532.344
##  ARIMA(0,2,0)(2,0,2)[4]                    : Inf
##  ARIMA(0,2,1)                              : 1431.376
##  ARIMA(0,2,1)(0,0,1)[4]                    : 1429.429
##  ARIMA(0,2,1)(0,0,2)[4]                    : 1421.767
##  ARIMA(0,2,1)(1,0,0)[4]                    : 1431.429
##  ARIMA(0,2,1)(1,0,1)[4]                    : 1424.795
##  ARIMA(0,2,1)(1,0,2)[4]                    : 1423.509
##  ARIMA(0,2,1)(2,0,0)[4]                    : 1421.759
##  ARIMA(0,2,1)(2,0,1)[4]                    : 1422.256
##  ARIMA(0,2,1)(2,0,2)[4]                    : Inf
##  ARIMA(0,2,2)                              : 1433.423
##  ARIMA(0,2,2)(0,0,1)[4]                    : 1431.058
##  ARIMA(0,2,2)(0,0,2)[4]                    : 1423.705
##  ARIMA(0,2,2)(1,0,0)[4]                    : 1433.436
##  ARIMA(0,2,2)(1,0,1)[4]                    : 1426.652
##  ARIMA(0,2,2)(1,0,2)[4]                    : 1425.533
##  ARIMA(0,2,2)(2,0,0)[4]                    : 1423.753
##  ARIMA(0,2,2)(2,0,1)[4]                    : 1424.206
##  ARIMA(0,2,3)                              : 1435.371
##  ARIMA(0,2,3)(0,0,1)[4]                    : 1433.087
##  ARIMA(0,2,3)(0,0,2)[4]                    : 1425.671
##  ARIMA(0,2,3)(1,0,0)[4]                    : 1435.429
##  ARIMA(0,2,3)(1,0,1)[4]                    : 1428.567
##  ARIMA(0,2,3)(2,0,0)[4]                    : 1425.815
##  ARIMA(1,2,0)                              : 1495.264
##  ARIMA(1,2,0)(0,0,1)[4]                    : 1494.434
##  ARIMA(1,2,0)(0,0,2)[4]                    : 1483.493
##  ARIMA(1,2,0)(1,0,0)[4]                    : 1496.082
##  ARIMA(1,2,0)(1,0,1)[4]                    : 1487.922
##  ARIMA(1,2,0)(1,0,2)[4]                    : 1484.996
##  ARIMA(1,2,0)(2,0,0)[4]                    : 1483.986
##  ARIMA(1,2,0)(2,0,1)[4]                    : 1483.216
##  ARIMA(1,2,0)(2,0,2)[4]                    : Inf
##  ARIMA(1,2,1)                              : 1433.422
##  ARIMA(1,2,1)(0,0,1)[4]                    : 1431.04
##  ARIMA(1,2,1)(0,0,2)[4]                    : 1423.695
##  ARIMA(1,2,1)(1,0,0)[4]                    : 1433.432
##  ARIMA(1,2,1)(1,0,1)[4]                    : 1426.635
##  ARIMA(1,2,1)(1,0,2)[4]                    : 1425.525
##  ARIMA(1,2,1)(2,0,0)[4]                    : 1423.749
##  ARIMA(1,2,1)(2,0,1)[4]                    : 1424.195
##  ARIMA(1,2,2)                              : 1434.701
##  ARIMA(1,2,2)(0,0,1)[4]                    : 1433.12
##  ARIMA(1,2,2)(0,0,2)[4]                    : 1425.798
##  ARIMA(1,2,2)(1,0,0)[4]                    : 1435.474
##  ARIMA(1,2,2)(1,0,1)[4]                    : 1428.704
##  ARIMA(1,2,2)(2,0,0)[4]                    : 1425.871
##  ARIMA(1,2,3)                              : 1436.349
##  ARIMA(1,2,3)(0,0,1)[4]                    : 1435.096
##  ARIMA(1,2,3)(1,0,0)[4]                    : 1437.09
##  ARIMA(2,2,0)                              : 1475.628
##  ARIMA(2,2,0)(0,0,1)[4]                    : 1476.213
##  ARIMA(2,2,0)(0,0,2)[4]                    : 1469.791
##  ARIMA(2,2,0)(1,0,0)[4]                    : 1476.863
##  ARIMA(2,2,0)(1,0,1)[4]                    : 1471.24
##  ARIMA(2,2,0)(1,0,2)[4]                    : 1470.527
##  ARIMA(2,2,0)(2,0,0)[4]                    : 1471.123
##  ARIMA(2,2,0)(2,0,1)[4]                    : 1470.032
##  ARIMA(2,2,1)                              : 1435.344
##  ARIMA(2,2,1)(0,0,1)[4]                    : 1433.097
##  ARIMA(2,2,1)(0,0,2)[4]                    : 1425.709
##  ARIMA(2,2,1)(1,0,0)[4]                    : 1435.419
##  ARIMA(2,2,1)(1,0,1)[4]                    : 1428.593
##  ARIMA(2,2,1)(2,0,0)[4]                    : 1425.841
##  ARIMA(2,2,2)                              : 1436.418
##  ARIMA(2,2,2)(0,0,1)[4]                    : 1435.119
##  ARIMA(2,2,2)(1,0,0)[4]                    : 1437.137
##  ARIMA(2,2,3)                              : Inf
##  ARIMA(3,2,0)                              : 1457.56
##  ARIMA(3,2,0)(0,0,1)[4]                    : 1435.85
##  ARIMA(3,2,0)(0,0,2)[4]                    : 1432.329
##  ARIMA(3,2,0)(1,0,0)[4]                    : 1455.516
##  ARIMA(3,2,0)(1,0,1)[4]                    : 1435.56
##  ARIMA(3,2,0)(2,0,0)[4]                    : 1429.55
##  ARIMA(3,2,1)                              : 1437.441
##  ARIMA(3,2,1)(0,0,1)[4]                    : 1435.202
##  ARIMA(3,2,1)(1,0,0)[4]                    : 1437.539
##  ARIMA(3,2,2)                              : 1438.178
## 
## 
## 
##  Best model: ARIMA(0,2,1)(2,0,0)[4]

Assim, selecionamos os três modelos com menor IC. Nesse caso, são:

  1. ARIMA(0,2,1)(2,0,0)[4]
  2. ARIMA(0,2,1)(0,0,2)[4]
  3. ARIMA(0,2,1)(2,0,1)[4]

Agora, analisamos a acurácia dos modelos para realizar previsões.

Justifique sua resposta apresentando comparativamente e analisando os critérios de informação e os MAPES para esses modelos.

ARIMA(0,2,1)(2,0,0)[4]

arima_lc1 <- Arima(dados_estim_ts[,4], order = c(0,2,1), seasonal = c(2,0,0))

forc_lc1 <- forecast(arima_lc1, 44)

E apresentamos o MAPE:

mape(forc_lc1, dados_aval_ts[,4])
## [1] 23.59828

ARIMA(0,2,1)(0,0,2)[4]

arima_lc2 <- Arima(dados_estim_ts[,4], order = c(0,2,1), seasonal = c(0,0,2))

forc_lc2 <- forecast(arima_lc2, 44)

E apresentamos o MAPE:

mape(forc_lc2, dados_aval_ts[,4])
## [1] 23.51903

ARIMA(0,2,1)(2,0,1)[4]

arima_lc3 <- Arima(dados_estim_ts[,5], order = c(0,2,1), seasonal = c(2,0,1))

forc_lc3 <- forecast(arima_lc3, 44)

E apresentamos o MAPE:

mape(forc_lc3, dados_aval_ts[,4])
## [1] 34.15463

Como podemos observar, o modelo que possui menor MAPE é o ARIMA(0,2,1)(0,0,2)[4]. Assim, partimos para previsão fora da amostra com esse modelo.

Apresente as Previsões “fora da amostra” para os 4 próximos trimestres feitas pelo modelo com melhor capacidade preditiva.

arima_lc4 <- Arima(dados_ts[,4], order = c(0,2,1), seasonal = c(0,0,2))

forc_lc4 <- forecast(arima_lc4, 4)
##         Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 2008 Q1       1455.346 1427.694 1482.998 1413.056 1497.636
## 2008 Q2       1490.413 1449.850 1530.976 1428.377 1552.449
## 2008 Q3       1505.822 1454.339 1557.305 1427.086 1584.558
## 2008 Q4       1541.544 1479.997 1603.092 1447.415 1635.673

Questão 11

auto_div <- auto.arima(dados_estim_ts[,5], ic = "aicc",seasonal = TRUE, trace = TRUE, stepwise = FALSE, approximation = FALSE)
## 
##  ARIMA(0,2,0)                              : 964.8727
##  ARIMA(0,2,0)(0,0,1)[4]                    : 966.2634
##  ARIMA(0,2,0)(0,0,2)[4]                    : 958.069
##  ARIMA(0,2,0)(1,0,0)[4]                    : 966.397
##  ARIMA(0,2,0)(1,0,1)[4]                    : 952.2013
##  ARIMA(0,2,0)(1,0,2)[4]                    : 950.7719
##  ARIMA(0,2,0)(2,0,0)[4]                    : 967.1285
##  ARIMA(0,2,0)(2,0,1)[4]                    : 947.6995
##  ARIMA(0,2,0)(2,0,2)[4]                    : 952.4766
##  ARIMA(0,2,1)                              : 902.2688
##  ARIMA(0,2,1)(0,0,1)[4]                    : 902.4794
##  ARIMA(0,2,1)(0,0,2)[4]                    : 902.4239
##  ARIMA(0,2,1)(1,0,0)[4]                    : 902.644
##  ARIMA(0,2,1)(1,0,1)[4]                    : 896.9835
##  ARIMA(0,2,1)(1,0,2)[4]                    : 898.4246
##  ARIMA(0,2,1)(2,0,0)[4]                    : 904.6259
##  ARIMA(0,2,1)(2,0,1)[4]                    : 897.9439
##  ARIMA(0,2,1)(2,0,2)[4]                    : 894.106
##  ARIMA(0,2,2)                              : 895.1451
##  ARIMA(0,2,2)(0,0,1)[4]                    : 896.6033
##  ARIMA(0,2,2)(0,0,2)[4]                    : 897.3448
##  ARIMA(0,2,2)(1,0,0)[4]                    : 896.6464
##  ARIMA(0,2,2)(1,0,1)[4]                    : 892.5293
##  ARIMA(0,2,2)(1,0,2)[4]                    : 893.4817
##  ARIMA(0,2,2)(2,0,0)[4]                    : 898.6882
##  ARIMA(0,2,2)(2,0,1)[4]                    : 892.5639
##  ARIMA(0,2,3)                              : 897.1777
##  ARIMA(0,2,3)(0,0,1)[4]                    : 898.7085
##  ARIMA(0,2,3)(0,0,2)[4]                    : 899.4344
##  ARIMA(0,2,3)(1,0,0)[4]                    : 898.7516
##  ARIMA(0,2,3)(1,0,1)[4]                    : 894.4018
##  ARIMA(0,2,3)(2,0,0)[4]                    : 900.815
##  ARIMA(1,2,0)                              : 943.7865
##  ARIMA(1,2,0)(0,0,1)[4]                    : 945.3697
##  ARIMA(1,2,0)(0,0,2)[4]                    : 936.6806
##  ARIMA(1,2,0)(1,0,0)[4]                    : 945.4543
##  ARIMA(1,2,0)(1,0,1)[4]                    : 932.0544
##  ARIMA(1,2,0)(1,0,2)[4]                    : 930.6835
##  ARIMA(1,2,0)(2,0,0)[4]                    : 946.4416
##  ARIMA(1,2,0)(2,0,1)[4]                    : 928.1122
##  ARIMA(1,2,0)(2,0,2)[4]                    : 928.5777
##  ARIMA(1,2,1)                              : 895.8302
##  ARIMA(1,2,1)(0,0,1)[4]                    : 897.5039
##  ARIMA(1,2,1)(0,0,2)[4]                    : 898.4096
##  ARIMA(1,2,1)(1,0,0)[4]                    : 897.5311
##  ARIMA(1,2,1)(1,0,1)[4]                    : 893.7691
##  ARIMA(1,2,1)(1,0,2)[4]                    : 894.5938
##  ARIMA(1,2,1)(2,0,0)[4]                    : 899.5663
##  ARIMA(1,2,1)(2,0,1)[4]                    : 893.5898
##  ARIMA(1,2,2)                              : 897.2043
##  ARIMA(1,2,2)(0,0,1)[4]                    : 898.7086
##  ARIMA(1,2,2)(0,0,2)[4]                    : 899.4613
##  ARIMA(1,2,2)(1,0,0)[4]                    : 898.7516
##  ARIMA(1,2,2)(1,0,1)[4]                    : 894.5844
##  ARIMA(1,2,2)(2,0,0)[4]                    : 900.8153
##  ARIMA(1,2,3)                              : 899.1622
##  ARIMA(1,2,3)(0,0,1)[4]                    : 900.6898
##  ARIMA(1,2,3)(1,0,0)[4]                    : 900.7355
##  ARIMA(2,2,0)                              : 933.3516
##  ARIMA(2,2,0)(0,0,1)[4]                    : 932.3882
##  ARIMA(2,2,0)(0,0,2)[4]                    : 926.3128
##  ARIMA(2,2,0)(1,0,0)[4]                    : 932.7566
##  ARIMA(2,2,0)(1,0,1)[4]                    : 919.5322
##  ARIMA(2,2,0)(1,0,2)[4]                    : 920.4434
##  ARIMA(2,2,0)(2,0,0)[4]                    : 934.6764
##  ARIMA(2,2,0)(2,0,1)[4]                    : 919.3094
##  ARIMA(2,2,1)                              : 896.6041
##  ARIMA(2,2,1)(0,0,1)[4]                    : 897.7543
##  ARIMA(2,2,1)(0,0,2)[4]                    : 897.7346
##  ARIMA(2,2,1)(1,0,0)[4]                    : 897.8554
##  ARIMA(2,2,1)(1,0,1)[4]                    : 892.5181
##  ARIMA(2,2,1)(2,0,0)[4]                    : 899.8881
##  ARIMA(2,2,2)                              : 897.1389
##  ARIMA(2,2,2)(0,0,1)[4]                    : 898.4399
##  ARIMA(2,2,2)(1,0,0)[4]                    : 898.6351
##  ARIMA(2,2,3)                              : Inf
##  ARIMA(3,2,0)                              : 917.9878
##  ARIMA(3,2,0)(0,0,1)[4]                    : 883.8979
##  ARIMA(3,2,0)(0,0,2)[4]                    : 884.3347
##  ARIMA(3,2,0)(1,0,0)[4]                    : 900.2842
##  ARIMA(3,2,0)(1,0,1)[4]                    : 883.7352
##  ARIMA(3,2,0)(2,0,0)[4]                    : 899.5352
##  ARIMA(3,2,1)                              : 896.3054
##  ARIMA(3,2,1)(0,0,1)[4]                    : 886.01
##  ARIMA(3,2,1)(1,0,0)[4]                    : 897.0523
##  ARIMA(3,2,2)                              : 898.147
## 
## 
## 
##  Best model: ARIMA(3,2,0)(1,0,1)[4]

Assim, selecionamos os três modelos com menor IC. Nesse caso, são:

  1. ARIMA(3,2,0)(1,0,1)[4]
  2. ARIMA(3,2,0)(0,0,1)[4]
  3. ARIMA(3,2,0)(0,0,2)[4]

Agora, analisamos a acurácia dos modelos para realizar previsões.

Justifique sua resposta apresentando comparativamente e analisando os critérios de informação e os MAPES para esses modelos.

ARIMA(3,2,0)(1,0,1)[4]

arima_div1 <- Arima(dados_estim_ts[,5], order = c(3,2,0), seasonal = c(1,0,1))

forc_div1 <- forecast(arima_div1, 44)

E apresentamos o MAPE:

mape(forc_div1, dados_aval_ts[,5])
## [1] 12.62071

ARIMA(3,2,0)(0,0,1)[4]

arima_div2 <- Arima(dados_estim_ts[,5], order = c(3,2,0), seasonal = c(0,0,1))

forc_div2 <- forecast(arima_div2, 44)

E apresentamos o MAPE:

mape(forc_div2, dados_aval_ts[,5])
## [1] 12.50834

ARIMA(3,2,0)(0,0,2)[4]

arima_div3 <- Arima(dados_estim_ts[,5], order = c(3,2,0), seasonal = c(0,0,2))

forc_div3 <- forecast(arima_div3, 44)

E apresentamos o MAPE:

mape(forc_div3, dados_aval_ts[,5])
## [1] 12.54859

Como podemos observar, o modelo que possui menor MAPE é o ARIMA(3,2,0)(0,0,1)[4]. Assim, partimos para previsão fora da amostra com esse modelo.

Apresente as Previsões “fora da amostra” para os 4 próximos trimestres feitas pelo modelo com melhor capacidade preditiva.

arima_div4 <- Arima(dados_ts[,5], order = c(3,2,0), seasonal = c(0,0,1))

forc_div4 <- forecast(arima_div4, 4)
##         Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 2008 Q1       845.4984 831.3478 859.6491 823.8569 867.1400
## 2008 Q2       872.7705 853.2917 892.2493 842.9803 902.5607
## 2008 Q3       893.4749 868.5092 918.4406 855.2932 931.6567
## 2008 Q4       912.0948 881.3346 942.8551 865.0511 959.1386

  1. Referências: QAStack; StackExchange↩︎

  2. [Spurious Relationship - Wikipedia]↩︎