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.

Rafael Cabral Fernandez

2019-03-27