设为首页 加入收藏

TOP

时间序列分析工具箱——tidyquant(三)
2019-09-03 02:41:25 】 浏览:415
Tags:时间序列 分析 工具箱 tidyquant
FB 2014-01-09 57.22 58.23 57.92 57.20 54.56 54.71 ## 7 FB 2014-01-10 57.94 57.22 58.23 57.92 57.20 54.56 ## 8 FB 2014-01-13 55.91 57.94 57.22 58.23 57.92 57.20 ## 9 FB 2014-01-14 57.74 55.91 57.94 57.22 58.23 57.92 ## 10 FB 2014-01-15 57.60 57.74 55.91 57.94 57.22 58.23 ## # ... with 3,014 more rows

tq_mutate 与滚动函数

另一个例子,应用 xts 中的滚动函数 roll.apply()。让我们借助函数 quantile() 得到滚动分位数。下面是每个函数的参数:

tq_mutate 的参数:

  • select = adjusted,只选择复权修正过的数据列。该参数也可以不填,或选择其他不同的列。
  • mutate_fun = rollapply,这是一个 xts 函数,将会以 “tidy” 的方式(分组)调用。

rollapply 的参数:

  • width = 5,告诉 rollapply 计算窗口的周期(长度)是多少。
  • by.column = FALSErollapply() 函数默认对每一列分别操作,然而我们要把所有列放在一起操作。
  • FUN = quantilequantile() 正是要被滚动调用的函数。

quantile 的参数:

  • probs = c(0, 0.025, ...),计算这些概率的分位数。
  • na.rm = TRUEquantile 会去掉遇到的 NA 值。
# Rolling quantile
FANG_data_d %>%
    select(symbol, date, adjusted) %>%
    group_by(symbol) %>%
    tq_mutate(
        select     = adjusted,
        mutate_fun = rollapply,
        width      = 5,
        by.column  = FALSE,
        FUN        = quantile,
        probs      = c(0, 0.025, 0.25, 0.5, 0.75, 0.975, 1),
        na.rm      = TRUE)
## # A tibble: 3,024 x 10
## # Groups:   symbol [4]
##    symbol       date adjusted   X0.  X2.5.  X25.  X50.  X75. X97.5.
##     <chr>     <date>    <dbl> <dbl>  <dbl> <dbl> <dbl> <dbl>  <dbl>
##  1     FB 2014-01-02    54.71    NA     NA    NA    NA    NA     NA
##  2     FB 2014-01-03    54.56    NA     NA    NA    NA    NA     NA
##  3     FB 2014-01-06    57.20    NA     NA    NA    NA    NA     NA
##  4     FB 2014-01-07    57.92    NA     NA    NA    NA    NA     NA
##  5     FB 2014-01-08    58.23 54.56 54.575 54.71 57.20 57.92 58.199
##  6     FB 2014-01-09    57.22 54.56 54.824 57.20 57.22 57.92 58.199
##  7     FB 2014-01-10    57.94 57.20 57.202 57.22 57.92 57.94 58.201
##  8     FB 2014-01-13    55.91 55.91 56.041 57.22 57.92 57.94 58.201
##  9     FB 2014-01-14    57.74 55.91 56.041 57.22 57.74 57.94 58.201
## 10     FB 2014-01-15    57.60 55.91 56.041 57.22 57.60 57.74 57.920
## # ... with 3,014 more rows, and 1 more variables: X100. <dbl>

可用函数

已经介绍了如何将 xts 函数和 tq_transmutetq_mutate 联合使用。还有许多 xts 函数可以以 “tidy” 的方式使用!用 tq_transmute_fun_options() 查看其他可用函数。

# Available functions
# mutate_fun =
tq_transmute_fun_options()
## $zoo
##  [1] "rollapply"          "rollapplyr"         "rollmax"           
##  [4] "rollmax.default"    "rollmaxr"           "rollmean"          
##  [7] "rollmean.default"   "rollmeanr"          "rollmedian"        
## [10] "rollmedian.default" "rollmedianr"        "rollsum"           
## [13] "rollsum.default"    "rollsumr"          
## 
## $xts
##  [1] "apply.daily"     "apply.monthly"   "apply.quarterly"
##  [4] "apply.weekly"    "apply.yearly"    "diff.xts"       
##  [7] "lag.xts"         "period.apply"    "period.max"     
## [10] "period.min"      "period.prod"     "period.sum"     
## [13] "periodicity"     "to.daily"        "to.hourly"      
## [16] "to.minutes"      "to.minutes10"    "to.minutes15"   
## [19] "to.minutes3"     "to.minutes30"    "to.minutes5"    
## [22] "to.monthly"      "to.period"       "to.quarterly"   
## [25] "to.weekly"       "to.yearly"       "to_period"      
## 
## $quantmod
##  [1] "allReturns"      "annualReturn"    "ClCl"           
##  [4] "dailyReturn"     "Delt"            "HiCl"           
##  [7] "Lag"             "LoCl"            "LoH
首页 上一页 1 2 3 4 下一页 尾页 3/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇时间序列深度学习:seq2seq 模型.. 下一篇[转载]机器学习预测世界杯:巴西..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目