Séries Financeiras - Lista 1
1 Simulação das distribuições
par(mfrow = c(3, 2))
set.seed(2019)
n=1000
r=rnorm(n)
ar= rsnorm(n)
plot(r, type = "l", main = "norm", col = "steelblue")
plot(ar, type = "l", main = "snorm", col = "magenta")
hist(r, n = 25, probability = TRUE, border = "white", col = "steelblue")
box()
x = seq(min(r), max(r), length = 201)
lines(x, dnorm(x), lwd = 2)
hist(ar, n = 25, probability = TRUE, border = "white", col = "magenta")
box()
x = seq(min(ar), max(ar), length = 201)
lines(x, dsnorm(x), lwd = 2)
plot(sort(r), (1:1000/1000), main = "Probability", col = "steelblue",
ylab = "Probability")
lines(x, pnorm(x), lwd = 2)
plot(sort(ar), (1:1000/1000), main = "Probability", col = "magenta",
ylab = "Probability")
lines(x, psnorm(x), lwd = 2)2 ARCH(1)
spec = garchSpec(model = list(alpha = c(0.2, 0.4), beta = 0))
arch1=garchSim(spec, n = 500)
plot(arch1)qqnorm(arch1, pch = 18)
qqline(arch1)hist(arch1)r=arch1
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]
STATS <- cbind(r.media,r.desvpad,r.mediana,r.assimetria,r.exc.curtose)
STATS## r.media r.desvpad r.mediana r.assimetria r.exc.curtose
## [1,] -8.009e-05 0.001472 -8.612e-06 -0.1762 0.7791
acf(r)pacf(r)acf(r^2)pacf(r^2)3 Questão 1
set.seed(2019)
spec = garchSpec(model = list(ar = 0.5, alpha = c(0.3, 0.4), beta = 0))
archnorm = garchSim(spec, n = 500)
acf(archnorm)acf(archnorm^2)plot(archnorm)qqnorm(archnorm, pch = 18)
qqline(archnorm)hist(archnorm)r=archnorm
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]
STATS <- cbind(r.media,r.desvpad,r.mediana,r.assimetria,r.exc.curtose)
STATS## r.media r.desvpad r.mediana r.assimetria r.exc.curtose
## [1,] -0.0003094 0.001962 -0.000218 -0.321 1.793
Verifica-se que os dados progressivamente tornam-se menos autocorrelacionados, para ambas as séries apresentadas. Nota-se que na série transformada, a autocorrela??o para s?ries mais superiores é maior.
A Assimetria é próxima de zero e o exceto de curtose é baixo.
4 Questão 2
set.seed(2019)
spec = garchSpec(model = list(ar = 0.5, alpha = c(0.3, 0.4), beta = 0),cond.dist = "std")
archt = garchSim(spec, n = 500)
acf(archt)acf(archt^2)plot(archt)qqnorm(archt, pch = 18)
qqline(archt)hist(archt)r=archt
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]
STATS <- cbind(r.media,r.desvpad,r.mediana,r.assimetria,r.exc.curtose)
STATS## r.media r.desvpad r.mediana r.assimetria r.exc.curtose
## [1,] -2.041e-07 0.00192 8.772e-05 1.093 14.95
Agora quando temos os erros seguindo uma distribuição t, para esta simulação em particular, a autocorrelação descresce mais rapidamente, principalmente para os dados transformados.
Quantos as estatísticas, vê-se uma assimetria mais distante de zero e muito mais excesso de curtose.
5 Questão 3
set.seed(2019)
spec = garchSpec(model = list(ar = 0.5, alpha = c(0.3, 0.4), beta = 0),cond.dist = "ged")
archged = garchSim(spec, n = 500)
acf(archged)acf(archged^2)plot(archged)qqnorm(archged, pch = 18)
qqline(archged)hist(archged)r=archged
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]
STATS <- cbind(r.media,r.desvpad,r.mediana,r.assimetria,r.exc.curtose)
STATS## r.media r.desvpad r.mediana r.assimetria r.exc.curtose
## [1,] 0.0001586 0.001969 -4.297e-05 0.436 4.419
Aqui, novamente, se comparado com os erros normalmente distrubuídos, verifica-se um comportamento similar, autocorrelação maior para legs menores de 5 e maiores de 20. Assimetria próxima de zero e um pouco mais de excesso de curtose.
6 Questão 4
set.seed(2019)
spec = garchSpec(model = list(ar = 0.5, alpha = c(0.3, 0.4), beta = 0),cond.dist = "snorm")
archsn = garchSim(spec, n = 500)
acf(archsn)acf(archsn^2)r=archsn
plot(archsn)qqnorm(archsn, pch = 18)
qqline(archsn)hist(archged)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]
STATS <- cbind(r.media,r.desvpad,r.mediana,r.assimetria,r.exc.curtose)
STATS## r.media r.desvpad r.mediana r.assimetria r.exc.curtose
## [1,] 0.0003469 0.002137 0.0002925 0.3539 1.678
Em comparação com as demais, não observa-se altocorrelação para lags superiores a 20. Verifica-se assimetria próxima de zero e excesso de curtose baixo.
7 Questão 5
set.seed(2019)
spec = garchSpec(model = list(ar = 0.5, alpha = c(0.3, 0.4), beta = 0),cond.dist = "sstd")
archst = garchSim(spec, n = 500)
acf(archst)acf(archst^2)r=archst
plot(archst)qqnorm(archst, pch = 18)
qqline(archst)hist(archst)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]
STATS <- cbind(r.media,r.desvpad,r.mediana,r.assimetria,r.exc.curtose)
STATS## r.media r.desvpad r.mediana r.assimetria r.exc.curtose
## [1,] 0.0001452 0.001421 0.0002204 -0.152 4.59
Verfica-se aqui a série com menor autocorrelação até agora, baixa assimetria e pouco excesso de curtose.
8 Questão 6
set.seed(2019)
spec = garchSpec(model = list(ar = 0.5, alpha = c(0.3, 0.4), beta = 0),cond.dist = "sged")
archsged = garchSim(spec, n = 500)
acf(archsged)acf(archsged^2)r=archsged
plot(archsged)qqnorm(archsged, pch = 18)
qqline(archsged)hist(archsged)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]
STATS <- cbind(r.media,r.desvpad,r.mediana,r.assimetria,r.exc.curtose)
STATS## r.media r.desvpad r.mediana r.assimetria r.exc.curtose
## [1,] 0.0002866 0.001982 0.0002028 0.5447 4.127
Aqui já verifica-se uma maior autocorrelação, em especial para os lags iniciais, como é esperado. Baixa assimetria e pouco excesso de curtose.
9 Questão 7
set.seed(2019)
ar <- arima.sim(n=500, list(ar=c(0.8)))
spec = garchSpec(model = list(ar = 0.5, alpha = c(0.3, 0.4), beta = 0))
arch = garchSim(spec, n = 500)
archar = arch + ar
acf(archar)acf(archar^2)r=archar
plot(archar)qqnorm(archar, pch = 18)
qqline(archar)hist(archar)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]
STATS <- cbind(r.media,r.desvpad,r.mediana,r.assimetria,r.exc.curtose)
STATS## r.media r.desvpad r.mediana r.assimetria r.exc.curtose
## [1,] -0.4586 1.549 -0.4866 -0.02289 0.5494
A autocorrelação da série não transformada apresenta o comportamente esperado, isto é, lags autocorrelacionados.