低頻度への集計

Rで学ぶ金融データのインポートと管理

Joshua Ulrich

Quantitative Analyst & quantmod Co-Author and Maintainer

低頻度データ

  • タイムスタンプは解像度が高すぎる
  • 2017年Q1を表す
    • "2017-01-01"(期首)
    • "2017-03-31"(期末)
    • "2017-02-01"(中間)
Rで学ぶ金融データのインポートと管理

  • 日次の10年物財務省定常満期利回りを米国GDP(四半期)と比較
  • 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...