1

我想ccgarch在 R 中使用包。首先,这个包中的初始值是什么?如何指定这些值?

此外,我该如何使用loglik.eccc和定义param它?例如,当我有 时param=c(1,2,3,4,5,6,7,8,9,10,11,12,13,14),此参数不会更改,并且我有之前的默认值param

# computing a likelihood value for the (E)CCC-GARCH(1,1) mdoel
   loglik.eccc <- function(param, dvar, model){
      nobs <- dim(dvar)[1]
      ndim <- dim(dvar)[2]
      para.mat <- p.mat(param, model, ndim)
      a <- para.mat$a
      A <- para.mat$A
      B <- para.mat$B
      R <- para.mat$R

      # check if R is positive definite
      eigenR <- eigen(R)$values
      if(max(abs(R[lower.tri(R)]))>1.0||min(eigenR)<0||!is.double(eigenR)){
         R <- diag(ndim)
      }
      h <- vector.garch(dvar, a, A, B)
      z <- dvar/sqrt(h)
      lndetR <- log(det(R))
      invR <- solve(R)
      lf <- -0.5*nobs*ndim*log(2*pi) - 0.5*sum(log(h)) - 0.5*nobs*lndetR - 0.5*sum((z%*%invR)*z)
      -lf

   }
4

1 回答 1

1

我想在 R 中使用 ccgarch 包。首先,这个包中的初始值是什么?

我很确定没有默认参数。如果您尝试在未指定的情况下运行您的代码,param您应该会得到类似的东西(注意:我是使用命令执行此操作的loglik.dcc):

Error in loglik.dcc(dvar = my.df, model = "diagonal") : 
argument "param" is missing, with no default

如何指定这些值?

我建议您查看 ccgarch 包文档中的示例。虽然没有给出例子loglik.eccc,但是有一个很好的例子loglik.dcc

可以在此处访问文档。第 24/25 页上的示例如下:

## Not run:
# Simulating data from the original DCC-GARCH(1,1) process
  nobs <- 1000; cut <- 1000
  a <- c(0.003, 0.005, 0.001)
  A <- diag(c(0.2,0.3,0.15))
  B <- diag(c(0.75, 0.6, 0.8))
  uncR <- matrix(c(1.0, 0.4, 0.3, 0.4, 1.0, 0.12, 0.3, 0.12, 1.0),3,3)
  dcc.para <- c(0.01,0.98)
  dcc.data <- dcc.sim(nobs, a, A, B, uncR, dcc.para, model="diagonal")

# Estimating a DCC-GARCH(1,1) model
  dcc.results <- dcc.estimation(inia=a, iniA=A, iniB=B, ini.dcc=dcc.para,
  dvar=dcc.data$eps, model="diagonal")
# Parameter estimates and their robust standard errors
  dcc.results$out
# Computing the value of the log-likelihood at the estimates
  loglik.dcc(dcc.results$out[1,], dcc.data$eps, model="diagonal")
## End(Not run)

dcc.results$out将向您显示估计的参数:

> dcc.results$out
                   a1         a2          a3         A11       A22        A33          B11        B22        B33   dcc alpha
estimates 0.002390773 0.00477909 0.001010304 0.199707914 0.2738877 0.13370911 0.7644433750 0.61175081 0.82020157 0.018729549
std.err   0.000703168 0.03576364 0.032840012 0.001213087 0.0439388 0.05675561 0.0003626412 0.02548092 0.03398187 0.008090084
            dcc beta
estimates 0.93071563
std.err   0.03659041

您可以在计算中使用它loglik.dcc

loglik.dcc(dcc.results$out[1,], dcc.data$eps, model="diagonal")
[1] 6316.604

由此得出结论,您可以:

1.自己设置一个参数向量

您的示例param=c(1,2,3,4,5,6,7,8,9,10,11,12,13,14)违反了一些非常重要的模型限制。我强烈建议您阅读更多有关您正在研究的模型的限制的信息(我发现这在所有 GARCH 模型的祖父 Robert Engle 的第 160 页的这篇期刊文章中得到了很好的叙述。)

简而言之:您可以在上面的估计参数中看到它们都在 Range 中0 < a, A and B < 1。如果您追求某些东西,请根据这些参数定位自己。

2. 根据您的数据估算它们,并如上例所示使用它们。

请注意,该示例适用于 3 系列。如果您使用更多/更少的尺寸,您将需要调整初始参数。例如,该ccgarch2软件包将让您在不设置初始值的情况下进行估算。它将随机生成它们。

此外,我如何使用 loglik.eccc 并为其定义参数?

这应该包含在上面的示例/叙述中。

于 2017-04-13T15:58:46.037 回答