【发布时间】:2020-11-15 23:29:46
【问题描述】:
我有一个如下所示的面板数据集:
head(panel_data)
date symbol close rv rv_plus rv_minus rskew rkurt Mkt.RF SMB HML
1 1999-11-19 a 25.4 19.3 6.76 12.6 -0.791 4.36 -0.11 0.35 -0.5
2 1999-11-22 a 26.8 10.1 6.44 3.69 0.675 5.38 0.02 0.22 -0.92
3 1999-11-23 a 25.2 8.97 2.56 6.41 -1.04 4.00 -1.29 0.08 0.3
4 1999-11-24 a 25.6 5.81 2.86 2.96 -0.505 5.45 0.87 0.08 -0.89
5 1999-11-26 a 25.6 2.78 1.53 1.25 0.617 5.60 0.23 0.92 -0.2
6 1999-11-29 a 26.1 5.07 2.76 2.30 -0.236 7.27 -0.6 0.570 -0.14
其中变量符号表示不同的股票。我想计算变量 rskew 和 rkurt 之间横截面相关性的时间序列平均值。这意味着我需要计算每个时间点所有不同股票的 rskew 和 rkurt 之间的相关性,然后计算时间序列平均值。
我尝试使用 zoo 包中的 rollapply 函数来完成此操作,但由于所有日期的不同股票数量不同,我不能简单地将 width 定义为整数。这是我为 20 个样本 width 尝试的:
panel_data <- panel_data %>%
group_by(date) %>%
mutate(cor_skew_kurt = rollapply(data = panel_data[7:8],
width=20,
FUN=cor,
align="right",
na.rm=TRUE,
fill=NA)) %>%
ungroup
有没有办法做到这一点而不必为每个日期组定义一个固定的width?
或者我应该使用不同的方法来做到这一点?
【问题讨论】:
标签: r time-series correlation