どらちゃんのポッケ

R・統計・技術メモなど勉強ログ置き場

FitbitのデータをRで解析したい【自分の1日の歩数をRで解析】

Fitbitとは何か?

  • http://www.fitbit.com/jp Fitbit flex  for SoftBank(Black)
  • Fitbitを一言で表現すると、超高性能な万歩計
  • 今、絶賛大流行のライフログを残せる、ウェアラブルデバイス(wearable device)
  • 「歩数」「移動距離」「消費カロリー」「運動強度」「睡眠状態」などを記録してくれる。
  • 自分の運動パターンや睡眠パターンを可視化してくれるので、楽しい。運動する動機付けを高めてくれる
  • 競合製品としては下記のものとか
    • NIKE+ FUELBAND
    • Jawbone Up
  • Webブラウザ、iphone/Androidでログをみれる

    • Fitbit ForceはBluetoothを使用して、端末とリアルタイム同期してくれる!
      • 他のライフログをとる製品だと、リアルタイム同期してくれなかったり、PC接続が必要だったりとデータ吸い上げが面倒なので、とても便利!
    • ちなみに、Webのダッシュボードはこんな感じ。
    • f:id:sleeping_micchi:20140103232901p:plain

  • いくつかの種類がある

    • Fitbit Zip(ベーシックモデル)
    • Fitbit One(高性能モデル)
    • Fitbit Flex
    • Fitbit Force:2014年1月中旬から日本でも取り扱い開始?

Fitbit APIをRからたたく

今回、Rで実装した所

  • とりあえず、1日の歩数を取得して、{ggplot2}の棒グラフで出力しました
    • 今回は統計解析とかしてません。まだデータが数が足りない&面白い分析を思いつかなかったので。
    • まあ、でも、これができれば、大抵のことはできるので、よしとします。
  • コードはgithubにあります
  • 出力されるグラフは下記の感じです
  • f:id:sleeping_micchi:20140103233050p:plain

ハマったところ

  • FitbitのAPIの設定で、Browserでなく、Desktopにしていたため、認証がうまくいかなかった
    • FitbitのAPIの設定で、設定をBrowserにしていください
  • {rjson}でデータフレーム化したときに、parseData$activities-stepsがうまく認識されなかった
    • activities-stepsのハイフンがマイナスと認識されるため、エラーとなった
    • ``で囲うと文字として扱われて、問題なくなった
      • 今回は、API側でヘッダが用意されてしまったが、自分でデータフレームを作成する際は、マイナスとかプラスとかは含めない方が無難
      • 当然か。。。

今後やりたいこと

  • もっとデータが集まってきたら、回帰とかクラスタ分析とかで、自分の行動予測したり、分類したりしたいなー