开始使用免费开始使用

重叠收益

当您通过将每日对数收益相加来聚合为更长区间时,可用于分析的观测数量会减少。为了保留数据量,您可以使用 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,按顺序合并 djxdjx21djx63,并赋给 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
___(___)
编辑并运行代码