はじめに

ここでは、EDA Salon 第5回 - Airbnbの東京の宿泊施設データを使って、citypriceの関係性を明らかにする。つまり、cityごとに1泊の金額を表すpriceが変わるのかどうかを明らかにする。

データの加工

提供されているデータにはcityneighbourhoodという住所関係のカラムがあるが下記のようにそのまま利用できない。また、neighbourhoodはデータ全体の10%がNAなので、緯度経度情報を正しいものと考え、住所(address)は取り直すことにした。

  • 表記がゆれている(Shibuya、Shibuya city、Shibuya ku、渋谷、渋谷区のようなイメージ)
  • 日本語表記、英語表記(Shibuya、渋谷)が混じっている、
  • 粒度が異なっている(Tokyoがある)
  • city=kotoneighbourhood=sumidaという正しい関係にあるものあるが、city=neighbourhoodが一緒でカラム名の関係を表していない。

そのため、各宿泊先idの緯度、経度情報はあるので、これをリバースジオコーディングを行った。

住所データは「Yahoo!リバースジオコーダAPI」を利用して取得し、各宿泊先idに対して、新しい住所情報をもたせた。

取得後の分布は下記のとおりである。新宿区、台東区、豊島区、墨田区、渋谷区という順になる。

Loading...

また、下記はどの程度表記が揺れているのかを可視化(TOP5のみ)したものである。例えばaddress=東京新宿区で考えると、新たに取得したaddress=東京新宿区に該当するレコードのcityの要素の内訳を割合を示したものである。各棒グラフの色の数分、表記が揺れていることになる。(新しい住所の取得方法に誤りがあると申し訳ない…)

Loading...

また、address=東京新宿区で限定して、マップで可視化してみた。色分けはcityである。

Loading...

データの可視化

priceaddressの関係を散布図で可視化してみる。

Loading...

箱ひげ図だけでなく、密度曲線を使って可視化をしてみる。表示のために10000 >= priceでフィルタしている。

Loading...

これらの図を見る限り、addressごとに違いがあることがわかる。

まとめ

ここでは、addressごとに1泊の金額を表すpriceが変わるのかどうかを明らかにした。結果としては、addressごとに違いがあることがわかった。

備考

ジオコーディングで取得した住所データは、下記のプロジェクトのURLから利用できるようにしているので、必要であれば、Exploratoryにインポートしてください。Airbnbのデータとの紐付けキーはidです。

https://exploratory.io/git/1021500949444839/airbnb_list_reverse_geo_Lyu4xFa4.git