Power BIでダイエット管理モデルを作ってみる

最近Power BIに触れる機会があったのでせっかくだからダイエット管理に応用できるか試してみることに。

Power BI自体初心者なので、バリバリ統計分析とかしてる人にとっては見苦しい部分もあると思うがご容赦いただきたい。

手探りながら何か今の管理方法を改善できないか試してみたので、その過程で感じたことを備忘録的に残しておければと思う。

Power BIでダイエット管理用グラフを作り直してみる


ダイエット管理はこれまではほぼExcelで行っていたが、確かにグラフ系を更新するにはPower BIの方がやりやすいと思った。

特に複数の階層を切り換えてみたりといったインタラクティブな動きはクリックひとつでできるので、Excelでピボット使ってこねくり回す必要もない。

あと「最近60日間のグラフ」とか相対日付で表示、更新したりするのも楽。前回エントリした塩分量と体重の関係もこれを使った。



前回はExcel上で計算した相関係数もメジャーを加えてDAXで計算してみる。相関係数自体はクイックメジャーでもサポートされてるが、比較するのは当日の塩分摂取量と翌朝の体重なので、日付を1日分ずらして計算するように手を加えてやる。



これはこれでExcelの元データと単なる計算を分離できるので管理という面では切り分けしやすいかもしれない。



年度ごとの体重のグラフも簡単。財務レポートならYoYといった年度比較やMoMも簡単にできそう。



Power BIの残念な点


逆に厳しいのがグラフのカスタマイズ。フォントスタイルの変更(太字にすらできない)やラベルの内容をいじったりといったカスタマイズはExcelの方がよっぽど細かく設定できるのでPower BIではきつい。

フォントファミリーも制限がかかってるのか英語のメジャー所しかなく、PCに入っている(そしてもちろんExcelでは選べる)日本語フォントや中国語フォントも選べない。以下のスクリーンキャプチャは左がExcelで右がPower BI、スクロールバーの長さからもどれだけ選べるフォントが少ないかがわかる。



見栄えを細かくいじったりカスタマイズするニーズがある場合にはPythonやRを使って描画した方がいいんだろう。幸いRスクリプトショーケースがマイクロソフトのサイトで公開されてて簡単に利用できるので、そのあたりの拡張性でデフォルトのチャート機能の見劣りを補おうとしてるのかもしれない。

Excelの強み


一方でこれらのことは全部Excelでもできるので要は手間の問題かもしれない。

ただ大容量データになると話は別で、一般公開されてるCitibikeのトリップデータ※をチェックしてみたこともあったが、データ件数が100万件越えていてExcelではそもそも開けなかった(※匿名でどの性別のどの年代の利用者がどこのサイクルステーションからどこまで何km移動したとかが入ってる)。



まあ重いのはPower BIも一緒で、ちょっとデータを更新したりDAX加えたりするとその度に待たないといけないが、それでもPythonやRと連携できるのでビッグデータ処理をそういった統計用プログラム言語に任せればかなり使えるのかと思う。

とはいえ、個人のダイエット用に使う食事データなんて小容量すぎるのでそこらへんのメリットはなく、そうなるとWYSIWYGのExcelの有り難みが大きく、ひと目で全体像が把握できるし、いちいちPythonでコード書いて表計算やテーブル操作するより楽に出来る(それでも欠損値補完とかしたい場合はPythonのinterpolate使った方が楽だが)。

良くも悪くもフットワークの軽さがExcelの最大の強みなんだと思う。

数値を入れるべきカロリー列に「不明」とか「未確認」とか自由に文字列も入力できるし、逆にそこらへんがガチガチに固められてしまったらExcelの良さが失われてしまう。

理想と現実


この点、教科書的な綺麗な世界なら、Power Queryで読み込む元データは単純にデータのみで、その加工や成形の前処理をPower QueryやPythonで行って、そのデータを元にDAXで計算、集計して、チャートやグラフを表示するという役割分担が本来有るべき姿なのだろう。



Excelのシート×表で構成された三次元情報(PythonでいうPanel)をリレーショナルデータベースに落とし込むという点では、むしろPower BIのレポートを除いた部分はAccessやPowerPivotと被る点が多い。

もともとPower BI自体Excelのアドオンとして提供されていたからか、特にPowerPivotとは重複しているところも多く、ベン図的にはExcelとPowerPivotとPowerBIでかなり重なり部分が大きいイメージがある。



この点、元データが第三者提供によるもので自分でコントロールできない場合、ある程度の仕様変更(列の名前や順番が変わったり予期しないレコードが入ってきたりする)を見越して前処理のロジックを作っておかないといけない。

が、個人で管理するExcelならそんなガチガチに定義を縛ると逆に使いにくくなる。役割分担をあえて分けなくても、Excelでだって加工や集計もできて、グラフも作れてしまう。欠損値がある場合は前処理で補完しなくても、元Excelを開いて手で直してやれば済む。

ということで個人用途で管理したい場合は、そこのあたりの役割分担に拘らず、一番やりやすく簡単な方法で討ち取ってやればいいと思う。

目的


ExcelにしろPower BIにしろ結局は単なる手段。

目的はダイエットで痩せることなので、管理負担は少ない方がいい。

かといってフィードバックの情報が少なすぎたら正確なトラッキングができなくなり、実行と結果の関連性を検証できなくなってダイエット失敗につながりかねない。

理想は最小限のインプットで最大限のアウトプットを得ること。

ダイエット管理でいえば、記録するために手を動かすのは最小限で、そこから役に立つ情報をできるだけ自動的に集計してフィードバックする。

今入力しているのは体重と走行距離(運動量)と食事内容の3つ。

食事内容は面倒くさいが、入れておくとカロリーと塩分摂取量の日別散布図、PFCバランスの分析、どの種類の食品を多く食べたかの日別リボンチャートなど、多角的な視点で分析できるので便利。



ダイエットをするしないに関わらず、体重と運動量と食事内容というのは健康管理をしていく上では重要な指標になる。

自分自身の健康とは一生付き合っていかなければならない以上、何かしら自分なりの健康管理方法を確立しておくのは後々になってメリットが大きくなると思う。

0 件のコメント :

コメントを投稿