Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
130
Help us understand the problem. What is going on with this article?
@takatoshiroto

Appleの移動データを加工したらわかった東京の厳しい現実

Appleの移動データを加工したらわかった東京の厳しい現実

image.png

こんにちは、Exploratoryの白戸です。

Appleは新型コロナウイルスの対策支援として、Appleマップでの経路検索をもとにした移動傾向のデータを公開しています。ところが、残念ながらこのデータはそのままでは簡単に可視化できるようなフォーマットになっておらず、ちょっとした加工を行う必要があります。

しかし逆に、加工の仕方さえわかってしまえばそれぞれの都市や地域の移動データを可視化することで、恐怖を煽るばかりのマスコミからは見えてこない現状を理解することができるようになります。

今回はこのAppleの移動傾向データを簡単に可視化できるようにするための基本的な加工方法を、みなさんと共有させていただければと思います。

image.png

データはこちらからダウンロードすることができます。

以下は「モダンでシンプルなUIを使ってデータサイエンスができる」Exploratoryを使って、「日本で最も自粛している都道府県はどこか?」といった問いに答えていきます。

データを使える形に加工・整形する

ExploratoryにAppleの移動傾向データをインポートすると、列数が453列と非常に多いことがわかります。これは、1日ごとに列があるデータになっており、2020年1月13日から2021年の4月までのデータがあるためです。ちなみに、1行はregion(地域)の単位になっていて、日本では都道府県や市区町村の単位でデータがあります。

image.png

例えば、時系列の推移を可視化する時によく使用する「ラインチャート」を使って移動傾向の推移を可視化したいとします。

image.png

しかし、多くの可視化ツールでも同じように、X軸に日付を割り当てようとしても、1日単位で列があるデータでは一つの列しか選べないためうまく可視化ができません。

image.png

データにはワイド型(横長)とロング型(縦長)の2つの持ち方があります。

Appleの移動傾向のデータは、日付ごとに列がある横長のデータのためワイド型になります。

image.png

一方で、値の列が一列にまとまっている縦長のデータのことをロング型と言います。

image.png

データを可視化する時には「列」を選択するため、ロング型のデータが望ましいと言われています。

ロング型にすることで、X軸に日付の列を、Y軸に値の列を割り当てていくことができます。

image.png

そのため、ワイド型からロング型へ変換する必要があります。

image.png

Exploratoryでは、ロング型にしたい列を選んだ状態で、列ヘッダメニューから「ワイド型からロング型へ」を簡単に呼び出して実行できます。

image.png

ワイド型からロング型へのダイアログで、開始に最初の日、末尾に最後の列を指定します。

image.png

あとは、列名を指定して実行するだけです。

image.png

これにより、日ごとに列があるワイド型のデータを、日付と移動傾向の値をそれぞれ一つに列にまとめたロング型のデータに変換できます。

image.png

データはロング型のデータにできましたが、「データタイプ」にも注意を向ける必要があります。
Dateの列はcharacter型(文字列型)になっており、チャートで可視化する際にはDate型(日付型)にした方が可視化しやすくなります。(これはExploratoryが裏で使用しているRでも同じです。)

image.png

データタイプの変換は列ヘッダメニューから簡単に実行できます。

image.png

データタイプをcharacter型からDate型に変換できました。

image.png

最後に、今回は日本のデータを可視化したいために「フィルタ」機能を使って日本のデータに絞り込んでいきます。

Exploratoryでは列ヘッダメニューから簡単にフィルタを呼び出すことができ、データタイプに合わせた多様な演算子が選べます。ここでは、countryの列からフィルタの等しいを選択します。

image.png

あとは値に"Japan"を選択して実行するだけです。

image.png

国を日本のデータだけにフィルタできました。

image.png

このデータでは市区町村レベルのデータと都道府県レベルのデータが入り混じっているので、先程と同じくフィルタで絞り込む必要があります。

image.png

geo_type列の"sub-region"にフィルタすることで、都道府県レベルのデータにフィルタできます。

image.png

データ・ラングリングは以上です!

こうしてデータの準備さえできてしまえば、あとは簡単にデータを可視化して人の移動傾向を理解していくことができます。

最も自粛している都道府県はどこか?

ラインチャートでX軸にDateを、Y軸にValue(移動傾向の値)を割り当てます。

image.png

しかし、日毎に移動傾向の値は上下するため、大まかなトレンドがわかりづらくなっています。

そのため、一定区間ごとの平均値を区間をずらしながら求める「移動平均」を使用します。

ExploratoryではY軸のメニューにあるクイック表計算から簡単に移動平均を実行できます。

image.png

今回は、ウィンドウサイズを7にして実行します。

image.png

これにより、移動傾向の大まかなトレンドを可視化できました。

image.png

1回目と2回目の緊急事態宣言が行われた期間は移動が減少しており、自粛している人が多かったことがわかります。

次に、都道府県別で可視化するために色(グループ化)にalternative_name(都道府県)を割り当てます。

image.png

今回は、東京都と大阪に注目したいため色のメニューからハイライトを選択します。

image.png

ハイライトする色に東京都と大阪を選択して適用します。

image.png

このチャートを見ると、東京は移動傾向の値がほぼ全ての期間で他の都道府県よりも低く、2021年3月以降は最も自粛していることがわかります。報道では東京の人出が増えていると言われていますが、他の都道府県に比べて実は自粛している人が多くいます。大阪も東京と同じく、移動する人は減少しているようです。

image.png

まとめ

今回は、Appleの移動傾向データを使って、「日本で最も自粛している都道府県はどこか?」といった質問に答えるためのデータラングリングの方法について紹介しました。

ここ10年近くのテクノロジーの進化によって様々な場所からデータを収集、取得することが格段に簡単になりました。

しかし、こうした時代の一番の問題はそういったデータを取得することではなく、データの加工・整形ができないがためにデータを活かしきれないということです。

Appleですら扱いづらいデータを公開していることからもわかるように、世界には沢山の「扱いづらいデータ」で溢れかえっています。

そのままでは、思うように可視化や分析ができずに、せっかくあるデータも宝の持ち腐れになってしまいます。

そこで必要になってくるのが、データを加工・整形して可視化や分析に沿った形に変えていくデータ・ラングリングです。

一度使えるように形を整えてあげれば、後は可視化するだけでも多くのことがデータからわかるようになります。

これが「データの分析の80%の時間はデータの加工に費やされる」と言われる所以ですね。

それでは、また近いうちに他にもまだたくさんあるコロナ関連のデータの加工の仕方を共有させていただきたく思います。

お楽しみに!


追記

このデータは「汚くない」とのコメントがあったので、補足をさせていただきます。

確かに、Appleの移動傾向データはよくあるExcelファイルのようにごちゃごちゃしたデータではないので汚くないと思われるかもしれません。

ただ、データの持ち方は、ハドリー・ウィッカム氏が提唱したTidyデータ(整然データ)にして扱いやすい形式にする必要があります。

整然データのルールは以下となります。

  1. それぞれの変数はそれぞれの列を持っているべき。
  2. それぞれの観測はそれぞれの行を持っているべき。
  3. それぞれの値はそれぞれのセルを持っているべき。

Appleのデータはこの整然データには該当しない、雑然データと言われるものになります。

理由としては、

  1. 日付と移動傾向の値はそれぞれ変数となりますが、このデータでは日付が列となり1番目のルールに合致しません。

  2. このデータの本来の観測はそれぞれの地域ごとの1日の移動傾向の値になりますが、1行は1地域になっています。そのため、2番目のルールに合致しません。

このことより、行きすぎた言葉かもしれませんが汚いと使用していました。
もし気分を害された方は大変申し訳ございません。(タイトルなどは修正しております。)

データを可視化する時には、データの見た目上は綺麗だとしても整然データになっていなければ
結局は加工しないと使えないデータになってしまいます。

そこで、Rではtidyrのpivot_longergatherコマンドが必要になります。

Excelでも同じように、整然データにできるかもしれませんが、全ての人が同じように加工できる訳ではないと思っています。

そこで、少しでもデータの持ち方や加工方法についてご紹介した次第です。

ご参考になれば幸いです。


データラングリング・トレーニング、5月開催決定!

image.png

データラングリング(データの加工)の手法を1から体系的に、そして効果的に身に着けていただくために、データラングリング・トレーニングを提供しています。

データを自由自在に操れることで、実は思った以上に役に立つデータが身の回りにあるということに気づかれるはずです。そして思った以上にデータを使って答えることのできる質問がこの世の中には多くあるということにも気づいていただけると思っております。

詳細はこちらのページにあります。

130
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
takatoshiroto
Exploratory, Inc. でカスタマーサクセスを担当しています。 データラングリングとデータの可視化、探索的データ分析(EDA)を専門として、データサイエンスに関するコンテンツを発信中。プログラミングなしでデータサイエンスが学べる、「データサイエンスブートキャンプ」も開催しています。 https://exploratory.io/training-jp

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
130
Help us understand the problem. What is going on with this article?