目前,我已将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列,其中包含每周相关系数的平均值。我怎样才能做到这一点?
提前致谢!
答案 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
的第三维(在每个相关矩阵上),取上三角形元素并对它们求平均值。