【问题标题】:Remote holidays and Weekends from timeseries in RR中时间序列的远程假期和周末
【发布时间】:2021-09-29 00:20:51
【问题描述】:

我想使用 Pearson 相关性来检测加密货币与 EUR/USD 之间的相关性。

我选择使用从 2020 年 11 月 1 日到今天的时间跨度。 问题显然是在加密货币回报系列中包括假期和周末,这使得我的时间序列比 EUR/USD 的时间序列更长。

这是我用来下载它的一些代码行(通过 CryptowatchR 包):

df.ohlc.daily_pax_cor <- get_ohlc(pax, periods = 86400, after = "2020-11-01", exchange = "Bitfinex", datetime=TRUE)
index_daily_pax_cor <- df.ohlc.daily_pax_cor$CloseTime
data_daily_pax_cor <- data.frame(df.ohlc.daily_pax_cor[,2:6])
df.ohlc.daily_pax_cor_xts <- xts(data_daily_pax_cor, index_daily_pax_cor)
pax_daily_return_cor <- dailyReturn(df.ohlc.daily_pax_cor_xts, log=TRUE)

观察次数为 264。

对于欧元/美元,这是我所做的:

getSymbols("EURUSD=X", src = "yahoo", from = "2020-11-01")
EURUSD_daily_cor = `EURUSD=X`
eurusd_daily_return_cor = dailyReturn(EURUSD_daily_cor)

这给我留下了 188 个观察结果。

如何操作时间序列以使它们具有相同的长度?

【问题讨论】:

    标签: r time-series correlation data-manipulation


    【解决方案1】:

    使用此设置:

    library(quantmod)
    
    getSymbols("EURUSD=X", from = "2020-11-01")
    getSymbols("AAPL", from = "2020-11-01")
    
    # EURUSD=X has extra times
    
    dim(`EURUSD=X`)
    ## [1] 188   6
    dim(AAPL)
    ## [1] 179   6
    setdiff(time(AAPL), time(`EURUSD=X`)) 
    ## numeric(0)
    

    1) 合并 使用 all=FALSE 合并两个系列以仅保留常用时间。

    both <- merge(AAPL, `EURUSD=X`, all = FALSE)
    nrow(both)
    ## [1] 179   6
    

    2) 相交 另一种可能是:

    time0 <- as.Date(intersect(time(AAPL), time(`EURUSD=X`)))
    AAPL0 <- AAPL[time0]
    `EURUSD=X0` <- `EURUSD=X`[time0]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-03
      • 1970-01-01
      • 2018-02-08
      • 2010-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多