全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
3855 7
2014-02-15
在论坛学习了如何用rats做bekk但是关于均值方程的设定有个疑问
论坛里所有关于bekk均值方程的设定都是var1 下面是别人的例子出的结果 均值方程给出的结果是滞后一阶的估计参数
DATA(FORMAT=XLS,ORG=COLUMNS) 1 434 x y z
system(model=var1)
variables x y z
lags 1
det constant
end(system)
garch(p=1,q=1,model=var1,mv=bek,pmethod=simplex,piters=10,hmatrices=hh,rvectors=rd) / x y z


MV-GARCH, BEKK - Estimation by BFGS
Convergence in    77 Iterations. Final criterion was  0.0000064 <=  0.0000100
Usable Observations                       432
Log Likelihood                      3026.1467

    Variable                        Coeff      Std Error      T-Stat       Signif
*************************************************************************************
1.  X{1}                         -0.005681052  0.042182643      -0.13468  0.89286689
2.  Y{1}                          0.068098998  0.197489507       0.34482  0.73022716
3.  Z{1}                         -0.023773553  0.080082026      -0.29687  0.76656955
4.  Constant                      0.004376604  0.002421513       1.80738  0.07070243
5.  X{1}                          0.009893496  0.009534192       1.03769  0.29941636
6.  Y{1}                          0.129267762  0.052447667       2.46470  0.01371280
7.  Z{1}                          0.045654758  0.018480905       2.47037  0.01349716
8.  Constant                      0.000927131  0.000469426       1.97503  0.04826440
9.  X{1}                         -0.007968928  0.025390832      -0.31385  0.75363452
10. Y{1}                         -0.129295524  0.103890485      -1.24454  0.21330209
11. Z{1}                         -0.370264625  0.049216805      -7.52313  0.00000000
12. Constant                      0.003166876  0.001201737       2.63525  0.00840757
13. C(1,1)                        0.010470111  0.004108026       2.54870  0.01081264
14. C(2,1)                       -0.003200314  0.002657717      -1.20416  0.22852809
15. C(2,2)                        0.006062803  0.001474474       4.11184  0.00003925
16. C(3,1)                       -0.007555098  0.005658594      -1.33515  0.18182576
17. C(3,2)                       -0.010125287  0.004113701      -2.46136  0.01384124
18. C(3,3)                       -0.000000077  0.008905143 -8.66976e-006  0.99999308
19. A(1,1)                        0.183437301  0.044746618       4.09947  0.00004141
20. A(1,2)                        0.057532441  0.011440854       5.02868  0.00000049
21. A(1,3)                       -0.001163036  0.032248371      -0.03606  0.97123057
22. A(2,1)                       -0.381892642  0.219978107      -1.73605  0.08255528
23. A(2,2)                        0.495114684  0.054595358       9.06881  0.00000000
24. A(2,3)                       -0.069962076  0.175757433      -0.39806  0.69058566
25. A(3,1)                        0.244624071  0.090151690       2.71347  0.00665822
26. A(3,2)                       -0.115430757  0.021647282      -5.33234  0.00000010
27. A(3,3)                        0.188254692  0.075429650       2.49577  0.01256858
28. B(1,1)                        0.929253198  0.028930368      32.12034  0.00000000
29. B(1,2)                       -0.013721378  0.012073675      -1.13647  0.25575961
30. B(1,3)                       -0.065867002  0.031812336      -2.07049  0.03840684
31. B(2,1)                        1.023503209  0.337538388       3.03226  0.00242732
32. B(2,2)                        0.522959901  0.088219447       5.92794  0.00000000
33. B(2,3)                        1.187164354  0.241157072       4.92278  0.00000085
34. B(3,1)                        0.102660861  0.201191765       0.51026  0.60986671
35. B(3,2)                       -0.067458069  0.039619451      -1.70265  0.08863353
36. B(3,3)                        0.619566704  0.146433702       4.23104  0.00002326
但是我自己做的滞后阶数不是1阶 尝试了下var5  给出的结果只是把之前的var滞后一阶替换成了var滞后5阶的估计值 并没有显示出滞后1到4阶的参数值 请问是什么原因 (还是上面那个例子 )
DATA(FORMAT=XLS,ORG=COLUMNS) 1 434 x y z
system(model=var5)
variables x y z
lags 5
det constant
end(system)
garch(p=1,q=1,model=var5,mv=bek,pmethod=simplex,piters=10,hmatrices=hh,rvectors=rd) / x y z
   Variable                        Coeff      Std Error      T-Stat       Signif
*************************************************************************************
1.  X{5}                         -0.005681052  0.042182643      -0.13468  0.89286689
2.  Y{5}                          0.068098998  0.197489507       0.34482  0.73022716
3.  Z{5}                         -0.023773553  0.080082026      -0.29687  0.76656955
4.  Constant                      0.004376604  0.002421513       1.80738  0.07070243
5.  X{5}                          0.009893496  0.009534192       1.03769  0.29941636
6. Y{5}                          0.129267762  0.052447667       2.46470  0.01371280
7.  Z{5}                          0.045654758  0.018480905       2.47037  0.01349716
8.  Constant                      0.000927131  0.000469426       1.97503  0.04826440
9.  X{5}                         -0.007968928  0.025390832      -0.31385  0.75363452
10. Y{5}                         -0.129295524  0.103890485      -1.24454  0.21330209
11. Z{5}                         -0.370264625  0.049216805      -7.52313  0.00000000
12. Constant                      0.003166876  0.001201737       2.63525  0.00840757
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-2-15 10:49:26
另外均值方程可以设置为vecm么?
还有我看上面结果 B(2,1) 为1.023503209   比1大 有经济意义么?
希望有人能帮忙解答下 感激不尽啊!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-2-16 10:06:30
有人能帮忙解答下么?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-2-23 08:49:45
你好, 回答你的第一个问题, VAR(5) - BEKK  mean equation 的code 应该是
system(model=var1)
variables x y z
lags 1 2 3 4 5 或者是1 to 5

第二个VECM的问题:完全可以,现在有挺多人这么做的, 但是你考虑一下,如果你是用价格收益率来做GARCH的话,也就是说你的数据是如下的格式: x=ln(x(t)/x(t-1))或者是x=100*ln(x(t)/x(t-1)), 那么这条数据八成是平稳的,如果三条数据都平稳,为什么要做cointegration呢? 在多元时间序列中, 平稳数据直接做Vector ARMA模型,非平稳数据如果是cointegrated的话,就可以做VECM。 所以我认为没有必要做VECM, 但是很多论文有做的,目的是概括残差里面的信息。

回答你的第三个问题, B(2,1)是off-diagonal 的上面的元素,这个和你数据的scale有关系,我感觉你数据八成是乘过100的收益率。要看BEKK的平稳性,在你run完BEKK之后,请使用如下命令 (好像适用于RATS8.0或者8.3版本):
@MVGARCHtoVECH(mv=bekk)
eigen(cvalues=cv) %%vech_a+%%vech_b
disp "Eigenvalues from BEKK" *.### cv
这个命令的意思是,把BEKK评估出来的参数转换成VECH - GARCH 模型(最早的多元GARCH模型)的参数(也就是%%vech_a 和%%vech_b ),然后看%%vech_a+%%vech_b的eigen values是不是在(1,-1)之内,如果是的话,就证明这个模型是平稳的。

不过,BEKK的话好像没有那么简单的解释,所以要是eigenvalue大于1的话,模型好像也是成立的,但是结果99%不make sense。(这个地方我也不是很清楚了)。 不过就你这个问题来看,你要想想这个参数合理不合理,把这个参数平方了,这个参数的大致意思(注意只是大致意思)就是: 市场 2(市场y) 的自身风险的上升会导致市场 1 (市场x)自身风险更大的上升。

想解决这个问题,我建议,试试另外两个RATS中自带的distribution,t 和 generalized error distribution, 可能模型结果会好很多。
你可以种AICc和BIC比较,哪个模型AICc和BIC最小,哪个模型最好(这算是比较不准确的表达,不过大致就是选最小的)
下面的code是计算AICc和BIC的 请在run完BEKK之后使用,(AICc是AIC的升级版,用AIC也可以)
disp "BIC" -2.0*%logl+(%nreg)*log(%nobs)
disp "AICC" 2.0*(%nreg)-2.0*%logl+(2.0*(%nreg)*(%nreg+1))/%nobs-(%nreg)-1

用另外两个distribution的原因是,金融的数据的distribution很可能不是normal的,很可能是fat tail (峰度(kurtosis)大于3,或者多余峰度(excess kurtosis) 大于0。 在多元garch中的话,我上面所说的distribution都是 joint distribution (联立分布)。 但是使用这两个distribution和normal distribution比的话可能会产生矛盾的AICc和BIC。原因是,在estimation中,如果使用另外两个非normal的distribution的话,你需要多评估一个参数,但是AICc和BIC对有很多参数的模型的惩罚不一样,AICc会偏向于选择更复杂的模型(参数多),BIC会偏向于精简的模型(参数少)。 这样情况下,举例子,如果你在比较用了t distribution estimate 出来的BEKK 和nomal distribution estimate 出来的BEKK 模型时,可能AICc会偏向于第一个模型(因为要多评估一个t distribution的degree of freedom),但是BIC可能会偏向于第二个模型(因为少一个参数)。 如果要是出现了这样的情况,有很多人的做法是只看一个标准,忽略另一个。 我导师教我的做法是,你可以做一个do loop,来手选非normal distribution的参数。以t distribution为例,(t distribution的性质是: degree of freedom >2,  degreedom->无限大时,t distribution 就变成了normal) 你可以把你的code改成:
system(model=var1)
variables x y z
lags 1
det constant
end(system)
do i=2,10
garch(p=1,q=1,model=var1,mv=bek,pmethod=simplex,piters=10,hmatrices=hh,rvectors=rd,iters=500,dist=t,shape=i) / x y z
disp "BIC" -2.0*%logl+(%nreg)*log(%nobs)
disp "AICC" 2.0*(%nreg)-2.0*%logl+(2.0*(%nreg)*(%nreg+1))/%nobs-(%nreg)-1
end do i
这条命令是让RATS run 9 个BEKK model with t distribution,当t distribution 的degree of freedom = 2 到 10 的时候。 这样的话,你就可以从这些模型中选出AICc 和BIC 最小的,然后要和BEKK with normal distribution的AICc 和BIC 相比,这样一般就可以解决AICc 和BIC 矛盾的问题了。 这只是个例子, 你可以把do loop 的次数加到 20 (例如: do i=2,20), 一般来说,当t distribution 的degree of freedom到了15,16,20几的时候,这个distribution就基本是normal 的了。

说了这么多technical的东西,最后一点是,就算AICc和BIC还有log likelihood都好的不得了,但是做出来的参数都很不make sense (比如,某个parameter=532134.5838这样的荒唐结果),你还是要重新来做的。 做完了BEKK garch 别忘了做 diagnostic哈。而且BEKK现在也做非对称的了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-2-25 14:30:14
楼主你好,我现在也准备做bekk模型,可是论坛里没有找到相关资料,请问你在论坛哪里学的呢,给否给几个帖子链接,谢谢了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-3-25 17:01:23
zx92187 发表于 2014-2-23 08:49
你好, 回答你的第一个问题, VAR(5) - BEKK  mean equation 的code 应该是
system(model=var1)
varia ...
这位大侠,,我是初学者,,非常感谢你这么详细的说明,,不知道您能否告诉我如何做波动率溢出的参数检验,,跪求,,,
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群