装配GARCH@CARR带R的模型

装配GARCH@CARR带R的模型,r,mle,R,Mle,我试着穿上合适的衣服GARCH@CARR(此处建议:)具有R的函数。 它不是rugarch软件包的一部分,我用于其他GARCH模型。 我试着自己用optim和mle对它进行建模,但因为我对R的工作还很陌生,所以没有得到任何有用的东西。我使用从yahoo.finance获得的SP500日志返回和日志范围。 模型说明如下: getSymbols("^GSPC",from="2000-01-01", to="2020-08-01") Data

我试着穿上合适的衣服GARCH@CARR(此处建议:)具有R的函数。 它不是rugarch软件包的一部分,我用于其他GARCH模型。 我试着自己用optim和mle对它进行建模,但因为我对R的工作还很陌生,所以没有得到任何有用的东西。我使用从yahoo.finance获得的SP500日志返回和日志范围。 模型说明如下:

getSymbols("^GSPC",from="2000-01-01", to="2020-08-01")
Data_SP500<-subset(GSPC, select = 6)
##compute daily log return
return_SP500<-Data_SP500[2:length(Data_SP500),0]
for (n in 2:length(Data_SP500)) {
  return_SP500[n]<-log(as.numeric(Data_SP500[n])/as.numeric(Data_SP500[n-1]))
}  

Range_Data_SP500<-subset(GSPC, select = c(2,3))

##compute Range
Range_SP500<-Data_SP500[1:length(Data_SP500),0]
for (n in 1:nrow(Range_Data_SP500)) {
  Range_SP500[n]<-log(as.numeric(Range_Data_SP500[n,1]))-log(as.numeric(Range_Data_SP500[n,2]))
}
#delete NA
return_SP500<-na.omit(return_SP500)
Range_SP500<-na.omit(Range_SP500)

Data_SP500_1<-merge.xts(Rendite_SP500,Range_SP500)
Data_SP500_1<-na.omit(Data_SP500_1)

#GARCH@CARR Model
#p=q=1
#r_t = roh * lambda_t * z_t, z_t~N(0,1) 
#ln(lambda_t) = omega + alpha_1 * ln(lambda_t-1) + beta_1 * ln(x_t-1) + pi_1 * z_t-1
#x_t = lambda_t * u_t, u_t~LN(-sigma^2/2,sigma)
这里列出了导致此错误的3种可能原因,我看不出哪种原因与此问题相关,也看不出如何解决此问题。 不幸的是,从其中一个包中选择标准的方法不是一个选项,因为这个模型不属于任何包的一部分,我已经看到了

#GARCH CARR
N <- nrow(Data_SP500_1)#length Timeseries
r <- Data_SP500_1[,1]#returnseries
x <- Data_SP500_1[,2]#Rangeseries

LL <- function(alpha0,beta1,gamma1,roh,mu1,sigma1,mu2,sigma2) {
  # Find residuals
  #
  lambda=mean(Data_SP500_1[,2])
  y1 = r - roh * lambda
  y2 <-for (i in 2:N) {
    lambda[i] - exp(alpha0 + beta1*log(lambda[i-1]) + gamma1*log(x[i-1]))
  } 
  y3 = x - lambda
  #
  # Calculate the likelihood for the residuals (with mu and sigma as parameters)
  #
  R1 = suppressWarnings(dnorm(y1, mu1, sigma1,log = T))
  R3 = suppressWarnings(dlnorm(y3, mu2, sigma2,log = T))
  #
  # Sum the log likelihoods for all of the data points
  #
  -sum(R1+R3)
}
fit <- mle(LL, start = list(alpha0=0.2, beta1=0.4, gamma1=0.2, roh=1, mu1=0, sigma1=1, mu2=0, sigma2=lambda[1]))

Error in optim(start, f, method = method, hessian = TRUE, ...) : 
  initial value in 'vmmin' is not finite