Bibliotecas Importadas

library("readxl")
library("tidyverse")
library("lubridate")
library("tseries")
library("forecast")
library("knitr")

Manipulação dos Dados

dados <- read_excel("dados trabalho.xls", range = "A3:G247")

# Estrutura 1: DataFrame com as variáveis
df <- dados %>% 
    unite(col = "Data", Ano, Trimestre, sep = ": Q") %>% 
    mutate("Data" = yq(Data))

# Estrutura 2: lista de TimeSerie para cada variável

df_ts <- dados %>% select(-c("Ano", "Trimestre"))
df_ts <- ts(df_ts, start = c(1947,1), end = c(2007,4), frequency = 4)
Criando TimeSeries para cada variável
  • RPD - renda real pessoal disponível (bilhões de dólares)
  • PIB - produto interno bruto (bilhões de dólares)
  • DCP - despesas reais de consumo pessoal (bilhões de dólares)
  • LC - lucros corporativos após impostos (bilhões de dólares)
  • DIV - dividendos corporativos (bilhões de dólares)
RPD <- df_ts[ ,1]
PIB <- df_ts[ ,2]
DCP <- df_ts[ ,3]
LC <- df_ts[ ,4]
DIV <- df_ts[ ,5]

QUESTÃO 1:

A) Obtenha os gráficos das séries temporais no nível e os seus correlogramas amostrais (ACF e PACF) de até 36 defasagens para as séries
par(mfrow = c(1,1))

plot(RPD, main = "Renda Real")

acf(RPD, 36, main = "ACF Renda Real")

pacf(RPD, 36, main = "PACF Renda Real")

plot(PIB, main = "PIB")

acf(PIB, 36, main = "ACF PIB")

pacf(PIB, 36, main = "PACF PIB")

plot(DCP, main = "Despesas Reais")

acf(DCP, 36, main = "ACF Despesas Reais")

pacf(DCP, 36, main = "PACF Despesas Reais")

plot(LC, main = "Lucros Corporativos")

acf(LC, 36, main = "ACF Lucros Corporativos")

pacf(LC, 36, main = "PACF Lucros Corporativos")

plot(DIV, main = "Dividendos Corporativos")

acf(DIV, 36, main = "ACF Dividendos Corporativos")

pacf(DIV, 36, main = "PACF Dividendos Corporativos")

B) Qual padrão geral você verifica? Intuitivamente, qual(is) dessa(s) série(s) temporal(is) parece(m) ser estacionária(s)? Explique.

Em primeiro lugar, é provado que todas as séries apresentam tendência altista bem definida ao longo do tempo. Além disso, há uma queda exponencial das autocorrelações em todas as variáveis, demonstrando que todas as variáveis podem apresentam um perfil autorregressivo do tipo AR confirmado pelas correlações parciais que apresentam a primeiras defasagens estatisticamente significativas. Porém, ao avaliar as variáveis LC e DIV, segundo o mesmo critério da correlação parcial, observa-se que existem outras defasagens significativas entre as últimas defasagens. Intuitivamente as séries temporais para as variáveis, DCP, PIB e RPD, demonstram certo equilíbrio temporal em torno de uma média constante ao longo do tempo. Esse fato, ajuda a presumir a estacionariedade estrita das séries. Devido as oscilações nas últimas defasagens parece que não se LC e DIV não seguem o mesmo comportamento.

QUESTÃO 2:

Para cada série temporal do Exercício 1, utilize o teste Dickey-Fuller Aumentado (ADF) para descobrir se essas séries contêm uma raiz unitária. Se existir, como você caracterizaria tais séries temporais?
adf.test(RPD)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  RPD
## Dickey-Fuller = 0.18989, Lag order = 6, p-value = 0.99
## alternative hypothesis: stationary
adf.test(PIB)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  PIB
## Dickey-Fuller = -0.12974, Lag order = 6, p-value = 0.99
## alternative hypothesis: stationary
adf.test(DCP)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  DCP
## Dickey-Fuller = 0.65642, Lag order = 6, p-value = 0.99
## alternative hypothesis: stationary
adf.test(LC)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  LC
## Dickey-Fuller = -0.66114, Lag order = 6, p-value = 0.973
## alternative hypothesis: stationary
adf.test(DIV)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  DIV
## Dickey-Fuller = 4.3541, Lag order = 6, p-value = 0.99
## alternative hypothesis: stationary

As variáveis macroeconômicas apresentaram Z-valor em módulo maior que o valor crítico, em todos os casos testados com o teste ADF, e ao nível de significância de 5%. Portanto, a hipótese nula de que φ = 1 (séries contém raiz unitária) não é rejeitada, provando que as séries não são estacionárias.

QUESTÃO 3:

Continue com o Exercício 2 implementando agora Testes de Phillips-Perron (PP) para cada uma das séries. Os resultados coincidem com os obtidos na questão 2? Como você decidiria se um teste Dickey-Fuller Aumentado apresentar resultados contraditórios ao teste Phillips-Perron?
pp.test(RPD)
## 
##  Phillips-Perron Unit Root Test
## 
## data:  RPD
## Dickey-Fuller Z(alpha) = 0.022845, Truncation lag parameter = 4,
## p-value = 0.99
## alternative hypothesis: stationary
pp.test(PIB)
## 
##  Phillips-Perron Unit Root Test
## 
## data:  PIB
## Dickey-Fuller Z(alpha) = 0.018858, Truncation lag parameter = 4,
## p-value = 0.99
## alternative hypothesis: stationary
pp.test(DCP)
## 
##  Phillips-Perron Unit Root Test
## 
## data:  DCP
## Dickey-Fuller Z(alpha) = 1.144, Truncation lag parameter = 4, p-value =
## 0.99
## alternative hypothesis: stationary
pp.test(LC)
## 
##  Phillips-Perron Unit Root Test
## 
## data:  LC
## Dickey-Fuller Z(alpha) = 5.7899, Truncation lag parameter = 4, p-value
## = 0.99
## alternative hypothesis: stationary
pp.test(DIV)
## 
##  Phillips-Perron Unit Root Test
## 
## data:  DIV
## Dickey-Fuller Z(alpha) = 7.5859, Truncation lag parameter = 4, p-value
## = 0.99
## alternative hypothesis: stationary

Em nenhum dos testes de Phillips – Perron, para as variáveis macroeconômicas, os Z-valores em módulo foram maiores do que os níveis de significância a 5%. Consequentemente, não temos evidência para rejeitar a hipótese nula de que as séries apresentam raiz unitária, coincidindo com os resultados obtidos no exercício anterior.


Com relação ao teste ADF apresentar resultados contrários ao teste de Phillips–Perron é necessário observar que no teste ADF se considera que o termo de erro é um Ruído Branco \[\epsilon_{t} ~\sim N(0,\sigma^{2})\], ou seja, que tem variância constante e é não autocorrelacionado.

Se este não for o caso (como geralmente ocorre com dados financeiros) o melhor teste seria o de Phillips–Perron, dado por: \[\Delta r_{t} = \mu + \beta_{t} + \rho_{t-1} + \epsilon_{t}\] em que µ, β e ρ tem seus testes-t corrigidos para os problemas de autocorrelação e heterocedasticidade do ruído branco.

QUESTÃO 4:

Considere as séries temporais dos dividendos e dos lucros nos dados das séries temporais da economia norte-americana apresentados na Tabela 1. Posto que os dividendos dependem dos lucros, considere o seguinte modelo simples Dividendos em função dos Lucros Corporativos:

\[DIV_{t} = \beta_0 + \beta_1 LC_{t} + \epsilon_{t}\] ##### Você esperaria que essa regressão sofresse o fenômeno da regressão espúria? Por quê? Explique detalhadamente.

Tudo indica que a regressão seria espúria pelo simples fato de que as duas séries não são estacionárias, partindo dos testes ADF e PP feitos anteriormente. Isso significa que se as duas séries forem colocadas em uma regressão uma contra a outra, pode-se encontrar valores para R² alto e β1 significativo mesmo que ambas não tenham nenhuma ligação teórica ou empírica. Nesse caso, as séries possuem ligação dado ao que fora postulado que os dividendos dependem dos lucros.

QUESTÃO 5: Considere as primeiras diferenças das séries temporais fornecidas da economia norte-americana, apresentados na Tabela 1.

A) Crie um gráfico para cada uma delas. Essas parecem ser estacionárias?
# Variáveis que contém as Séries das Primeiras Diferenças
diff_RPD = diff(RPD, lag = 1, differences = 1)
diff_PIB = diff(PIB, lag = 1, differences = 1)
diff_DCP = diff(DCP, lag = 1, differences = 1)
diff_LC = diff(LC, lag = 1, differences = 1)
diff_DIV = diff(DIV, lag = 1, differences = 1)
plot(diff_RPD, main = "Renda Real Primeira Diferença")

plot(diff_PIB, main = "PIB Primeira Diferença")

plot(diff_DCP, main = "Despesas Reais Primeira Diferença")

plot(diff_LC, main = "Lucros Corporativos Primeira Diferença")

plot(diff_DIV, main = "Dividendos Corporativos Primeira Diferença")

Após retiradas as diferenças, que mostram grandes oscilações, percebe-se que há uma leve tendência de crescimento com o passar dos trimestres, portanto as três primeiras séries não parecem ser estacionárias. As duas últimas séries parecem ser estacionárias, com uma grande oscilação nos trimestres finais. Porém, os valores oscilam ao redor de uma média zero.

B) Obtenha também os correlogramas e correlogramas parciais de cada série temporal com até 36 defasagens. O que você percebe em relação a esses correlogramas?
par(mfrow = c(1,1))

acf(diff_RPD, 36, main = "ACF Renda Real Primeira Diferença")

pacf(diff_RPD, 36, main = "PACF Renda Real Primeira Diferença")

acf(diff_PIB, 36, main = "ACF PIB Primeira Diferença")

pacf(diff_PIB, 36, main = "PACF PIB Primeira Diferença")

acf(diff_DCP, 36, main = "ACF Despesas Reais Primeira Diferença")

pacf(diff_DCP, 36, main = "PACF Despesas Reais Primeira Diferença")

acf(diff_LC, 36, main = "ACF Lucros Corporativos Primeira Diferença")

pacf(diff_LC, 36, main = "PACF Lucros Corporativos Primeira Diferença")

acf(diff_DIV, 36, main = "ACF Dividendos Corporativos Primeira Diferença")

pacf(diff_DIV, 36, main = "PACF Dividendos Corporativos Primeira Diferença")

Após a primeira diferenciação em todas as séries o número de defasagens estatisticamente significantes elevou-se tanto para as ACF e PACF.

QUESTÃO 6:

Em vez de estimar uma regressão dos dividendos contra os lucros na forma do nível, suponha que você estime uma regressão da primeira diferença dos dividendos contra as primeiras diferenças dos lucros.
A) Essa regressão é espúria?

Em primeiro lugar, é importante verificar empiricamente se as séries são estacionárias, antes de realizar a regressão.

adf.test(diff_DIV) # série estacionária, p-valor < 5%
## 
##  Augmented Dickey-Fuller Test
## 
## data:  diff_DIV
## Dickey-Fuller = -3.5672, Lag order = 6, p-value = 0.03696
## alternative hypothesis: stationary
adf.test(diff_LC) # série estacionária, p-valor < 5%
## 
##  Augmented Dickey-Fuller Test
## 
## data:  diff_LC
## Dickey-Fuller = -4.05, Lag order = 6, p-value = 0.01
## alternative hypothesis: stationary
pp.test(diff_DIV) # série estacionária, p-valor < 5%
## 
##  Phillips-Perron Unit Root Test
## 
## data:  diff_DIV
## Dickey-Fuller Z(alpha) = -320.15, Truncation lag parameter = 4, p-value
## = 0.01
## alternative hypothesis: stationary
pp.test(diff_LC) # série estacionária, p-valor < 5%
## 
##  Phillips-Perron Unit Root Test
## 
## data:  diff_LC
## Dickey-Fuller Z(alpha) = -187.6, Truncation lag parameter = 4, p-value
## = 0.01
## alternative hypothesis: stationary

Realizando a regressão linear:

\[\Delta DIV_{t} = \beta_0 + \beta_1 \Delta LC_{t} + \epsilon_{t}\]

reg = lm(diff_DIV ~ diff_LC)
summary(reg)
## 
## Call:
## lm(formula = diff_DIV ~ diff_LC)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -90.144  -3.326  -2.718  -0.286 123.416 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  3.444886   0.789931   4.361 1.92e-05 ***
## diff_LC     -0.009761   0.032895  -0.297    0.767    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 11.95 on 241 degrees of freedom
## Multiple R-squared:  0.0003652,  Adjusted R-squared:  -0.003783 
## F-statistic: 0.08805 on 1 and 241 DF,  p-value: 0.7669

O valor de R² é realmente baixo, mostrando baixo poder de explicação das variações da primeira diferença dos Dividendos Corporativos em função das variações na primeira diferença dos Lucros Corporativos. Assim sendo a regressão é espúria.

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

Sim, pois ele se demonstrou estatisticamente significante dado seu p-valor menor do que 5%.

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

O valor para β1 também demonstrou-se não significativo ao nível de significância de 5%, logo o valor obtido para a primeira diferença de DIV (variável dependente) seria, em média, igual a aproximadamente 3,44 ao longo do tempo.

D) Teste a estacionaridade dos resíduos dessa regressão. O que você conclui sobre eles?
res = residuals(reg)
adf.test(res)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  res
## Dickey-Fuller = -3.5081, Lag order = 6, p-value = 0.04263
## alternative hypothesis: stationary
pp.test(res)
## 
##  Phillips-Perron Unit Root Test
## 
## data:  res
## Dickey-Fuller Z(alpha) = -320.42, Truncation lag parameter = 4, p-value
## = 0.01
## alternative hypothesis: stationary

Dado o p-valor < 5% nos dois testes, podemos concluir que a série de resíduos da regressão é estacionária.

QUESTÃO 7:

Considere os dados de RPD (renda real pessoal disponível) na Tabela 1. Suponha que você queira ajustar um modelo de previsão SARIMA(p,d,q)x(P,D,Q)s apropriado implementar previsões para esses dados.
A) 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.

O primeiro passo foi verificar se a série é estacionária, e pode ser ajustada em um modelo do tipo ARIMA/SARIMA sem a necessidade de tirar sua primeira diferença.

adf.test(RPD) # série não-estacionária, p-valor < 5%
## 
##  Augmented Dickey-Fuller Test
## 
## data:  RPD
## Dickey-Fuller = 0.18989, Lag order = 6, p-value = 0.99
## alternative hypothesis: stationary
pp.test(RPD) # série nao-estacionária, p-valor < 5%
## 
##  Phillips-Perron Unit Root Test
## 
## data:  RPD
## Dickey-Fuller Z(alpha) = 0.022845, Truncation lag parameter = 4,
## p-value = 0.99
## alternative hypothesis: stationary

O comando em R que otimiza o ajuste dos parâmetros para um modelo da classe arima é o auto.arima. Ele estima cada um dos parâmetros (P = parte autoregressiva, d = grau da diferença que estacionariza a série, q = ordem da média móvel) de forma a minimizar os critérios de informação AIC e BIC.

mod_RPD = auto.arima(RPD)
mod_RPD
## Series: RPD 
## ARIMA(2,2,2)(1,0,1)[4] 
## 
## Coefficients:
##           ar1      ar2      ma1      ma2    sar1     sma1
##       -0.9366  -0.0734  -0.1859  -0.6492  0.6414  -0.8314
## s.e.   0.1568   0.0905   0.1429   0.1187  0.1051   0.0695
## 
## sigma^2 estimated as 1543:  log likelihood=-1230.24
## AIC=2474.47   AICc=2474.95   BIC=2498.89
B) Justifique sua resposta apresentando comparativamente e analisando os critérios de informação e os MAPES para esses modelos.

Podemos observar que o modelo ARIMA (2,2,2) x SARIMA (1,0,1,4) minimiza os critérios de informação e portanto é o mais adequado para representar a série RPD.

C) Apresente as Previsões “fora da amostra” para os 4 próximos trimestres feitas pelo modelo com melhor capacidade preditiva.
forecast(mod_RPD, h = 4)
##         Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 2008 Q1       8745.826 8695.488 8796.164 8668.841 8822.811
## 2008 Q2       8814.333 8747.364 8881.302 8711.912 8916.754
## 2008 Q3       8874.309 8787.931 8960.687 8742.205 9006.413
## 2008 Q4       8912.274 8810.626 9013.923 8756.816 9067.732

Acima estão representadas as as previsões para os próximos 4 trimestres feitas pelo modelo obtido, na aba “Forecast”.

QUESTÃO 8:

Repita o Exercício 7 para os dados de PIB (Produto Interno Bruto) da Tabela 1.
mod_PIB = auto.arima(PIB)
mod_PIB
## Series: PIB 
## ARIMA(2,2,1) 
## 
## Coefficients:
##          ar1     ar2      ma1
##       0.2262  0.1754  -0.9689
## s.e.  0.0654  0.0655   0.0140
## 
## sigma^2 estimated as 1644:  log likelihood=-1238.88
## AIC=2485.75   AICc=2485.92   BIC=2499.71
forecast(mod_PIB, h = 4)
##         Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 2008 Q1       11743.57 11691.60 11795.54 11664.09 11823.05
## 2008 Q2       11801.60 11718.12 11885.09 11673.92 11929.29
## 2008 Q3       11866.37 11751.36 11981.37 11690.48 12042.25
## 2008 Q4       11930.93 11787.22 12074.63 11711.15 12150.70

QUESTÃO 9:

Repita o Exercício 7 para dados de DCP (despesas de consumo pessoal) da Tabela 1.
mod_DCP = auto.arima(DCP)
mod_DCP
## Series: DCP 
## ARIMA(0,2,1)(0,0,2)[4] 
## 
## Coefficients:
##           ma1     sma1     sma2
##       -0.7760  -0.1467  -0.1365
## s.e.   0.0486   0.0654   0.0592
## 
## sigma^2 estimated as 495.4:  log likelihood=-1093.39
## AIC=2194.78   AICc=2194.95   BIC=2208.74
forecast(mod_DCP, h = 4)
##         Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 2008 Q1       8397.847 8369.322 8426.371 8354.223 8441.471
## 2008 Q2       8459.067 8413.983 8504.151 8390.117 8528.017
## 2008 Q3       8513.387 8452.244 8574.530 8419.877 8606.897
## 2008 Q4       8568.146 8490.603 8645.689 8449.555 8686.737

QUESTÃO 10:

Repita o Exercício 7 para os dados de LC (Lucros Corporativos) da Tabela 1.
mod_LC = auto.arima(LC)
mod_LC
## Series: LC 
## ARIMA(1,2,3)(0,0,1)[4] 
## 
## Coefficients:
##           ar1      ma1      ma2     ma3    sma1
##       -0.2645  -0.4778  -0.6451  0.2207  0.3074
## s.e.   0.1948   0.1871   0.1308  0.0916  0.0786
## 
## sigma^2 estimated as 421.7:  log likelihood=-1073.24
## AIC=2158.48   AICc=2158.84   BIC=2179.42
forecast(mod_LC, h = 4)
##         Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 2008 Q1       1477.240 1450.922 1503.557 1436.991 1517.489
## 2008 Q2       1505.295 1463.008 1547.581 1440.623 1569.967
## 2008 Q3       1521.403 1470.647 1572.159 1443.779 1599.027
## 2008 Q4       1554.637 1494.650 1614.624 1462.895 1646.380

QUESTÃO 11:

Repita o Exercício 7 para os dados de DIV (Dividendos Corporativos) da Tabela 1.
mod_DIV = auto.arima(DIV)
mod_DIV
## Series: DIV 
## ARIMA(0,2,2)(0,0,2)[4] 
## 
## Coefficients:
##           ma1     ma2     sma1    sma2
##       -1.2147  0.3236  -0.0826  0.1043
## s.e.   0.0623  0.0644   0.0736  0.0622
## 
## sigma^2 estimated as 114.7:  log likelihood=-916.27
## AIC=1842.55   AICc=1842.8   BIC=1859.99
forecast(mod_DIV, h = 4)
##         Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 2008 Q1       850.9781 837.2541 864.7021 829.9890 871.9671
## 2008 Q2       873.4968 856.0470 890.9466 846.8096 900.1840
## 2008 Q3       896.3773 875.0442 917.7104 863.7511 929.0035
## 2008 Q4       918.5325 893.1429 943.9221 879.7024 957.3625