回帰分析と機械学習で中央線の高コスパ物件を探す(データ可視化+変数選択)

前回の記事の続きです。

pompom168.hatenablog.com

今回は、具体的にデータの中身を見ていくために可視化を行います。

また、主に多重共線性をなくすために変数選択を行います。

データの可視化

物件数

まずは、各駅ごとの物件数を見ます。 f:id:pompom168:20171204150607p:plain

なんとなく納得する物件数です。 強いて言えば、阿佐ヶ谷駅武蔵境駅が思っていたより少ないです。

家賃

次は各駅ごとの家賃の分布です。

箱ひげ図を描いてみます。 f:id:pompom168:20171204150932p:plain

外れ値が多いです。ただ、すごい高い物件があってもおかしくはないと思うので、外れ値検定を行わずに描画してみます。

f:id:pompom168:20171204151054p:plain

高円寺、吉祥寺、国立に高級物件があります。

国立は富裕層が住んでいるイメージがありますし、吉祥寺は住みたい街上位ですから何となくわかるものの、高円寺にも高級物件があるんですね。

また、中央値で比較できるように、描画範囲を絞ります。

f:id:pompom168:20171204151303p:plain

中野〜三鷹(阿佐ヶ谷以外)までが家賃高めです。

また、三鷹以西だと立川が高めです。

中央特快の停まる国分寺が安いのは意外です。

徒歩時間と家賃の関係

駅からの徒歩距離が長いほど、家賃は安くなると思うので、横軸が徒歩時間で縦軸が家賃の散布図を描いてみます。

f:id:pompom168:20171204151749p:plain

ここで気づきましたが、徒歩60分とかの物件は最寄りとは言わない気がします。

よって、徒歩30分より遠い物件は今回の解析から除去することにします。

前回の記事の前処理の部分に以下のコードを追加しておきます。

#徒歩30分より遠い物件は除去
df = df[(df['徒歩'] <= 31)]

また、徒歩ほぼ0分で異常に家賃高い物件がありますが、一応確認しておきます。

f:id:pompom168:20171204152050p:plain

うーん、高円寺でこんなに高いのか?

でも入力ミスでもなさそうなので、このままにしておきます。

変数選択

次に、多重共線性をなくすため変数選択を行います。

具体的には、各変数同士の相関係数を確認します。

下図の、”間取り”は部屋数、”間取りDK”は間取りにDKを含むか(”間取りK”なども同様)です。

f:id:pompom168:20171204152359p:plain

部屋数が多ければ面積も大きそうなので、間取りと専有面積の相関が高いです。

DKが有ればKが無いのが普通なので、間取りDKと間取りKの負の相関も高いです。

他の変数との相関も考慮し、専有面積と間取りKをモデルの入力変数から除去することにします。

この辺は、触発されたブログと同じです。

www.analyze-world.com

ここまでで、データの特徴と変数選択ができたので、次は予測モデルを作ります。