首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R fGarch的输出

R fGarch的输出
EN

Stack Overflow用户
提问于 2021-03-10 02:00:03
回答 2查看 102关注 0票数 1

我将时间序列建模为GARCH(1,1)-process:

和z_t是t分布的。

在R中,我通过以下方式在fGarch-package中执行此操作

代码语言:javascript
复制
model <- garchFit(formula = ~garch(1,1), cond.dist = "std", data=r)

这是正确的吗?

现在,我想了解一下这个函数的输出,以检查我的公式。

显然,model@fit$coefs给了我系数,model@fitted给了我拟合的r_t。

但是怎样才能得到合适的sigma_t和z_t呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-10 03:05:37

我认为最好的方法是在泛型不可用时定义提取器函数,在泛型已经存在时定义方法。

前两个函数从拟合的对象中提取感兴趣的值。

代码语言:javascript
复制
get_sigma_t <- function(x, ...){
  x@sigma.t
}
get_z_t <- function(x, ...){
  x@fit$series$z
}

这里为类"fGARCH"的对象定义了一个logLik方法。

代码语言:javascript
复制
logLik.fGARCH <- function(x, ...){
  x@fit$value
}

现在使用函数,包括方法。数据来自help("garchFit")中的第一个示例。

代码语言:javascript
复制
N <- 200
r <- as.vector(garchSim(garchSpec(rseed = 1985), n = N)[,1])
model <- garchFit(~ garch(1, 1), data = r, trace = FALSE)

get_sigma_t(model) # output not shown
get_z_t(model)     # output not shown

logLik(model)
#LogLikelihood 
#    -861.9494 

还要注意,coeffitted方法是存在的,不需要model@fittedmodel@fit$coefs,就像问题中所写的那样。

代码语言:javascript
复制
fitted(model)  # much simpler
coef(model)
#          mu        omega       alpha1        beta1 
#3.541769e-05 1.081941e-06 8.885493e-02 8.120038e-01 
票数 1
EN

Stack Overflow用户

发布于 2021-03-10 02:14:20

它是一个list结构。可以通过以下命令找到结构:

代码语言:javascript
复制
str(model)

从结构上看,使用$@更容易提取

代码语言:javascript
复制
model@fit$series$z
model@sigma.t
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66552323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档