趣味でエリア分析(6)牛丼屋さんの商圏分析~後編~

前回(↓)の牛丼屋さんの商圏分析の続きをやっていきます。

hikiniku11029.hatenablog.com

 

店舗数や出店している地域を地図化しただけでは、Google検索して出てくるサイトと代り映えがないので、独自性のある分析をしたいと思いました。

 

でも、独自性をどうやって出すか悩みました。

 

独自性を出すアプローチとして、新規性・誰もやっていない深堀・新しい価値の創出etcがあると思います。でも、才能があるわけではないのですぐに思いつかず、自分が何ができるか手探りで模索するしかありませんでした。

 

難しく考えても答えがでなかったので、今までやってきたことを棚卸することにしました。

これまでは、データをプロット・ヒートマップを地図に描いていました。

じゃあ、逆の発想で描いたデータの繫がりを見て何かをインサイトを得られないか? という考えに至りました。

 

 

んで、今回は牛丼屋さんの店舗周辺の位置情報付きツイートとの関連を見る分析を立案しました。

 

具体的なアプローチは、

店舗の周囲20m以内で位置情報付きツイートをしたユニークユーザ数

を牛丼チェーン店で比較分析します。

f:id:hikiniku11029:20190627211535p:plain

一人のユーザが同じ場所で沢山ツイートする場合もあると思うので、ツイート数じゃなくユニークユーザ数で比較することにしました。

なぜ20mにしたかというと、目視で店舗を見つけられる範囲は20mくらいかと考えて値を決めました。

 

1m当たりの緯度経度の変化量の目安はググるとすぐ出てきました。

【1mあたり緯度の変化量】0.000008983148616
【1mあたり経度の変化量】0.000010966382364

 

目安を20倍して以下の値でデータを絞り込むことにしました。

【20mあたり緯度の変化量】 0.00017966297232
【20mあたり経度の変化量】0.00021932764728

 ※地球は横に長い球体として極座標計算しないと厳密な緯度経度の変化量は出ませんが、ミサイルなどの航空宇宙のシミュレーションするわけではないので安直な計算値を使って分析します。

 

 

ここからデータ分析をどうやって処理したか説明します。

 

まず、自作ツールで収集したデータをMicrosoftのAccessでデータベース化しました。

(Gyudon.accdbというファイル名で保存)

f:id:hikiniku11029:20190627213252p:plain

 

ここからpyodbcというモジュールを使ってpythonで店舗ごとに周囲20m以内のユニークユーザ数をはじき出しました。

コードは以下となります。

import pyodbc
# 分析する店舗の位置情報を[緯度,経度]でリストで格納
list = [

]

def main():
conn_str = (
r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
r'DBQ=C:\Gyudon.accdb;'
)
conn = pyodbc.connect(conn_str)
cur = conn.cursor()
for tenpo in list:
lat = float(tenpo[0])
lon = float(tenpo[1])
lat1 = lat - 0.00017966297232
lat2 = lat + 0.00017966297232
lon1 = lon - 0.00021932764728
lon2 = lon + 0.00021932764728

sql = "select count(*) from (select distinct(screen_name) from tweet where latitude between " + str(lat1) + " and " + str(lat2) + " and longitude between " + str(lon1) + " and " + str(lon2) + " )"

print(tenpo[0], tenpo[1], " ", end="")
cur.execute(sql)

for c in cur.fetchall():
print(c[0])

cur.close()
conn.close()

if __name__ == '__main__':
main()

pythonでAccessのデータベースからデータ参照するのは初めてやりましたが便利ですね。

(私の環境はWindows10(64bit)) 

 

上記のコードを実行すると、

緯度 経度 ユニーク数

で集計結果が出力されます。

 

これで各牛丼屋さんの店舗ごとの周囲20m以内のユニークユーザ数を出すことができました。

 

 

では、集計結果です。

全部乗せることはできないので、牛丼チェーンごと周囲のユニーク数が多いTop10の店舗ランキングを載せます。

吉野家

f:id:hikiniku11029:20190627220941p:plain

 

すき家

f:id:hikiniku11029:20190627221055p:plain

 

松屋

f:id:hikiniku11029:20190627221238p:plain

 

インサイトが得られました。

吉野家は他のチェーンと違い人の流量が多いスポットに集中して出店できているようです。

位置情報付きツイートした人が実際にその店舗にはいって牛丼を食べたかは判断できませんが、人の流量が多いことは確実にわかります。

 

位置情報付きツイートした人 < Twitterやっている人 < 人々 

 

店舗数と各店舗の周囲で位置情報付きツイートしたユニーク数のサマリーは以下となります。

f:id:hikiniku11029:20190627221929p:plain

※店舗数は各社HPからスクレイピングできて位置情報が特定できた数です

 (本当の店舗数とは若干の誤差があると見込まれます)

 

 散布図にしてみます。 ※横軸は店舗数

f:id:hikiniku11029:20190627222604p:plain

 

熾烈な販売競争を繰り広げている、牛丼チェーン各社の出店戦略を可視化できました。

分析を工夫した甲斐がありましたヾ(o´∀`o)ノ

 

 

ちなみに私はすき家の牛丼が大好きです。

牛肉が抜群に多い中盛りが大好きなんです!

 

 

ここまで読了ありがとうございます。