Lista 2 - Séries Financeiras
Considere o seguinte processo estocástico:
\(r_t = e_t + \beta*e_{t-1}e_{t-1}\) ; \(e_t\sim NID(0,\sigma^2)\) ; \(E(e_te_s)=0\) \(t \neq s\)
1 A
Considere dois valores para \(\beta\) e \(\sigma\) e gere realização de um processo com tamanho 500
#Crie um vetor de sementes para fixar a geração de números aleatórios
set.seed(29032019)
#Crie um vetor para alocar as 500 gerações da série especificada pelo exercício
r = vector()
#Defina o primeiro beta e o sigma 2, gerando através da normal adequada
beta = 0.5
sigma2 = 1
e = rnorm(502,0,sqrt(sigma2))
#Para gerar a série requerida, faça uma loop iniciando do valor 3, devido ao erro com índice com t-2.
for (i in 3:502){
r[i] = e[i] + beta*e[i-1]*e[i-2]
}
r1 = as.vector(na.omit(r))
#Para uma outra série, faça analogamente, apenas alterando o parâmetros.
beta = -0.5
sigma2 = 10
e = rnorm(502,0,sqrt(sigma2))
for (i in 3:502){
r[i] = e[i] + beta*e[i-1]*e[i-2]
}
r2 = as.vector(na.omit(r))
#Plote a série
plot(r1,type="l",main="beta = 0.5 e sigma 2 = 1")plot(r2,type="l",main="beta = -0.5 e sigma 2 = 10")2 B
#correlograma da série dado os parâmetros b=0.5 e sigma2=1
acf(r1,main="r1")#correlograma da série ao quadrado dado os parâmetros b=0.5 e sigma2=1
acf(r1,main="r1^2")#correlograma da série dado os parâmetros b=-0.5 e sigma2=10
acf(r2^2,main="r2")#correlograma da série ao quadrado dado os parâmetros b=-0.5 e sigma2=10
acf(r2^2,main="r2^2")#Estatística para a série r1 (b=0.5 e sigma2=1)
r=r1
options(digits=4)
r.describe <- describe(r)
r.media <- r.describe[,3]
r.desvpad <- r.describe[,4]
r.mediana <- r.describe[,5]
r.assimetria <- r.describe[,11]
r.exc.curtose <- r.describe[,12]
STATS1 <- cbind(r.media,r.desvpad,r.mediana,r.assimetria,r.exc.curtose)
#Estatística para a série r2 (b=-0.5 e sigma2=10)
r=r2
options(digits=4)
r.describe <- describe(r)
r.media <- r.describe[,3]
r.desvpad <- r.describe[,4]
r.mediana <- r.describe[,5]
r.assimetria <- r.describe[,11]
r.exc.curtose <- r.describe[,12]
STATS2 <- cbind(r.media,r.desvpad,r.mediana,r.assimetria,r.exc.curtose)
stats = as.data.frame(rbind(STATS1,STATS2))
rownames(stats) = c("r1","r2")
kable(stats)| r.media | r.desvpad | r.mediana | r.assimetria | r.exc.curtose | |
|---|---|---|---|---|---|
| r1 | -0.0071 | 1.058 | -0.0283 | 0.1140 | 0.0022 |
| r2 | 0.0483 | 5.227 | -0.1360 | 0.1813 | 1.2482 |
Verifica-se para a primeira série uma média e uma média próxima de zero, pouca assimetria e quase nenhum excesso de curtose. Já a segunda série evidencia uma média mais distante de zero, um excesso de curto levemente maior um desvio padrão razoavelmente maior, como já era esperado, pois foi imposto no modelo. À exceção da média da segunda série gerada, que não está razoavelmente próxima de zero, todos os fatos estilizados são verificados.
3 C
Como a variância incondicional é a própria variância da série, temos que.
a=var(r1)
b=var(r2)
vari = as.data.frame(rbind(a,b))
rownames(vari) = c("r1","r2")
colnames(vari) = c("Variância")
kable(vari)| Variância | |
|---|---|
| r1 | 1.12 |
| r2 | 27.32 |
4 D
Para calcular a variância condicional, utiliza-se a seguinte expressão:
\(\sigma_{t}^{2} = E[(r_t-\mu_t)^2|F_{t-1}]\)
Podendo ser reescrita como:
\(E_{t-1}[(r_t-\mu_t)^2]\)
Em outras palavras, a variância condicional pode ser interpretada como a variância de um processo, dado tudo o que já foi observado anteriormente. Estamos interessados em “segmentos” da série de retorno.
#Crie vetores para alocar os resultados para as médias condicionais e para as variâncias condicionais
cond1 = vector()
cond2 = vector()
mu1 = vector()
mu2 = vector()
#Média condicional de r1
for (i in 2:500){
mu1[i-1]=mean(r1[i])
}
#Média condiconal de r2
for (i in 2:500){
mu2[i-1]=mean(r2[i])
}
#Variância condiciona de r1 (dependente da média condicional de r1)
for (i in 2:499){
cond1[i-1]=mean( (r1[i]-mu1[i])^2 )
}
#Variância condiciona de r2 (dependente da média condicional de r2)
for (i in 2:499){
cond2[i-1]=mean( (r2[i]-mu2[i])^2 )
}
varicond = as.data.frame(cbind(cond1[1:9],cond2[1:9]))
colnames(varicond) = c("r1","r2")
rownames(varicond) = rep(paste("t",2:10,sep = ""))
kable(varicond)| r1 | r2 | |
|---|---|---|
| t2 | 1.2121 | 22.540 |
| t3 | 0.2436 | 22.127 |
| t4 | 0.1892 | 183.051 |
| t5 | 0.3783 | 16.496 |
| t6 | 0.4735 | 11.336 |
| t7 | 1.3774 | 186.304 |
| t8 | 2.2885 | 257.991 |
| t9 | 0.0427 | 0.291 |
| t10 | 10.9953 | 52.261 |
5 E
acf(cond1)acf(cond1^2)acf(cond2)acf(cond2^2)Verifica-se que a série de volatilidade não apresenta, visualmente, autocorrelação.
6 F
Box.test(cond1)##
## Box-Pierce test
##
## data: cond1
## X-squared = 47, df = 1, p-value = 6e-12
Box.test(cond2)##
## Box-Pierce test
##
## data: cond2
## X-squared = 48, df = 1, p-value = 4e-12
Box.test(cond1^2)##
## Box-Pierce test
##
## data: cond1^2
## X-squared = 46, df = 1, p-value = 1e-11
Box.test(cond2^2)##
## Box-Pierce test
##
## data: cond2^2
## X-squared = 20, df = 1, p-value = 9e-06
Ao contrário do que foi apresentado em G, o teste de Ljung-Box indica que há evidências de que a série de volatilidade não seja um Ruído Branco.
7 G
Box.test(r1)##
## Box-Pierce test
##
## data: r1
## X-squared = 0.37, df = 1, p-value = 0.5
Box.test(r2)##
## Box-Pierce test
##
## data: r2
## X-squared = 0.018, df = 1, p-value = 0.9
Por sua vez, pelo teste de Ljung-Box, não existem evidências contra a hipótese de que a série de retorno seja um ruído branco, ao contrário do que foi observado na série de volatilidade.
r=cond1
options(digits=4)
r.describe <- describe(r)
r.media <- r.describe[,3]
r.desvpad <- r.describe[,4]
r.mediana <- r.describe[,5]
r.assimetria <- r.describe[,11]
r.exc.curtose <- r.describe[,12]
STATS1 <- cbind(r.media,r.desvpad,r.mediana,r.assimetria,r.exc.curtose)
#Estatística para a série r2 (b=-0.5 e sigma2=10)
r=cond2
options(digits=4)
r.describe <- describe(r)
r.media <- r.describe[,3]
r.desvpad <- r.describe[,4]
r.mediana <- r.describe[,5]
r.assimetria <- r.describe[,11]
r.exc.curtose <- r.describe[,12]
STATS2 <- cbind(r.media,r.desvpad,r.mediana,r.assimetria,r.exc.curtose)
stats = as.data.frame(rbind(STATS1,STATS2))
rownames(stats) = c("cond1","cond2")
kable(stats)| r.media | r.desvpad | r.mediana | r.assimetria | r.exc.curtose | |
|---|---|---|---|---|---|
| cond1 | 2.178 | 3.583 | 0.9662 | 4.273 | 29.19 |
| cond2 | 54.376 | 110.144 | 13.9639 | 3.839 | 17.54 |
A série de volatidade apresenta medidas resumo grosseiramente diferentes da série de retornos. Assimétrica, com excesso de curtose e média diferente de zero.
8 H
Os dados gerados apresentam uma série de retornos coerente com o que é pautado pelos fatos estilizados. Já a série de volatidade apresenta um comportamento não-normal, para além de uma evidente não-linearidade apresentada nos lags. Conclui-se que o modelo é ideal para a modelagem de uma série de retornos bem comportada.
9 Demonstrações
9.1 Demonstração da média condicional
\(\mu_t = E_{t-1}[r_t]=\)
\(=E_{t-1}[\epsilon_t+\beta_t\epsilon_{t-1}\epsilon_{t-2}]=\)
\(=E_{t-1}[\epsilon_t] + \beta_tE_{t-1}[\epsilon_{t-1}]E_{t-1}[\epsilon_{t-2}]=\)
\(=0 + 0 + 0 = 0\)
9.2 Demonstração da variância condicional
\(\sigma_{t}^{2} = E_{t-1}[r^2]=\)
\(=E_{t-1}[(\epsilon_t+\beta_t\epsilon_{t-1}\epsilon_{t-2})^2]=\)
\(=E_{t-1}[(\epsilon_t)^2]+2\beta_tE_{t-1}[\epsilon_t\epsilon_{t-1}\epsilon_{t-2}] + \beta^2E_{t-1}[\epsilon_{t-1}^{2 }\epsilon_{t-2}^{2}] =\)
\(= V(\epsilon_t) + E_{t-1}^{2}[\epsilon_t] + 0 + \beta^2E_{t-1}[\epsilon_{t-1}^{2 }]E_{t-1}[\epsilon_{t-2}^{2}] =\)
\(= \sigma^2 + 0 + 0 + \beta^2\sigma^4 =\)
\(= \sigma^2( 1 + \beta^2\sigma^2)\)