hitode909の日記

以前はプログラミング日記でしたが、今は子育て日記です

Google データスタジオで二日酔いダッシュボードを作る

今週は連日飲み会が続いていて,連日めちゃくちゃに飲みすぎていた.
毎日懲りずに二日酔いになっていてさすがに懲りたので,飲酒の実績や統計情報が一目で分かるダッシュボードを作ることにした.
データの蓄積によって次に取るべきアクションを得られたり,飲みすぎる前にやめましょうと判断できるようになれば,来たるべきビッグデータ時代が到来するはず.

手順

ダッシュボードを作るにあたって,Google データスタジオを使うことにする.これまではベータ版だったけど,今日正式版がリリースされた.仕事で開発しているサービスのKPIダッシュボードも最近Google データスタジオで作っていたので,同じ調子で作ってみる.
analytics-ja.googleblog.com


簡単3ステップでダッシュボードを作ることができる.

  1. Spreadsheetにデータを入力する
  2. データソースを作る
  3. レポートを作る

Google Spreadsheetにデータを入力する

日ごとに,飲んだ酒の種類や量,帰宅時間,翌朝二日酔いになったかどうか,良かった点,悪かった点,次に取りたいアクション,などを入力していく.
集計するのがなるべく簡単になるように,簡単な数字に落とし込めるものは単純な形式の数字にするのがよい.
最初は「ビール4缶とワイン」とか書いてたけど,自然文で書くと集計できなくなるので,ワインのセルとビールのセルを分けた.ビールも,缶ビールと生ビールで分けることにした.理由は後述する.

f:id:hitode909:20170203203523p:plain

データソースを作る

データソースは,レポートに表示するためのデータ.Spreadsheetの値を流しこめるほかに,データソース側で流しこんだ値を計算して,新しいフィールドを作ることができる.Google データスタジオにアクセスして作る.
f:id:hitode909:20170203204202p:plain


Spreadsheetには飲んだ缶の本数を記録しておき,飲んだ本数からアルコール量を計算することにした.
こんな形で,缶の本数に350(ml)をかけて,0.05(5%)をかけると,飲んだ缶の本数からアルコール量を計算できる.生ビールと缶ビールで容量がちがうので,セルを分けることにした.
f:id:hitode909:20170203204409p:plain


飲んだアルコールの合計はこんな感じで足していく.
f:id:hitode909:20170203204426p:plain


これは飲酒時間の式で,定時の19時から帰宅まで1秒も休まず飲んだと仮定して飲酒時間の秒数を計算している.0:12 とか書きたかったけど,集計スキルが低くてうまくいかなかったので,Spreadsheet側で,帰宅時と帰宅分にセルを分けることにした.式を見ると分かるけど,0時や1時って書くとマイナスになるので,24時と書いて運用でカバーしている.
f:id:hitode909:20170203204621p:plain

レポートを作る

こちらが完成したレポートです.いろんなグラフや表が載っているけど,すべて僕の飲酒に関する情報.こんな詳細に飲酒についての集計情報を見ることはあまりないと思う.
f:id:hitode909:20170203205350p:plain

レポートを作るにあたっては,最終的に見たい情報や,こういう情報を見て,こういうときはこういうことが分かりそう,ということをイメージしながらSpreadsheetやデータソースを準備しておくのが大切で,ほしいデータが足りなかったら表に戻ったり,式を直したりする.1方向に組み立てて完成ではなく,行ったり来たりしながらブラッシュアップしていく.

わかること

完成したレポートを見るといろんなことが分かる.

  • 4日中3日は二日酔いだった
    • 最悪
  • 4日間で33杯飲んで,アルコールを680ml摂取している
    • 飲みすぎている
  • ビールをあんまり飲まなかった日だけ二日酔いにならなかった
    • 関係あるのか分からないけど,もうちょっとデータが集まると分かってきそう
  • アルコールの摂取量では水曜日より木曜日のほうが少ないけど,水曜日は二日酔いにならなかった

グラフを使う

グラフはインタラクティブで,動的に期間を変えたり,マウスカーソルをホバーすると具体的な値を見れたり,フィルタ機能をつかって二日酔いになった日だけに表示するデータを絞り込んだりできる.
知りたい情報にドリルダウンしていけるようなダッシュボードは良いダッシュボードだと思う.
f:id:hitode909:20170203205649g:plain

テーマを変えよう

プリセットのテーマには白いのと黒いのがあって,黒っぽい背景にすることもできる.テーマを変えると,重要なサーバーでも監視してそうなハッカーっぽいレポートが完成する.
f:id:hitode909:20170203210228p:plain

反省しよう

「悲劇を繰り返さないために」というコーナーを設けていて,ここで次のアクションを検討できるようになっている.Spreadsheetに毎日感想を書いていって,それを集計すると,自然と次のアクションを取れるはず.
f:id:hitode909:20170203210440p:plain

これによって分かることは

  • 二日酔いになってしまった敗因の一位は外で飲んだあと二次会でオフィスに戻ってまた飲んでしまうこと
    • オフィスに戻ると,1階にセブンイレブンがあったりして無限に飲酒してしまう
  • 二日酔いにならなかった勝因は梅干しを食べたこと
    • 梅干しは効果あるのか,実験を続けると分かるはず
  • オフィスに戻らないこと,疲れてたら飲まない,というのを次のアクションとして取りたい
    • 疲れてるのに無理して飲む必要はたしかに無さそう

二日酔いダッシュボードの今後

プロトタイプとしては良いものができたと思う.データが集まってくれば,先週と比べて飲酒量がどうなっていたか比べることができる.
今はおもしろがってデータを入力しているけど,今後更新が面倒になってくることが予想される.Google Apps Scriptを使えばPOSTリクエストを送ってシートを操作できるので,ビールを飲んだら押すボタンを作って簡単に記録できるようにしたり,別の情報源から帰宅時間を自動で入れたりして,運用コストを下げることも検討したい.
ふだん酒飲みすぎているために健康状況はめちゃくちゃで,血液検査で引っかかったり,しばらく酒を控えたら数値が元に戻ったりしているので,長期的にデータが集まってきたら,健康診断のレポートもあわせて,一週間あたり何ml以上アルコールを摂取すると上がるとか,これくらいに控えればOKとか,ウコンは本当に効果があるのかとか,そういった実験もできるようになりたい.

関連情報

今住んでいる部屋を探すときもGoogle Spreadsheetを使って効率的に探すことができた.こちらもおすすめです.
blog.sushi.money