あなたが私を読んだなら最後の投稿それで、あなたは、私がこのホリデーシーズンに私が自分自身にデータの贈り物を与えていることを知っています!私にとって、私の食事やフィットネス習慣に関するデータを集めることは、贈り物を続けることです。私はすべてのデータセットを日常的に見ているわけではありませんが、私のパターンを理解するためにそれを使用する必要があるときに情報があります。
しかしながら、食品データを集めることは私にとってただの休日の習慣ではありません。私は今年の初めにMyFitnessPalを採用する前に、ほとんどの時間BodyMediaのアプリを使用して、ほぼ5年間、一年中各食事で食べる食べ物を記録してきました。私が発表した JMPディスカバリー2014のポスター 、私はどのように説明しました私のBodyMediaフードログデータをJMPにインポートしました複数のpdfをテキストに保存し、それらを連結し、正規表現を使用して詳細をJMPテーブルの列に解析します。MyFitnessPalは単一のテキストファイルとして保存することができるレポート出力を生成することによって私に数ステップを節約しました、しかし私はまだ使用可能なJMPテーブルを作成するために正規表現解析を使用する必要がありました。

私は自分のBodyMediaとMyFitnessPalの食物ログから導き出されたテキストを、並行して別々のプロセスを使って処理しました。
大きな課題:2つの情報源からのデータを組み合わせる
私が最近解決した大きな課題は、これら2つのフードログデータテーブルを統合することでした。これを解決する私の経験は、さまざまなソースからのデータを組み合わせる必要がある人すべてに関係があります。
列名やフォーマットタイプのような小さな違いは調整が簡単で、各テーブルにいくつかのユニークな列が含まれていても - それらは単に値を持たない行に欠けている値を見つけました。主な問題は、両方のデータベースで項目名が同じであるケースがあまりにも少ないため、並行して別々のプロセスを使用して2つのテーブルをクリーンアップする必要があったことです。
私のBodyMediaフードログには、本質的に同じフードアイテムを参照する冗長な名前のインスタンスが多数含まれていることをすでに知っていました。そのため、これらのアイテム間でデータを集計してパターンを探すのは難しくなりました。JMP 12 Recodeプラットフォームを使用して、類似の項目名を一連の整理された項目名にグループ化しました。このプロセスについては、以前のブログ投稿で説明しています 。
MyFitnessPalには、BodyMediaよりもさらに多くのブランド名やユーザー指定のアイテムが含まれているため、この命名の冗長性の問題がさらに大きくなります。MyFitnessPalを使って自分の食べ物を記録することに切り替えたとき、私は自分のMyFitnessPal項目名を書き換えるために私のBodyMediaスクリプトを再利用しようとしました。しかし、データベース間で共有される項目名が非常に少ないので、MyFitnessPalプロジェクト用に完全に別のRecodeスクリプトを作成する方が合理的です。
食品名の統合
今、私の2つのデータテーブルを組み合わせて休日の食事のパターンを調べることが、両方のテーブルからきれいにされた商品名を取り出してそれらを単一の統合された商品名セットにまとめる最も効率的な方法を発見する良い動機となりました。もちろん、演習の最後には、Recodeスクリプトを保存できるようにしたかったのです。元のアイテム名なので、MyFitnessPalログに新しいアイテムを追加しても、引き続きそのスクリプトを更新できます。
一貫性のために列名とフォーマットを調整した後、私はテーブルを連結し、Cleaned Item Name列を選び、Recodeプラットフォームを開きました。私は両方のテーブルでアイテムの名前を変更するために同様のパターンを使用していたので、多くのアイテムが互いに近くに現れました。私は残りの項目を調べ、同様の値をグループ化し、関連項目のサブグループを見つけるためにRecodeフィルター・フィールドを多用しました。私は整理されたアイテムの名前のフルセットをConsolidated Item Nameという新しい列に書き換えました。

私は2つのフードログデータ表から同じような商品名をまとめました。
新しいMyFitnessPalデータで使用するためにダイアログにリロードできるRecodeスクリプトを保存するには、前のブログ記事で共有した数式のコラムトリック。 スクリプトをダイアログに保存して再ロードすることをサポートする前に、JMP 12プラットフォームの初期バージョンで行った作業を取り込むために、「事後に」Recodeスクリプトを作成する必要があるときに発見したトリックです。今度は、元のデータベース項目名を最終的な統合名に関連付けるためのRecodeスクリプト用の "guts"を作成するために、同じ式列アプローチ(文字Concat関数を使用)を使用しました。適切なヘッダーとフッターをスクリプトに追加した後、元の商品名と統合された名前をRecodeダイアログに再読み込みし、MyFitnessPalから新しい食品名をインポートするときにリストを更新できます。
上位カテゴリの割り当て
整理された完全なデータテーブルを手に入れたので、私は自分の食料品を主要食料品カテゴリに割り当てるために私が維持する2つ目のデータ清掃スクリプトを更新することができました。私は、個々の項目をより高いレベルのカテゴリーに入れることは、関連する項目セットを時間の経過とともに比較するのに非常に役立つことがわかった。私は意味のあるグループ分けを使用して独自の分類システムを作成しました。
たとえば、ChocolateCandyという食品カテゴリがあり、ダーク、ミルク、ホワイトチョコレートを含むアイテムがあります。チョコレート以外のキャンディータイプを食べることはめったにないので、キャンディーのようなより一般的な名前をカテゴリに付けても私にはうまくいきませんでした。経時的に大きな傾向を見るとき、私がそれが私が食べたミルクチョコレートまたはダークチョコレートトリュフであったかどうかについて髪の毛を分割するつもりはありません、しかし、私は私の御馳走カロリーのどの割合が全カテゴリー。
このブログ記事のために、私は過去5年間の少数の選択された休日からの食事だけを含むサブセットテーブルを作成しました。Recodeを使用して、選択した日付をHolidayという新しいカテゴリ列に集計し、Value Ordering列プロパティを追加して、これらの休日を順番にロックしています。元旦、私の誕生日、感謝祭、クリスマスイブ、クリスマスと新年イブ。
このグラフビルダーヒートマップは、私が各休日に記録したカロリー数を示しています。私が出産後に積極的に体重を減らしていたとき、私はより少なく食べました、そして、維持において、私はより多く食べる傾向があります。

このグラフビルダーヒートマップは、私が休日に食べたカロリーの量が最低1396(淡い黄色)から最高3580(濃い赤)までの範囲で変化したことを示しています。フードログデータがない日は白い四角で表示されます。
以前、私は共有しました私のフードログデータのツリーマップ視覚化数日、数週間、数ヶ月、または数年にわたって集計されますが、ツリーマップは日々のデータのパターンをコンパクトに視覚化するのにも役立つことがわかりました。グラフビルダーでツリーマップを作成して、6つの休日すべての完全なデータがある4年間の各休日の食事のカロリー内訳を表示しました。
このデータはすべて、朝食、午前のおやつ、昼食、午後のおやつ、夕食、そして後のおやつを記録するための6つのスロットを提供するBodyMediaアプリで収集されました。Xグループ化変数としてYearを、Yグループ化変数としてHolidayを使用し、食事ごとに色付きの四角形を使用しました。カロリーをY変数として割り当てたので、ツリーマップの各休日のセクションは、私が食べた総カロリーの最大数に比例したサイズになっています。これは2012年のクリスマスに起こります。
食事と1日の総カロリー
私はたいてい食べた日までに食べ物を食事の場に入れます。たとえば、遅い朝食や昼食は、スナックスロットにログインする可能性があります。あなたは私の休日の食事のいくつかのタイミングでこの効果を見ることができます。休みの日は、朝と午後に、朝食、昼食、夕食を軽食と一緒により大きい食事として記録します。主要な休日には、その日の大きな食事が午後のスナックタイムフレームに入ることがあります(たとえば、2012年のクリスマス、2011年の大晦日、2014年の大晦日)。そのような場合、私は通常夕食の時間帯にかなり充実したデザートを記録しました!

食事によって記録されたカロリーは、大きな休日の食事のタイミングに依存していました。
食事のタイミングのこの変動を考えると、私は実際に食事のグループ化変数を削除して、 1日の総カロリー食品カテゴリ別にグループ化されています。似たようなアイテムをグループ化することで、私の休日の食事を支配する傾向がある種類の食べ物をよりよく感じることができました。これらがたくさんのデザート、チョコレートとカロリーの飲み物を含むことは全く驚くべきことではありません。休日は間違いなく私と私の家族のための社会的な食事についてのすべてです!

デザートのカロリーは間違いなく私の休日の食事パターンを支配しています!
それらの特別な休日の御馳走
多くの人と同様に、私は特定の特別な休日の食べ物を楽しみにしています。私のデータセット全体を見て、休日のみのアイテムのパターンを、私がもっと定期的に食べるおやつと対比するのは面白いと思いました。たとえば、チーズケーキは私のお気に入りのデザートの1つであり、私は一年中平野のチーズケーキを食べます。下の棒グラフは私の毎月の総カロリーを示しています。対照的に、カボチャのチーズケーキは季節の御馳走で、通常はホリデーシーズンに限られています - つまり、私が昨年したように冷凍庫で余分なものを隠していない限りです。また、私が休日にだけ作るクランベリーディライトと呼ばれる料理は、通常、感謝祭とクリスマスの間の私のフードログにしか現れませんが、それは2013年のイースターディナーに現れました。

カボチャのチーズケーキとクランベリーの喜びは、普通のチーズケーキと比べて珍しいホリデーシーズンの御馳走です。
では、このブログ投稿の最大の課題は何でしたか?あなたはそれがデータ収集、再コーディングの挑戦、あるいは私のビジュアライゼーションを微調整して私の休日の摂食パターンを可能な限り最高の光で見せることだと思うかもしれませんが、それらの推測はすべて間違っています。実際、最も困難なのは、JMP 13の多くの更新を残してJMP 12.2に戻ってグラフを作成することでした。実際、私は今年の後半に私がずっと生産性の低いブロガーにしているためにJMP 13の進行中の開発を非難します。私はすべての私の仕事と個人的なプロジェクトのために今ほぼ1年間JMP 13の開発版を使っています。私は文字通り私の舌を噛んでいます今来ているすべての素晴らしい新機能についてあなたに言いたいです!しかし、JMP 13が立ち上がるまでは、辛抱しなければならないでしょう。私がいなければ生きていけない、新しくて改良された追加について聞きます。それまでの間、幸せな休日を!