#问题描述
我想用两列残差数据(error_vecmbear)建立BEKK-MGARCH模型,研究两序列间的波动性溢出效应。分别使用了R语言和WinRATS软件进行回归,但两者结果竟然有很大的差异...
#我的代码、数据和运行结果
我说一下我做的过程,首先我调用R里的mgarchBEKK包进行模型的回归
> library(mgarchBEKK)
> reg.bg.bear<-BEKK(error_vecmbear,order = c(1,1))
> diagnoseBEKK(reg.bg.bear)
虽然一直跳出H IS SINGULAR!...
的警告但还是得到了结果:参数的估计和标准误,如下
[,1] [,2]
[1,] 1.087655 0.5208569
[2,] 0.000000 0.1469451
ARCH estimates:
[,1] [,2]
[1,] -1.1179035 -0.5794303
[2,] 0.5500324 0.3890306
GARCH estimates:
[,1] [,2]
[1,] -0.9158138 -0.7075262
[2,] 0.8039013 1.2859277
asy.se.coef :
C estimates, standard errors:
[,1] [,2]
[1,] 0.0141451 0.01652167
[2,] 0.0000000 0.01017408
ARCH estimates, standard errors:
[,1] [,2]
[1,] 0.012398648 0.004009781
[2,] 0.005919568 0.001918433
GARCH estimates, standard errors:
[,1] [,2]
[1,] 0.007388403 0.003738719
[2,] 0.007278381 0.001407500
Called from: diagnoseBEKK(reg.bg.bear)
我不知道如何进行回归系数的t检验,主要是不知道对于这种复杂的模型,t检验的自由度应该如何选取。
然后我找来WinRATS软件进行回归,代码与输出如下
OPEN DATA "C:\Users\Administrator\Documents\error_vecmbear.xlsx"
DATA(FORMAT=XLSX,NOLABELS,ORG=COLUMNS,TOP=2) 1 54458 ERROR_RS ERROR_RF
GARCH(P=1,Q=1,MV=BEKK,NOMEAN) / ERROR_RS ERROR_RF
MV-GARCH, BEKK - Estimation by BFGS
NO CONVERGENCE IN 200 ITERATIONS
LAST CRITERION WAS 0.0004032
TRY INCREASING ITERS OPTION
Usable Observations 54458
Log Likelihood -235706.2556
Variable Coeff Std Error T-Stat Signif
************************************************************************************
1. C(1,1) 1.056524536 0.013876623 76.13701 0.00000000
2. C(2,1) 0.747133805 0.018564394 40.24553 0.00000000
3. C(2,2) -0.062182930 0.009885210 -6.29050 0.00000000
4. A(1,1) 1.232542158 0.013502027 91.28571 0.00000000
5. A(1,2) 0.855868605 0.015746252 54.35380 0.00000000
6. A(2,1) -0.527922137 0.006417656 -82.26090 0.00000000
7. A(2,2) -0.300589834 0.007278875 -41.29619 0.00000000
8. B(1,1) 0.552373185 0.005188866 106.45354 0.00000000
9. B(1,2) -0.337152087 0.005676561 -59.39372 0.00000000
10. B(2,1) 0.153626758 0.001108249 138.62118 0.00000000
11. B(2,2) 1.111506839 0.001561813 711.67731 0.00000000
#问题重申
可见R语言和WinRATS的结果具有显著区别,甚至正负都不同。(我试着将WinRATS的模型里的分布改成t分布,结果仍是不同)
请问各位大佬,可能是哪些地方出了问题导致了结果的差异?是H IS SINGULAR!...
的警告吗?
另外,如果已知BEKK-MGARCH模型系数的估计值和标准误,如何选取t检验的自由度?
#我的系统环境
R version 3.6.2 (2019-12-12)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18362)
Matrix products: default
locale:
[1] LC_COLLATE=Chinese (Simplified)_China.936
[2] LC_CTYPE=Chinese (Simplified)_China.936
[3] LC_MONETARY=Chinese (Simplified)_China.936
[4] LC_NUMERIC=C
[5] LC_TIME=Chinese (Simplified)_China.936
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] openxlsx_4.1.4 mgarchBEKK_0.0.2 mvtnorm_1.0-11
[4] fGarch_3042.83.1 fBasics_3042.89 tseries_0.10-47
[7] timeSeries_3042.102 timeDate_3043.102
loaded via a namespace (and not attached):
[1] Rcpp_1.0.3 MASS_7.3-51.4 lattice_0.20-38
[4] quadprog_1.5-8 TTR_0.23-6 tools_3.6.2
[7] xts_0.12-0 quantmod_0.4-15 grid_3.6.2
[10] nlme_3.1-142 urca_1.3-0 vars_1.5-3
[13] lmtest_0.9-37 zip_2.0.4 curl_4.3
[16] strucchange_1.5-2 sandwich_2.5-1 stringi_1.4.4
[19] compiler_3.6.2 spatial_7.3-11 zoo_1.8-7