重叠收益
当您通过将每日对数收益相加来聚合为更长区间时,可用于分析的观测数量会减少。为了保留数据量,您可以使用 rollapplyr() 函数计算重叠收益;但这也会在观测之间引入较强的相关性。
平均每个日历周有 5 个交易日。对每日指数数据的对数收益计算 5 日滑动求和,即可得到近似的、以各日历周结束日为末的重叠周度收益。类似地,计算 21 日滑动求和可得到近似的重叠月度收益,计算 63 日滑动求和可得到近似的重叠季度收益。
我们以 djx 中的道琼斯每日收益数据为例。由于每个滑动求和使用了 5 个值,结果中的前 4 个值为 NA。本例中我们将通过索引将其移除:
> djx5 <- rollapplyr(djx, width = 5, FUN = sum)
> head(djx5)
^DJI
2008-01-03 NA
2008-01-04 NA
2008-01-07 NA
2008-01-08 NA
2008-01-09 -0.02394677
2008-01-10 -0.01571869
> djx5 <- djx5[-(1:4)]
在本练习中,您将从已加载到工作区的 djx 计算不同区间的滑动求和。随后将像之前的练习一样,计算所得数据的偏度与峰度,并进行 Jarque-Bera 检验。重叠收益看起来更接近正态分布吗?
本练习是课程的一部分
R 中的定量风险管理
练习说明
- 计算
djx对数收益的 21 日滑动求和,移除前 20 个值,并赋给djx21。 - 计算
djx对数收益的 63 日滑动求和,移除前 62 个值,并赋给djx63。 - 使用
merge()且设定all = FALSE,按顺序合并djx、djx21和djx63,并赋给djx2。使用plot.zoo()作图。 - 使用
apply()和相应函数,计算djx2中每个序列的偏度与峰度。 - 使用
apply()和相应函数,对djx2中每个序列进行 Jarque-Bera 检验。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Calculate a 21-day moving sum of djx
djx21 <- ___(___, ___, ___)[___]
# Calculate a 63-day moving sum of djx
djx63 <- ___(___)[___]
# Merge the three series and plot
djx2 <- ___(___)
___(___)
# Compute the skewness and kurtosis for each series in djx2
___(___)
___(___)
# Conduct the Jarque-Bera test to each series in djx2
___(___)