Simulação de GARCH em R
Estou fazendo uma simulação de um modelo GARCH. O modelo em si não é muito relevante, o que eu gostaria de perguntar é sobre como otimizar a simulação em R. Mais do que tudo, se você vê algum espaço para vetorização, pensei nisso, mas não consigo vê-lo. Até agora, o que tenho é este:
Deixei
# ht=cond.variance in t
# zt= random number
# et = error term
# ret= return
# Horizon= n periods ahead
Então este é o código:
randhelp= function(horizon=horizon){
ret <- zt <- et <- rep(NA,horizon)#initialize ret and zt et
for( j in 1:horizon){
zt[j]= rnorm(1,0,1)
et[j] = zt[j]*sqrt(ht[j])
ret[j]=mu + et[j]
ht[j+1]= omega+ alpha1*et[j]^2 + beta1*ht[j]
}
return(sum(ret))
}
Eu quero fazer uma simulação dos retornos daqui a 5 períodos, então executarei isso, digamos 10000.
#initial values of the simulation
ndraws=10000
horizon=5 #5 periods ahead
ht=rep(NA,horizon) #initialize ht
ht[1] = 0.0002
alpha1=0.027
beta1 =0.963
mu=0.001
omega=0
sumret=sapply(1:ndraws,function(x) randhelp(horizon))
Acho que isso está ocorrendo razoavelmente rápido, mas gostaria de perguntar se há alguma maneira de abordar esse problema de uma maneira melho
Obrigado