首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R fGarch: garchSpec()的预样矩阵

R fGarch: garchSpec()的预样矩阵
EN

Stack Overflow用户
提问于 2016-08-04 14:03:26
回答 1查看 406关注 0票数 0

我试图通过函数fGarch::garchSpec()来指定GARCH模型,我需要一个指定的预示例。如手册中所界定的:

预置:一个数值三列矩阵,其中包含序列、创新和条件方差的起始值。

但我很肯定,这不是正确的顺序。在阅读了函数的手册和代码:“garchFit”、“garchSpec”、“garchSim”之后,我仍然很困惑。

问题是:如何准确地构建presample矩阵?

EN

回答 1

Stack Overflow用户

发布于 2016-08-04 16:08:22

您不需要为presample设置参数。它将提供一个“很好”的猜测,在估计参数时,这并不重要。如果你想模拟数据,那么我只需要确保燃耗,n.start,足够大。

让我们看一个例子:

代码语言:javascript
复制
library(fGarch)
## First we simulate some data without setting presample:
# we set up the model by spec:
set.seed(911)
spec <- garchSpec(model = list(mu = 0.02, omega = 0.05, alpha = 0.2, beta = 0.75))
# then simulate our GARCH(1,1) model:
garchSim <- garchSim(spec, n = 200, n.start = 1)
plot(garchSim)

和估计数:

代码语言:javascript
复制
    > garchFit(~ garch(1, 1), data = garchSim)
Error Analysis:
        Estimate  Std. Error  t value Pr(>|t|)    
mu      -0.02196     0.05800   -0.379   0.7049    
omega    0.03567     0.02681    1.331   0.1833    
alpha1   0.12074     0.04952    2.438   0.0148 *  
beta1    0.84527     0.05597   15.103   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Log Likelihood:
 -265.8417    normalized:  -1.329209 

现在,让我们尝试添加一个非常xtreme的特征码。在上面的模型(和这个种子)中,presample是:

代码语言:javascript
复制
> spec@presample
Presample: 
  time          z h    y
1    0 -0.4324072 1 0.02

现在我们用c(100, 0.1, 0.1)代替它。因为我的模型是一个GARCH(1,1),没有任何ARMA部分,所以我只需要设置3个参数,就像文档?garchSpec中描述的那样。在更新spec之后,我们估计相同的模型:

代码语言:javascript
复制
set.seed(911)
spec@presample <- matrix(c(0.1, 0.1, 0.1), ncol = 3)
garchFit(~ garch(1, 1), data = garchSim)

具有相同的输出:

代码语言:javascript
复制
Error Analysis:
        Estimate  Std. Error  t value Pr(>|t|)    
mu      -0.02196     0.05800   -0.379   0.7049    
omega    0.03567     0.02681    1.331   0.1833    
alpha1   0.12074     0.04952    2.438   0.0148 *  
beta1    0.84527     0.05597   15.103   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Log Likelihood:
 -265.8417    normalized:  -1.329209 

可能性和估计是相同的,但是请注意当我们使用新的spec进行模拟时

代码语言:javascript
复制
set.seed(911)
garchSim <- garchSim(spec, n = 200, n.start = 1)
plot(garchSim)

,所提供的极端初始样本打乱了我们的模拟。但通过增加burn.in,我们可以得到:

代码语言:javascript
复制
set.seed(911)
garchSim <- garchSim(spec, n = 200, n.start = 100)
plot(garchSim)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38769583

复制
相关文章

相似问题

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