LoginSignup
11
9

More than 3 years have passed since last update.

fitbitのデータを可視化してみる

Last updated at Posted at 2020-12-17

どうもsusumu_tanakaです。
今年のアドベンティストカレンダーは前半2つ管理系のネタを書いてしまったので、
同じ流れで、セルフサービスBI周りの話でもしようかなと思いましたが、
内容的に変えたほうがいいかと思うので、一旦セルフサービスBIネタは封印します。
また、どこかの機会で書こうかなと思います。
(どんなレポート作成しているとか、公開できればいいのですがね。。さすがに厳しいかな。)

■セルフサービスBI管理ツール①②
https://qiita.com/susumutanaka/items/8d9e1232a7eea5af1c62
https://qiita.com/susumutanaka/items/830e3434b3e45355c860

じゃぁ、何を書こうかなと、ふと考えたのですが、
今年購入した「fitbit sense」のデータでも可視化してみます。

fitbitデータについて

2種類あるようです。

 ・個人マイページからのダウンロード
 ・APIによるデータ取得

今回は前者の「個人マイページからのダウンロード」で行きましょう!
※APIちょいと調べてみたのですが、登録にURLだの色々と厄介そうだったので・・

まずは、ダッシュボードの「データのエクスポート」画面に行きましょう

■データのエクスポート
https://www.fitbit.com/settings/data/export
image.png

この画面の「ダウンロード」ボタンからだと、
あまりよい情報が得られないので、『データをリクエスト』からデータを取得しましょう。
※詳細データ、ストレスの情報とかも入っているので、こっちがオススメ!

image.png

データをリクエストして、数分後、ダウンロードができる状態になるので、
そこから、圧縮ファイルを回答すると、こんなフォルダ構成になります。
image.png

ストレスデータの可視化

とりあえず、ストレススコアでも可視化してみますかー
image.png

fitbit の現在の最上位モデルの「sense」では、ストレスをスコア化してくれてます。
 ストレススコア定義自体は、
 ①脈拍などの「反応スコア」30point
 ②運動活動の「運動バランススコア」40point
 ③睡眠パターンスコア 30point
に分類されるようです。

参考ページ:
https://help.fitbit.com/articles/ja/Help_article/2077.htm

とりあえず、ストレスデータを読み込んでみますかー

image.png

データ読み込んで、Power Queryで表示するとこんな感じ。

image.png

MAX値とか、不要な列は削除。
ラベル表が分かりづらいので、日本語名に変更っと。

image.png

ステータスにNO_DATAってありますが、10/4発売日だので、データ的にはないです。
また、睡眠スコアがあるので、Senseを外してうっかり寢っちゃったときにはスコアが取れないようです。

あと、
カレンダーマスタは欠かせないっすよね。
y-komuroさんの永久保存版のカレンダーマスタのページを参考に追加!
https://qiita.com/y-komuro/items/de3e2cb3dea129260079
(y-komuroさん元気かな、FBにもいないし、元気してるかな。)

日付テーブルも入れて、2つのデータでレポート作成してみましょう!

image.png

とりあえずは、日付同士をくっつけて、最低限のモデルでこんな感じでしょうか。
image.png

レポート作成に関しては、まぁ、さらっとやって、
 こんな感じレポートにしてみました。
グラフで凹んでいるところは、うっかり、Senseを外して寝ちゃったときのスコアですorz

image.png

歩数データの可視化してみる

もう一個、歩数でも可視化してみましょうか。
「Physical Activity」フォルダ内のstepsから始まるファイルに格納されている模様。
image.png

複数のJsonファイルあるので、フォルダ読み込みして、1つのデータにまとめた方がよさそうですね。
※このあたりは関数作成しますので、応用効きそうなので、覚えておくと良いかも。
(そんな、ちまちますることより、「you、M言語覚えちゃいなよ」と、Power Query忍者から言われそうですがw)

概要として、こんな感じで進めます。

 ①JSONファイルのリスト作成
 ②関数作成
 ③①に関数を反映

①JSONファイルのリスト作成

JSONファイルのリスト作成手順としては、
まずは、データ取得で「フォルダー」を選択
image.png

image.png

読み込むとこんな感じになります。

image.png

こんな感じでフィルタして、不要なファイルは削除しましょう!

image.png

nameとFolder Pathの以外項目は削除します。
image.png

カスタム列の追加で、「fullPath」を作成しましょう!

image.png

fullpathのみとして、nameとFolder Pathは削除しちゃいましょう!

image.png

image.png

これで一旦リストの作成は完了。

②関数の作成

続いて、②関数の作成を行います。
1個だけパスをコピーして、新規にクエリを作成します。

image.png

新しいデータソースで「Jsonファイル」を指定。

image.png

こんな感じで読み込まれるので、
image.png

「テーブルへの変換」をクリック
image.png

このまんまOKをクリック
image.png

で、テーブルに変換されるので、「展開ボタン」改、「調子にのっちゃって、」ボタンをクリック!
※Power BI勉強会でやったら、当時はめっちゃ受けたんですよね(^ω^;)古いかw

image.png

とても注意:日付のフォーマットが、US表記(月/日/年)です。
image.png

ファイルのオプション設定で『英語(米国)』を設定しましょう。
※これ設定しないと、誤変換されます。
(本記事の後続で日付が2010年となっているのはかなりあとで気づいたためです。
差し替え大変なので・・そのままにしてます。m(_ _)m)

image.png

型(日付/時間と数値)を変換しましょう。

image.png

このクエリは、関数用のクエリなので、読み込みを無効にしておく。
image.png

で、パラメータ「JsonStepPath」を1個作ります。

image.png

で、作成したパラメータを「詳細エディター」で置き換えちゃいます。

before:
image.png

after:
image.png

このクエリを『関数』にしちゃいます。
image.png

関数名:FuncStep

image.png

関数の出来上がり!

image.png

③①に関数を反映

これを先程作成したJsonファイルのリストに食わせる。
列の追加から「カスタム関数の呼び出しを」をクリック
image.png

カスタム関数の呼び出し画面で先程作成した関数:FncStepを指定
image.png

で、列に関数が追加されるので、「調子にのっちゃって」ボタンをクリック!
image.png

はい、これで、3ファイル部分のデータが作成!!
image.png

カラムの型の調整と、日付・時間単位で集計してこんな感じで!Power Query完了!

image.png

リレーションシップもこんな感じで

image.png

あとは適当に、とりあえず、マトリクスに放り込んでみる!
おお歩数との因果関係分かりそうな気がするー。(うそつけー)

image.png

はい。以上となります。

如何だったでしょうか?参考になりましたでしょうか?
関数作成とか、通常やらないこともできたので、僕にとっては、とてもよい学びになりました!

参考(Special Thanks)

Fitbitのpower BI調べたところ、以下動画が参考になったので
(ほぼパクリじゃねぇかという気もしなくないが。。汗
学んだことをアウトプットするのが大切って誰が言ってたのでセーフ)
https://kohera.be/blog/power-bi/how-to-video-visualise-your-fitbit-data-in-power-bi/

ありがとうございました!

11
9
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
9