アドホック案件をtidyにグラフ作ってpdfでレポート出すまでの流れ
機械学習や統計モデリングを使った格好のよろしいデータ分析で成果を出したいものですが、「SQLで引いてきたデータからインサイトを得て、適切にグラフ作ってレポートにまとめる」のような作業も私は日々やっています。この手の分析はR言語のtidyverseを使うと効率的にさばけます。DWH(ここではBigQuery)からデータを引いてきて、集計結果をpdfに出力するまでの一連の流れをここに示します。
余談ですが、単なる可視化を行うときも、因果推論の見地から鳥瞰視点で「交絡ない?大丈夫?」を意識することで、より実り多き分析が出来ると思っています。
以下、もくじです。
R markdownじゃなくてJupyterを使う
私は今回紹介するような軽いアドホック分析においては、Jupyterの方が使いやすいと考えています。以下の動画では「分析の最後にpdfにアウトプットする様子」を示しました。
動画中で行なっている操作は以下の2つです。
- 「Hide input all」ボタンを押してコードブロックを非表示にする
- ブラウザの印刷機能でページを印刷する
最終的にpdfを出力するためのステップがこれだけで済むので、分析作業を行なっている最中は「ただただ必要なコードをコードブロックに書く」「マークダウンのブロックを挿入して説明文を書く」ことだけに専念できます。
なお、前者のコードブロックを非表示にするという操作は、nbextensionsというjupyter拡張機能群(非公式)の中の「Hide input all」で実現しています。ちなみに同拡張機能群の1つである「Table of Contents」を使うと、markdownで定義した段落に対して自動で段落番号を補完してくれます。(動画中でも適用しています)
DWHからデータを引いてくる
さて、pdf出力をキレイに行えることがわかったので、安心してnotebook上に必要なコードを書きなぐっていきます。まずはデータの取得です。
私の場合はbigqueryからデータを引いてくるのでこんな感じです。
library(bigrquery) set_service_token("your_project_key") project <- "project_name" sql = 'SELECT ....' res <- bq_project_query(x = project, query = sql)
tidyに前処理してggplotでグラフを書く
これについては偉大なる先人が編纂した書物(通称宇宙本)を中心に、様々に優れた解説があるのでここでは触れません。
RユーザのためのRStudio[実践]入門−tidyverseによるモダンな分析フローの世界−
- 作者: 松村優哉,湯谷啓明,紀ノ定保礼,前田和寛
- 出版社/メーカー: 技術評論社
- 発売日: 2018/06/29
- メディア: 大型本
- この商品を含むブログ (1件) を見る
markdownで説明文を書き加えてpdf出力
markdownブロックをnotebookのあちらこちらに挿入して全体の体裁を整えたら、上記の動画の手順でpdfを出力します。