尝试估计 R 中的 GARCH 模型时出错

Error when attempting to estimate GARCH model in R

这是我用来创建时间序列的代码:

#Violent Crimes Time Series
violent <- crime[,1]
viol.ts <- ts(violent, start=1960, end=2013, frequency=1)
viol.train <- window(viol.ts, start=1960, end=2003)
viol.test <- window(viol.ts, start=2004)
ts.plot(viol.ts, type="l", xlab="Year", ylab="Total Crimes", main="Violent Crime, 1960-2013")

这是我用来估计 GARCH 模型的代码:

#GARCH
viol.g <- garchFit(~arma(1,1) + garch(1,1), viol.ts)
summary(viol.g)
plot(viol.g)
plot(viol.g@h.t, type="l")
plot (viol.g@fitted, type="l")

我一直收到错误消息

Error in solve.default(fit$hessian) : system is computationally singular: reciprocal condition number = 3.27071e-20

不知道出了什么问题。

system is computationally singular 表示无法获得对数似然的二阶导数的倒数 w.r.t。参数(fit$hessian)。 MLE 估计最小化对数似然函数的参数,但如果没有它,就不可能满足二阶条件 - 这是理论上的,包的实际实现可能不同。

使用随机样本,该函数可以正常运行,如下所示,您可以检查您的数据。

library(fGarch)

#Violent Crimes Time Series
set.seed(1237)
violent <- sample(log(10:30), 53, replace = TRUE)
viol.ts <- ts(violent, start=1960, end=2013, frequency=1)
viol.train <- window(viol.ts, start=1960, end=2003)
viol.test <- window(viol.ts, start=2004)
ts.plot(viol.ts, type="l", xlab="Year", ylab="Total Crimes", main="Violent Crime, 1960-2013")

#GARCH
viol.g <- garchFit(~arma(1,1) + garch(1,1), viol.ts)
summary(viol.g)
plot(viol.g)
plot(viol.g@h.t, type="l")
plot (viol.g@fitted, type="l")

Title:
  GARCH Modelling 

Call:
  garchFit(formula = ~arma(1, 1) + garch(1, 1), data = viol.ts) 

Mean and Variance Equation:
  data ~ arma(1, 1) + garch(1, 1)
<environment: 0x0000000030109de0>
  [data = viol.ts]

Conditional Distribution:
  norm 

Coefficient(s):
  mu          ar1          ma1        omega       alpha1        beta1  
5.42739444  -0.83160492   0.90173149   0.06406353   0.00000001   0.39089064