FitbitのデータをRで解析したい【自分の1日の歩数をRで解析】
Fitbitとは何か?
- http://www.fitbit.com/jp
- Fitbitを一言で表現すると、超高性能な万歩計?
- 今、絶賛大流行のライフログを残せる、ウェアラブルデバイス(wearable device)
- 「歩数」「移動距離」「消費カロリー」「運動強度」「睡眠状態」などを記録してくれる。
- 自分の運動パターンや睡眠パターンを可視化してくれるので、楽しい。運動する動機付けを高めてくれる
- 競合製品としては下記のものとか
- NIKE+ FUELBAND
- Jawbone Up
-
- Fitbit ForceはBluetoothを使用して、端末とリアルタイム同期してくれる!
- 他のライフログをとる製品だと、リアルタイム同期してくれなかったり、PC接続が必要だったりとデータ吸い上げが面倒なので、とても便利!
- ちなみに、Webのダッシュボードはこんな感じ。
- スタイリッシュだし、ゲーミフィケーション的要素もあって、すてき。
- Fitbit ForceはBluetoothを使用して、端末とリアルタイム同期してくれる!
いくつかの種類がある
- Fitbit Zip(ベーシックモデル)
- Fitbit One(高性能モデル)
- Fitbit Flex
- Fitbit Force:2014年1月中旬から日本でも取り扱い開始?
Fitbit APIをRからたたく
- Fitbit APIはOAuth2.0認証+REST APIなので、割と簡単。
- ただ、自分がOAuth認証をちゃんと把握していなかったので、はまる
- RでOAuth認証といえば、{ROAuth}パッケージですが、下記のStackOverflowに「 {httr}パッケージを使った方が幸せになるよ」って書いてあったから、私も{httr}パッケージを使った
今回、Rで実装した所
- とりあえず、1日の歩数を取得して、{ggplot2}の棒グラフで出力しました
- 今回は統計解析とかしてません。まだデータが数が足りない&面白い分析を思いつかなかったので。
- まあ、でも、これができれば、大抵のことはできるので、よしとします。
- コードはgithubにあります
- 出力されるグラフは下記の感じです
ハマったところ
- FitbitのAPIの設定で、Browserでなく、Desktopにしていたため、認証がうまくいかなかった
- FitbitのAPIの設定で、設定をBrowserにしていください
- {rjson}でデータフレーム化したときに、
parseData$activities-steps
がうまく認識されなかった- activities-stepsのハイフンがマイナスと認識されるため、エラーとなった
- ``で囲うと文字として扱われて、問題なくなった
- 今回は、API側でヘッダが用意されてしまったが、自分でデータフレームを作成する際は、マイナスとかプラスとかは含めない方が無難
- 当然か。。。
今後やりたいこと
- もっとデータが集まってきたら、回帰とかクラスタ分析とかで、自分の行動予測したり、分類したりしたいなー