Slide 1

Slide 1 text

TSIBBLEと TIBBLETIMEの 紹介 第69回 TokyoR

Slide 2

Slide 2 text

自己紹介 ■ twitter : @t_usausausa ■ お仕事 : データアナリスト(高性能雑用係) ■ 言語 : R, Python, SQL

Slide 3

Slide 3 text

Dataframe型をts型に変換するのって めんどくさくないですか???

Slide 4

Slide 4 text

■ Dataframe型からts型に変換したいモチベーション – ARIMAなどの時系列分析がしたい ■ prophet, AnomalyDetectionでのお手軽時系列分析や rstanを使った状態空間モデルの話は置いておく – dygraphsでグリグリ動く時系列プロットがしたい

Slide 5

Slide 5 text

■ いにしえの手法だと以下の通り – zoo型で読み込んでxts型に変換してマエショリし てts型に直して… – 正直やってられない – tidyな世界に生きたい

Slide 6

Slide 6 text

tidyな世界…つまりtidyverse!!! tibble型を継承した時系列の型があれ ば…

Slide 7

Slide 7 text

と思っていたらほぼ同時期に2個登場 した ◆tsibble ◆tibbletime

Slide 8

Slide 8 text

tsibble tibbletime 作者 Earo Wang [aut, cre], Di Cook [aut, ths], Rob Hyndman [aut, ths] Davis Vaughan [aut, cre], Matt Dancho [aut] リリース時期 (0.1.0) 2018-01-09 2018-01-03 現在のバージョン 0.1.5 0.1.1 CRAN https://cran.r- project.org/web/packages/tsib ble/index.html https://cran.r- project.org/web/packages/tibb letime/index.html 独自クラスの型 tbl_ts tbl_time

Slide 9

Slide 9 text

tsibble tibbletime 独自クラスへの変換 ○ ちょっとコツあり ○ 欠損値補完 ○ × %>%を使った集計処理 ○ ○ ウィンドウを使った処理 ○ ○ 時間のフィルタリング ○ ○ 独自クラスから ts型への変換 ○ × 機能面ではややtsibbleが優勢? だが前処理関連はtibbletimeに便利なものが揃っている

Slide 10

Slide 10 text

■ ではtsibbleでdataframeからtsibble型を生成し、ts型 に変換してみます – tibbletimeは時間がないので割愛します

Slide 11

Slide 11 text

このような形式のdataframe型のデータを用意

Slide 12

Slide 12 text

tsibble型はindexの重複が許されない keyとindexでユニークかつ、keyを指定する必要がある

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

keyの指定があれば自動的に横持ちに変換してくれる

Slide 15

Slide 15 text

■ 個人的にハマったところ – as.tsで変換できない ■ tsibble型のindexの間隔が指定されていないと変換 できない

Slide 16

Slide 16 text

ここにindexの間隔が表示される (自動的に算出される)

Slide 17

Slide 17 text

自動的に算出できないと… よくわからないエラーで変換が できない

Slide 18

Slide 18 text

■ 個人的にハマったところ ■ tidyr::spreadで展開すると出力がおかしくなる…? – tsibble用のtidyrの関数が用意されていない – tibbletime用のtidyr関数は用意されている

Slide 19

Slide 19 text

■ じゃあどっちを使えばいいのか、という話 – 結論としては用途で変えるべき – ts型に変換する場合はtsibble – 独自クラスで前処理やりたいならtibbletime

Slide 20

Slide 20 text

■ tsibbleの作者いわく… ■ (意訳) それぞれ別の目的で作ったのだから、2個あって もいいやん。将来的には1つにするのがベストなのかも しれないけど。

Slide 21

Slide 21 text

■ 参考文献 – tsibble? or tibbletime?

Slide 22

Slide 22 text

enjoy!!!