sapporor#6_rとleafletと立地分析

26
ララララララララララララ -Locational Analysis with R- SappoRo.R# @WAFdata

Upload: wakanakudo

Post on 21-Apr-2017

544 views

Category:

Data & Analytics


1 download

TRANSCRIPT

Page 1: SappoRoR#6_Rとleafletと立地分析

ラーメン屋さんになりたい

-Locational Analysis with R-

SappoRo.R# 6@WAFdata

Page 2: SappoRoR#6_Rとleafletと立地分析

自己紹介

http://wafdata.hatenablog.com/

@WAFdata

@WAFdata_kudo

R とお寿司とらーめ n|

Page 3: SappoRoR#6_Rとleafletと立地分析

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

Page 4: SappoRoR#6_Rとleafletと立地分析

私も人を幸せにしたいので、ラーメン屋さんになる方法について考え

てみました。

Page 5: SappoRoR#6_Rとleafletと立地分析

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

☑ 店の名前

☑ 初期投資、資金計画

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

☑ メニュー

・醤油 ・味噌・塩  ・豚骨

Page 6: SappoRoR#6_Rとleafletと立地分析

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

☑ 店の名前

☑ 初期投資、資金計画

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

☑ メニュー

・醤油 ・味噌・塩  ・豚骨

Page 7: SappoRoR#6_Rとleafletと立地分析

𝑚𝑖𝑛{∑𝑖−1𝑛

∑𝑗 −1

𝑛

𝑎𝑖 𝐼𝑖𝑗𝑑𝑖𝑗} ∑𝑗=1

𝑛

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

∑𝑗=1

𝑛

𝐼 𝐽𝐽=𝑝

j

S.t)

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

需要地点から施設立地点までの移動費用の総和を最小にすることを考える。 →今回は需要地点=各世帯、施設 = ラーメン屋

P 個の施設数のメディアン ( 総移動距離最小地点 ) を求めるときi の需要i と j の移動コスト(距離)i から j への需要有無( 1,0)     とすると

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

Page 8: SappoRoR#6_Rとleafletと立地分析

世帯 AN=1

世帯 BN=3

世帯 DN=5

世帯 CN=8

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

Page 9: SappoRoR#6_Rとleafletと立地分析

世帯 AN=1

世帯 BN=3

世帯 DN=5

世帯 CN=8

各世帯から距離(最小となる点がここだとすると… ..  →この位置だと西側の需要 (= 世帯人口 ) を反映できていない

Page 10: SappoRoR#6_Rとleafletと立地分析

世帯 AN=1

世帯 BN=3

世帯 DN=5

世帯 CN=8

各地点を世帯人数 ( 重み付けられた距離の総和を最小にすると… →ここにラーメン屋を出せばいいよね!

Page 11: SappoRoR#6_Rとleafletと立地分析

これを R でやる

Page 12: SappoRoR#6_Rとleafletと立地分析

① データ準備

札幌市中央区の小地域 shapefile

1)SpatialPolygonDataframe として読み込み2) 小地域ごとの人口でコロプレス描画

※H22 年国勢調査 ( 小地域 )http://e-stat.go.jp/SG2/eStatGIS/page/download.html>

Page 13: SappoRoR#6_Rとleafletと立地分析

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

Page 14: SappoRoR#6_Rとleafletと立地分析

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

Page 15: SappoRoR#6_Rとleafletと立地分析

② 立地分析{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 クラスオブジェクト

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

Page 16: SappoRoR#6_Rとleafletと立地分析

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

Page 17: SappoRoR#6_Rとleafletと立地分析

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

ちょっと達成

感に欠け

Page 18: SappoRoR#6_Rとleafletと立地分析

③ 可視化{leaflet} パッケージで見やすい地図を描いてみる小地域ポリゴン → 中央区全体で一つのポリゴンに統合

Page 19: SappoRoR#6_Rとleafletと立地分析

③ 可視化

結果をとりまとめて

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

Popupも付けちゃう

Page 20: SappoRoR#6_Rとleafletと立地分析

③ 可視化

Page 21: SappoRoR#6_Rとleafletと立地分析

④ 寄ってみる

Page 22: SappoRoR#6_Rとleafletと立地分析

④ 寄ってみる

南 8条西13丁目付

Page 23: SappoRoR#6_Rとleafletと立地分析

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

Page 24: SappoRoR#6_Rとleafletと立地分析

奥○商店………

Page 25: SappoRoR#6_Rとleafletと立地分析

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

Page 26: SappoRoR#6_Rとleafletと立地分析

Enjoy!!

< 参考文献 >

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

<データ>

◎H22 年国勢調査 ( 小地域 )  http://e-stat.go.jp/SG2/eStatGIS/page/download.html