1. Copyright(C) Nowcast, Inc. All rights reserved.
Nowcast
オルタナティブデータを用いた消費行動の分析
~2月のトイレットペーパーパニックを例に~
2020年08月28日
株式会社 Nowcast
Todd Perry
Pycon JP 2020
2. Copyright(C) Nowcast, Inc. All rights reserved. 2
1. 自己紹介
2. オルタナティブデータとPOSデータの紹介
3. 時系列の購買データを分析する方法
I. 基本的なデータの取り扱い
II. 前年比を計算する方法
4. 結果を可視化する方法
I. Matplotlibで表の作成
II. Deckで位置情報の可視化
5. Q&A
このプレゼンテーションの概要
3. Copyright(C) Nowcast, Inc. All rights reserved. 3
{
‘名前’:’Todd Perry’,
‘出身’:’イギリスのサウサンプトン’,
‘会社’:’株式会社ナウキャスト’,
‘職種’:’データエンジニア/サイエンティスト’,
‘趣味’:[‘ロードバイク’、’言語学習’],
‘好きな食べ物’:’麻婆豆腐丼’,
‘Python歴’:’7年間’
}
自己紹介
4. Copyright(C) Nowcast, Inc. All rights reserved. 4
主に金融業界では今まで財務情報や経済統計のようなデータ(Traditional Data)しか使
われていなかった。
Traditional Dataに対して、金融業界以外から新しく導入されたデータのことをオルタナティブ
データ(Alternative Data)と呼ばれる。
主なオルタナティブデータの例:
• POSデータ
• クレジットカードデータ
• 位置情報
• 衛星画像
最近、世界中の金融業界でオルタナティブデータはよく使われるようになった。
オルタナティブデータとは
5. Copyright(C) Nowcast, Inc. All rights reserved. 5
POS(Point of Sales)データとは、スーパーマーケットやコンビニで収集された購買データ。
レジを使う時に、自動的に商品についてのデータを記録する。このデータを取りまとめたらPOSデー
タセットになる。
POSデータから分かること:
• 商品名、商品のカテゴリ
• 商品が購入された日付
• 購入された量
• 商品が買った店舗(位置情報)
POSデータから分からないこと:
• 商品が購入された時間
• 買った人についての個人情報
POSデータについて
6. Copyright(C) Nowcast, Inc. All rights reserved. 6
1. 候補の商品カテゴリーのデータをPandasのデータフレームに入れる
日次の時系列で、分析するように前処理をする必要がある。下記の画像は、前処理する前の
POSデータ
データの分析する方法
7. Copyright(C) Nowcast, Inc. All rights reserved. 7
2. 日付と店舗IDで集計する
PandasのGroupby関数で集計したい列をIndexにする。そうしたら時系列の処理は楽になる。
Pandasは便利すぎて、一行でできる。下記のデータフレームで、店舗ごとに、日次の売り上げを
計算できた。
データの分析する方法
12. Copyright(C) Nowcast, Inc. All rights reserved. 12
今の状態でもう可視化できる
データの分析する方法
ハンドソープ
トイレットペーパー
2月の下旬
2月の下旬
13. Copyright(C) Nowcast, Inc. All rights reserved. 13
3.前年比を計算する
まずは、週次でリサンプリングをして、1年間ずれてるデータフレームを作る
(MultiIndexがあるのでResampleとTshiftを使うためにStackをしないと)
次、以下の形式で前年同期比較を計算する
Pythonで
分析する方法
14. Copyright(C) Nowcast, Inc. All rights reserved. 14
3. 前年同期比較を計算する
こういう形になる
0以上の値は、去年より今年の売り上げの方が高い
0以下の値は、去年より今年の売り上げの方が低い
分析する方法
15. Copyright(C) Nowcast, Inc. All rights reserved. 15
4. 県で集計する
店舗IDを県番号にするマッピングテーブルを作った。PandasのJoin関数で簡単に結合できる
結果は県ごとの週次時系列データ
県番号で、県名や県のポリゴンを簡単に結合できる
これから可視化していきます!
分析する方法
17. Copyright(C) Nowcast, Inc. All rights reserved. 17
2. Matplotlibを使って、データフレームを簡単に可視化できる
結果を可視化しましょう
マスク
カップラーメン
18. Copyright(C) Nowcast, Inc. All rights reserved. 18
2. Matplotlibを使って、データフレームを簡単に可視化できる
結果を可視化しましょう
マスク
カップラーメン
2月 夏
19. Copyright(C) Nowcast, Inc. All rights reserved. 19
2. Matplotlibを使って、データフレームを簡単に可視化できる
結果を可視化しましょう
マスク
カップラーメン
3月 緊急事態宣言
20. Copyright(C) Nowcast, Inc. All rights reserved. 20
2. Matplotlibを使って、データフレームを簡単に可視化できる
結果を可視化しましょう
ハンドソープ
トイレットペーパー
21. Copyright(C) Nowcast, Inc. All rights reserved. 21
2. Matplotlibを使って、データフレームを簡単に可視化できる
結果を可視化しましょう
ハンドソープ
トイレットペーパー
2月の下旬
2月の下旬 緊急事態宣言
22. Copyright(C) Nowcast, Inc. All rights reserved. 22
Deckは位置情報を可視化するUberが作ったライブラリー
Javascriptで書いてあるけどPythonでも使える。
Project Site:https://deck.gl/
Github: https://github.com/visgl/deck.gl
pipで簡単にインストールできる
可視化するために、県番号をポリゴンに結合した...
Deck.gl
23. Copyright(C) Nowcast, Inc. All rights reserved. 23
3. Deckで位置情報の可視化
file:///Users/toddperry/nowcast_dev/data/pycon/output/masks/polygon_layer_
4.html
結果を可視化しましょう