Hi, I'm trying to implement the GARCH MIDAS model proposed by Engle, Ghysels and Sohn (2013) in R. Since I just started using R for programming I cannot find out what's wrong with my programming code. After simulation I get the following error messages:
Error in optim(param, loglikely, method = "BFGS", hessian = T) : non-finite finite-difference value [4] In addition: There were 50 or more warnings (use warnings() to see the first 50) I don't know how to interpret this error messages and the warnings do not help me either. For better understanding I post the code, I programmed. There I use beta weightings, three lags and generated a mini artificial data set with 24 monthly return data and 8 quarterly unemployment rates. ###GARCH MIDAS### ################ ###parameters### ################ y_mini = rnorm(24, 0.0004, 0.016) # pseudo monthly returns x_mini=c(0.3779791,3.1863575,-0.3611527,2.2541529,1.7124367,-2.6186178,0.7241506, 4.5503754) #pseudo quarterly data mpq=length(y_mini)/length(x_mini) #months per quarter N=length(y_mini) #number of months (i=1,...,24) T_q=length(x_mini) #number of quarters (t=1,...,8) maxlag=4 #use actually 3 lags since the weight of the last lag is zero by construction ############################# ###Log Likelyhood function### ############################# loglikely=function(param){ mu=param[1] alpha=param[2] beta=param[3] m=param[4] theta=param[5] w_1=param[6] w_2=param[7] ###beta weighting function### phi=phi_nominator=rep(0,maxlag) phi_denominator=0 for (k in seq(1:maxlag)) { phi_denominator=phi_denominator+((k/maxlag)^(param[6]-1))*((1-k/maxlag)^(param[7]-1)) phi_nominator[k]=((k/maxlag)^(param[6]-1))*((1-k/maxlag)^(param[7]-1)) } phi <<- phi_nominator/phi_denominator ###tau-specification### tau=rep(0,T) for (t in maxlag:T){ tau_sum=rep(0,(maxlag-1)) for (k in 1:(maxlag-1)){ tau_sum[k] = phi[k]* x_mini[t-k] } tau[t]=param[4]+param[5]*sum(tau_sum) } tau<<-tau ###GARCH component### g=rep(0,N) g[(maxlag-1)*mpq]=1 for(t in maxlag:T){ for(i in ((t-1)*mpq):((t-1)*mpq+mpq-1)) { g[i + 1] <- ( 1-param[2]-param[3] + param[2] * (((y_mini[i] - param[1]) ^ 2)/tau[t]) + param[3]* g[i]) } } g<<-g ##LL function## L=0 for (t in maxlag:T){ for(i in ((t-1)*mpq+1):((t-1)*mpq+mpq)) { LL=-0.5*(log(2*pi)-0.5*log(g[i]*tau[t])-0.5*(((y_mini[i]-param[1])^2)/(g[i]*tau[t]))) L=L+LL } } L } ### MLE ### start = param= c(0.1,0.1,0.1,0.1,0.1,0.1,0.1) estResults <- optim(param, loglikely, method="BFGS", hessian=T) param <- estResults$par hess <- estResults$hessian Is anyone familiar with this and could give me a clue? Any help would be appreciated! Thanks, Chris -- View this message in context: http://r.789695.n4.nabble.com/GARCH-MIDAS-model-tp4688514.html Sent from the Rmetrics mailing list archive at Nabble.com. _______________________________________________ R-SIG-Finance@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-finance -- Subscriber-posting only. If you want to post, subscribe first. -- Also note that this is not the r-help list where general R questions should go.