26
ラーメン屋さんになりたい -Locational Analysis with R- SappoRo.R#6 @WAFdata

Sappo ro#6資料2 ー完全版ー

Embed Size (px)

Citation preview

ラーメン屋さんになりたい-Locational Analysis with R-

SappoRo.R#6

@WAFdata

自己紹介

http://wafdata.hatenablog.com/

@WAFdata

@WAFdata_kudo

Rとお寿司とらーめn|

ラーメン、美味しい。しあわせ。

私も人を幸せにしたいので、

ラーメン屋さんになる方法について考えてみました。

~ラーメン屋さんへの道~

☑店の名前

☑初期投資、資金計画

☑立地計画・札幌市中央区・人が集まりやすい所

☑メニュー

・醤油 ・味噌・塩 ・豚骨

~ラーメン屋さんへの道~

☑店の名前

☑初期投資、資金計画

☑立地計画・札幌市中央区・人が集まりやすい所

☑メニュー

・醤油 ・味噌・塩 ・豚骨

𝑚𝑖𝑛

𝑖−1

𝑛

𝑗−1

𝑛

𝑎𝑖 𝐼𝑖𝑗𝑑𝑖𝑗

𝑗=1

𝑛

𝐼𝑖𝑗 = 1 𝑖 =1, … , 𝑛

𝑗=1

𝑛

𝐼𝐽𝐽 = 𝑝

𝐼𝑖𝑗 ≤ 𝐼𝑗𝑗 𝑖 ≠j

S.t)

-立地分析におけるp-メディアン問題-

需要地点から施設立地点までの移動費用の総和を最小にすることを考える。

→今回は需要地点=各世帯、施設=ラーメン屋

P個の施設数のメディアン(総移動距離最小地点)を求めるとき

𝑎𝑖 =地点iの需要

𝑑𝑖𝑗 =地点iとjの移動コスト(距離)

I𝑖𝑗 =地点iからjへの需要有無(1,0) とすると

出店したいラーメン屋は1つなので p=1のMinSum問題に帰結。

世帯A

N=1

世帯B

N=3世帯D

N=5

世帯C

N=8

札幌市中央区にこのように世帯が配置されているとします。

世帯A

N=1

世帯B

N=3世帯D

N=5

世帯C

N=8

各世帯から距離(𝑑𝑖𝑗)が最小となる点がここだとすると…..

→この位置だと西側の需要(=世帯人口)を反映できていない

世帯A

N=1

世帯B

N=3世帯D

N=5

世帯C

N=8

各地点を世帯人数(𝑎𝑖)で重み付けられた距離の総和を最小にすると…

→ここにラーメン屋を出せばいいよね!

これをRでやる

①データ準備

札幌市中央区の小地域shapefile

1)SpatialPolygonDataframeとして読み込み

2)小地域ごとの人口でコロプレス描画

①データ準備

各小地域ごとのポリゴン内の代表点をcoordinates関数により抽出し、座標をデータに格納

①データ準備

この点ひとつひとつを世帯と考え、各小地域の人口を世帯人数と読み替えて考えます。

②立地分析

{orloca}パッケージを使ってMinSum問題を解きます。

loca<-loca.p( x=Chuo.dc$X_cen, y=Chuo.dc$Y_CEN, w=Chuo.dc$JINKO)

各世帯の座標 重み付け(世帯人口)

1) loca.pクラスオブジェクトを作成

Point<- zsummin(loca)

2) zsummin関数で重み付き距離の総和が最小となる点を算出

loca.pクラスオブジェクト

結果) ラーメン屋さん座標

③可視化

各世帯から、ラーメン屋さんに向かって矢印を引く

③可視化

各世帯から、ラーメン屋さんに向かって矢印を引く

③可視化

{leaflet}パッケージで見やすい地図を描いてみる

小地域ポリゴン → 中央区全体で一つのポリゴンに統合

③可視化

結果をとりまとめて

各世帯→ラーメン屋の線を引く

Popupも付けちゃう

③可視化

④寄ってみる

④寄ってみる

そんな完璧な立地に先客が。

奥○商店………

スープカレーにはかなわない。

Enjoy!!

<参考文献>

◎ Rで学ぶデータサイエンス 地理空間データ分析 谷村 晋著