Valide suas suposições sobre média e variância

Modelos GARCH em R

Kris Boudt

Professor of finance and econometrics

Verificação 1: Média e desvio padrão dos retornos padronizados

Fórmula dos retornos padronizados

$$ Z_{t} = \frac{R_{t} - \hat{\mu_{t}}}{ \hat{\sigma_{t}}} $$

  • Primeira verificação do modelo:
    • Média amostral dos retornos padronizados $\approx$ 0
    • Desvio padrão amostral dos retornos padronizados $\approx$ 1
Modelos GARCH em R

Verificação 2: Série temporal dos retornos padronizados

  • Segunda verificação do modelo:
    • gráfico de série temporal dos retornos padronizados
    • retornos padronizados devem ter variabilidade constante
Modelos GARCH em R

Modelos GARCH em R

Modelos GARCH em R

Verificação 3: Sem previsibilidade nos retornos padronizados absolutos

  • Terceira verificação do modelo:

    • verificar se não há correlação entre o retorno padronizado absoluto passado e o retorno padronizado absoluto atual.
    • ou seja: $ Corr(|Z_{t-k}|, |Z_{t}|) \approx 0, $ para $k>0$
  • Por quê?

    • A magnitude do retorno padronizado absoluto deve ser constante $\rightarrow$ sem correlações nos retornos padronizados absolutos.
Modelos GARCH em R

Autocorrelações

  • Essas correlações dentro da série temporal são chamadas de autocorrelações de ordem k
    • $k=1$: $Corr(|Z_{t-1}|, |Z_{t}|)$: Correlação entre o retorno padronizado absoluto atual e seu valor anterior.
    • $k=2$: $Corr(|Z_{t-2}|, |Z_{t}|)$: Correlação entre o retorno padronizado absoluto atual e seu valor de dois períodos atrás.
    • ...
  • Todas devem ser 0. Exceto:
    • $k=0$: $Corr(|Z_{t}|, |Z_{t}|)$: Correlação do retorno padronizado absoluto com ele mesmo: igual a 1.
Modelos GARCH em R

acf()

  • No R, podemos calcular essas autocorrelações com a função de autocorrelação acf()
    • Entrada: Série temporal, ordem máxima
    • Saída: O correlograma: gráfico com os valores da autocorrelação para ordens $k = 0, 1, ...$.
Modelos GARCH em R

Aplicação à MSFT

garchspec <- ugarchspec(mean.model = list(armaOrder = c(1, 0)),
                        variance.model = list(model = "gjrGARCH"),
                        distribution.model = "sstd")
garchfit <- ugarchfit(data = msftret, spec = garchspec)
stdmsftret <- residuals(garchfit, standardize = TRUE)
acf(abs(msftret), 22)
acf(abs(stdmsftret), 22)
Modelos GARCH em R

Modelos GARCH em R

Verificação 4: Teste de Ljung-Box

  • Quarta verificação do modelo:
    • Teste de Ljung-Box de que as primeiras k autocorrelações nos retornos padronizados absolutos $|Z_t$| são zero: $$ H_0: Corr(|Z_t|,|Z_{t-1}|) = Corr(|Z_t|,|Z_{t-2}|) = ... = Corr(|Z_t|,|Z_{t-k}|) = 0 $$
    • Semelhante a um teste $t$ para significância dos parâmetros estimados, mas aqui queremos 0 para ter um bom modelo.

Regra prática: p-valor menor que 5% indica que o modelo usado não é válido.

Modelos GARCH em R

Teste de Ljung-Box no R

  • No R: função Box.test() com 3 argumentos:
    • série
    • ordem máxima para a qual as autocorrelações são zero
    • type = "Ljung-Box"

Exemplo:

Box.test(abs(stdmsftret), 22, type = "Ljung-Box")
  • Saída: p-valor
    • Regra prática: p-valor menor que 5% indica que o modelo usado não é válido.
Modelos GARCH em R

Box.test com retornos padronizados absolutos da MSFT

Teste nos retornos padronizados absolutos:

Box.test(abs(stdmsftret), 22, type = "Ljung-Box")
    Box-Ljung test
data:  abs(stdmsftret)
X-squared = 25.246, df = 22, p-value = 0.2855

Observação: p-valor é 28,55% > 5%. Não podemos rejeitar que: $$ H_0: Corr(|Z_t|,|Z_{t-1}|) = Corr(|Z_t|,|Z_{t-2}|) = ... = Corr(|Z_t|,|Z_{t-22}|) = 0 $$

Modelos GARCH em R

Vamos diagnosticar os retornos padronizados absolutos.

Modelos GARCH em R

Preparing Video For Download...