所以我使用GarchFit在R中模拟了一个GARCH(APARCH)模型,并对每周日志返回进行了模拟:
在指定h0(初始波动率)的不同值时,我对我的数据得到不同的预测,并且精度正在收敛,并且对于h0 = 2.2e-4是好的。
这当然是通过我的迭代获得的。我想知道如何在下面的代码中替换h0(初始波动率)的适当值的过程,或者更好的方法来使用数据校准h0。 (因为不同的h0导致与模型的不同拟合,而不必通过重复替换不同的值并寻找合适的方法来手动找出最佳h0,是否有另一种有效的方法来找到返回“最适合”的h0? / p>
以下是模拟代码:
`randhelp <- function(
horizon,
N,
h0,
mu,
omega,
alpha1 ,
gamma1,beta1,delt
)
{
rett<-zt <- et <- ht <- matrix(NA, nc=horizon, nr=N) #matrices to store #simulated values of various parameters
ht[,1] <- h0
for(j in 1:horizon){
zt[,j] <- rsstd(N,mean=0.01076,sd=1.01309,nu=6.80980352,xi=0.99555)
#innovation
et[,j] <- zt[,j]*sqrt(ht[,j]) #et is the return, same as rett here
rett[,j] <- et[,j]+omega+mu #omega and mu don't matter and are to be given
#the values zero
if( j < horizon ){
ht[,j+1]<- (alpha1*(abs(et[,j])-gamma1*et[,j])^(delt) + beta1*
(ht[,j])^(delt/2))^(2/delt)}}
rett #final matrix of simulated values for each step in the horizon
}`