聚合到更低频率

在 R 中导入与管理金融数据

Joshua Ulrich

Quantitative Analyst & quantmod Co-Author and Maintainer

低频数据

  • 时间戳精度过高
  • 表示 2017 年第一季度
    • "2017-01-01"(首日)
    • "2017-03-31"(末日)
    • "2017-02-01"(中间)
在 R 中导入与管理金融数据

示例

  • 比较10年期美债常备到期收益率(日频)与美国国内生产总值(季度)
  • FRED 符号:
    • DGS10
    • GDP
在 R 中导入与管理金融数据

将聚合数据与低频数据合并

# 聚合到季度
QGS10 <- apply.quarterly(DGS10, median, na.rm = TRUE)

# 将季度聚合与季度 GDP 合并 QGS10_GDP <- merge(QGS10, GDP) QGS10_GDP
           DGS10     GDP
2015-01-01    NA 17783.6
2015-03-31  1.97      NA
2015-04-01    NA 17998.3
2015-06-30  2.19      NA
2015-07-01    NA 18141.9
2015-09-30  2.20      NA
2015-10-01    NA 18222.8
2015-12-31  2.23      NA
在 R 中导入与管理金融数据

低频日期时间类

  • 月频用 yearmon()
  • 季度用 yearqtr()
as.Date("2017-01-01")
"2017-01-01"
as.yearmon("2017-01-01")
"Jan 2017"
as.yearqtr("2017-01-01")
"2017 Q1"
在 R 中导入与管理金融数据

将索引转换为最低频率

# 将两个索引都转换为 yearqtr
index(QGS10) <- as.yearqtr(index(QGS10))
index(GDP) <- as.yearqtr(index(GDP))
# 合并会"自动起效"
merge(QGS10, GDP)
        DGS10     GDP
2015 Q1  1.97 17783.6
2015 Q2  2.19 17998.3
2015 Q3  2.20 18141.9
2015 Q4  2.23 18222.8
在 R 中导入与管理金融数据

与期初时间戳对齐

# 最后一次观测向后填充
QGS10_GDP_locb <- na.locf(QGS10_GDP, fromLast = TRUE)
# 以期初索引取子集
QGS10_GDP_first_period <- QGS10_GDP_locb[index(GDP)]
QGS10_GDP_first_period
          DGS10     GDP
2015-01-01  1.97 17783.6
2015-04-01  2.19 17998.3
2015-07-01  2.20 18141.9
2015-10-01  2.23 18222.8
在 R 中导入与管理金融数据

Passons à la pratique !

在 R 中导入与管理金融数据

Preparing Video For Download...