r语言 - 量子模 - 切碎数据并构建返回序列矩阵



我这学期的R作业遇到了问题。

这是我的任务,我对此感到困惑:

iv. 从 Fred 下载 1993 年 1 月 1 日至 2013 年 12 月 31 日相同样本期的 3 个月 TBill 费率。

  • 有用的提示:您可能需要切碎数据以匹配采样周期。

v. 构建一个回报序列矩阵,结合样本期的股票、标准普尔500指数和TBill。

有用的提示:

  • 请注意,尽管月份和年份匹配,但 TBill 的行名可能与其他两个返回序列不匹配,因为日期不匹配

  • 您必须将每个系列的行名称构造为年-月格式(例如 1993-01(或从 T-bill 中删除行名,然后才能将所有三个系列合并为一个 Return 矩阵。

  • 在使用
  • lm(( 函数之前,必须将返回矩阵转换为数据帧。

我在下面尝试过这个,就像我之前在 SPY 和 AAPL 中使用过 getSymbol 一样,但它提取了整个数据集而不是特定的日期范围。如何切碎数据以使其符合所需的日期范围?

getSymbols('TB3MS', src = 'FRED', from = "1993-01-01", to = "2013-12-31")

接下来,我将如何构建结合所有股票的回报序列矩阵?谁能指出我正确的方向?

过滤 xts 对象:请参阅 xts 文档中的示例?xts

# filter 1993 until 2013
TB3MS["1993/2013"]

但是这些日期是的,因为 tbills 是在每月的第一天,所以股票日期是该月的最后一天。使用coredata,您可以提取 tbill 数据,并在行匹配时将其粘贴到其他时间序列中。

以您上一个问题中的数据为例,您可以执行以下操作(我正在创建比需要更多的步骤,您可以将一些语句合并为一个(:

# create monthly returns of the spy data and give the column a better name than monthly.returns
spy_returns <- monthlyReturn(SPY)
colnames(spy_returns) <- "SPY_returns"
# filter the tbill data
TB3MS_1993_2013 <- TB3MS["1993/2013"]
# add tbill data to spy data
spy_returns$TB3MS <- coredata(TB3MS_1993_2013)

合并 xts 对象只需使用merge即可完成。它们将在日期合并。

merge(spy_returns, aapl_returns)将把这两者结合起来。如果您有很多股票代码,请使用Reduce(查看帮助和SO了解如何将Reducemerge一起使用(,但如果允许,最好使用tidyquant包。

最新更新