如何在R中进行DCC-GARCH估计后计算每年的平均相关系数?

时间:2018-03-31 21:25:47

标签: r time-series correlation forecasting

目前,我已将DCC-GARCH模型拟合到我的财务报表数据中,并通过此可重现的代码估算相关系数:

library(rugarch)
library(rmgarch)
data(dji30retw)
Dat = dji30retw[, 1:8, drop = FALSE]
uspec = ugarchspec(mean.model = list(armaOrder = c(0,0)), variance.model = list(garchOrder = c(1,1), model = "eGARCH"), distribution.model = "norm")
spec1 = dccspec(uspec = multispec(replicate(8, uspec)), dccOrder = c(1,1),  distribution = "mvnorm")
fit1 = dccfit(spec1, data = Dat)
print(fit1)
r1=rcor(fit1, type="cor")

现在,我需要创建一个数据框,其中包含1列,其中包含每周相关系数的平均值。我怎样才能做到这一点?

提前致谢!

1 个答案:

答案 0 :(得分:0)

看起来像你想要的是

Dat$meancor <- apply(r1, 3, function(r) mean(r[upper.tri(r)]))

head(Dat, 2)
#                      AA          AXP           BA         BAC           C        CAT         CVX          DD   meancor
# 1987-03-27 -0.005952399 -0.007942854 -0.008866429 -0.03119837 -0.02586351 0.01587335 -0.02204814 0.006389798 0.3786852
# 1987-04-03  0.005952399 -0.025849581 -0.010230268  0.00000000 -0.01762160 0.04113691  0.06324389 0.035457312 0.375325

为实现这一点,apply超越r1的第三维(在每个相关矩阵上),取上三角形元素并对它们求平均值。