【R / Python】中古マンション販売価格と賃貸物件家賃の分析

| 1件のコメント

物件購入や賃貸住宅を探すにあたって, 駅から近い&広い&安い物件を探すのは困難です。
限られた予算の中で外せない要素を決めたり, 一方である要素を諦めることが現実的ではないでしょうか。

今回はPythonとRを用いて東京都豊島区, 埼玉県川口市, 千葉県習志野市の各地域における”中古マンション販売価格”と”賃貸住宅の家賃”の分析を行ってみました。

分析の目的として, 「築年数が経過している物件を安く購入してリフォームして貸したい」, 「駅近なら部屋の広さを犠牲にして予算内に抑えたい」といったケースに対して, ある要素がどの程度価格に反映されるのかのひとつの基準になればいいなと思います。

ちなみに上記地域を選択した理由は, 豊島区が引っ越しを検討している街, 川口市が現在住んでいる街, 習志野市が実家がある街だからです。

データ収集はある物件情報サイトに対して, 2015/04/04 ~ 2015/04/17の期間でScrapingを行いました。
ツールはSelenium WebDriverを使っています。DOM構造の変化に強い設計にしようと思いましたが, エラーハンドリングが大変でした。
これは定期自動実行化に向けた課題にしておきます。WebDriverは実際にブラウザを動かすので, レンダリングなどが発生するためCUI系のツールと比べ遅いです。

前処理 (Data Cleansing)はPythonで行いました。

不動産に関して全くの素人ですので, 間違いが含まれている可能性が高いです。見つけた方はご指摘下さい。

賃貸住宅家賃の分析

今回, 賃貸家賃の分析に用いたデータは計4,224件 (豊島区 1,629件, 川口市 2,089件, 習志野市 506件)で, 恣意的ではありますがデータ収集時に家賃が約15万以下の物件に絞っています。
収集を行った4月の賃貸住宅の家賃は高騰しやすい2-3月を過ぎたとはいえ, 年間を通すと高い時期に分類されるのではないでしょうか。

データの傾向確認

賃貸物件の家賃のquantile-quantile plot。絞ったはずが習志野市に20.0万円のデータが2件入っていました…
今回は18.5万円の物件も合わせて, 外れ値として除外してモデル構築しました。

cities-rent-rental

賃貸物件の間取り別の件数。一番左は欠測値です。どの地域も1k/1DKの物件が多いです。

cities-space-rental

賃貸物件の家賃に与える影響度が大きいと思われる”床面積”と”築年数”に対して傾向を確認してみました。まずは床面積です。

cities-area

豊島区は都内なので当然ながら, 川口市や習志野市に比べ床面積が家賃に影響しやすいです。続いて, 築年数です。

cities-year

こちらも当然なのですが, いずれの地域でも築年数が経過すると家賃は下落する傾向にあります。
ただ, 10年を過ぎたあたりから落ち着いているようにも見えます。また, 50年を超える物件は中々ありません。

全体観と多重共線性の確認

重回帰分析で注意が必要な多重共線性の確認を行います。
GGally::ggpairs() で大まかに散布図行列を眺め, vif()で多重共線性の確認をして特徴量を選択します。

ggpiars-chintai-all-s2000

重回帰モデル

豊島区モデルの説明変数は床面積, 築年数, 乾燥機有無, オートロック有無, 宅配ボックス有無が残り, 調整済みR自乗は0.82になりました。
床面積が1m2広くなるごとに約2,000円高くなると予測され, これは川口市, 習志野市に対して約2倍です。

Coefficients:
             Estimate Std. Error t value Pr(>|t|)
(Intercept)  30206.80    1057.97  28.552  < 2e-16 ***
area          1989.20      25.31  78.601  < 2e-16 ***
year_built    -366.66      26.90 -13.633  < 2e-16 ***
drier         4404.36     757.18   5.817 7.21e-09 ***
autolock      5507.06     707.71   7.781 1.27e-14 ***
delivery_box  5857.11     758.77   7.719 2.03e-14 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 10340 on 1624 degrees of freedom
Multiple R-squared:  0.8246,	Adjusted R-squared:  0.8241
F-statistic:  1527 on 5 and 1624 DF,  p-value: < 2.2e-16

toshima-predict

川口市モデルの説明変数は床面積, 築年数, オートロック有無, バストイレ別, 宅配ボックス有無, プロパンガス有無, 最寄り駅までの徒歩時間が残り, 調整済みR自乗は0.76になりました。
豊島区や習志野市に比べ, 標準誤差がまだまだ大きいので説明しきれていない部分が残っています。現在, 私は川口市内の家賃45,000円のワンルームマンションに住んでおり, 以下の予測モデルに当てはめると47,678円になるのであながち外れていないモデルかもしれません。

このモデルだとプロパンガスを選択すると約5,700円安くなると予測されますが, 都市ガスに比べると毎月のガス料金は高くなる可能性があります。

Coefficients:
             Estimate Std. Error t value Pr(>|t|)
(Intercept)  37396.70    1076.81  34.729  < 2e-16 ***
area           987.59      15.40  64.128  < 2e-16 ***
year_built    -217.57      22.66  -9.600  < 2e-16 ***
autolock      9936.89     637.29  15.592  < 2e-16 ***
separator     1669.95     781.09   2.138   0.0326 *
delivery_box  6313.42     814.04   7.756 1.37e-14 ***
lpg          -5678.10     513.94 -11.048  < 2e-16 ***
distance      -421.70      37.07 -11.376  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 10140 on 2082 degrees of freedom
Multiple R-squared:  0.7571,	Adjusted R-squared:  0.7562
F-statistic: 926.8 on 7 and 2082 DF,  p-value: < 2.2e-16

kawaguchi-predict

習志野市モデルの説明変数は床面積, 築年数, オートロック有無, 最寄り駅までの徒歩時間が残り, 調整済みR自乗は0.83になりました。
サンプルサイズが500件と小さいですが, このモデルでもそれなりの説明力です。

安さのためなら古い物件でもいいという人にとっては, 習志野市に家を借りるのは良いかもしれません。

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 37326.86    1569.14  23.788  < 2e-16 ***
area         1103.30      24.23  45.528  < 2e-16 ***
year_built   -623.07      39.45 -15.792  < 2e-16 ***
autolock     4349.39    1115.40   3.899  0.00011 ***
distance     -463.82     100.76  -4.603 5.29e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 9184 on 496 degrees of freedom
Multiple R-squared:  0.8272,	Adjusted R-squared:  0.8258 
F-statistic: 593.6 on 4 and 496 DF,  p-value: < 2.2e-16

narashino-predict

3市区の回帰係数を{coefplot}で比較してみました。

coefplot

中古マンション販売価格の分析

続いて, 各地域の中古マンション販売価格の分析です。937件(豊島区 385件, 川口市 418件, 習志野市 134件)です。

データの傾向確認

中古マンション価格の quantile-quantile plot。豊島区に億ションがちらほら。

cities-price-purchace

中古マンションの間取り別の件数。一番左は欠測値です。川口市, 習志野市は3LDK/3LSDKの物件が多いです。

cities-space-purchace

高い階になるほど価格が高くなる傾向にあり, 特に豊島区はその傾向が顕著です。
サンプルサイズが影響している可能性もありますが, 川口市は高層マンションが多い一方で, 習志野市には20階以上のマンションは少ないようです。

cities-upstairs-purchace

築年数と価格の傾向はどこも似たような傾向にあります。

cities-year-purchace

全体観と多重共線性の確認

賃貸同様に全体観の確認を行いました。

ggpairs-chuko-all-s2000

重回帰モデル

豊島区モデルの説明変数は床面積, その他面積 (バルコニーや玄関ポーチなどの面積), 築年数, 緑豊かな住宅地であるか (2値)が残り, 調整済みR自乗は0.71になりました。
緑豊かな住宅地であるかは標準誤差も大きく, 微妙なところですが外さないほうがAICが小さくなりました。しかし, そもそも緑豊かな住宅地であるかという項目は基準が曖昧であるのと, 物件を掲載するときに不動産屋の担当者の主観的な判断で追加されたという可能性もあり外しても良かったかもしれません。

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept) 2363.921    173.676  13.611  < 2e-16 ***
area          43.931      2.398  18.323  < 2e-16 ***
year_built   -58.349      4.326 -13.489  < 2e-16 ***
green       1005.939    344.150   2.923  0.00369 **
area_other    40.659      6.225   6.531 2.32e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1068 on 348 degrees of freedom
Multiple R-squared:  0.7136,	Adjusted R-squared:  0.7103
F-statistic: 216.7 on 4 and 348 DF,  p-value: < 2.2e-16

toshima-predict-purchace

川口市モデルの説明変数は床面積, 築年数, 階数, リノベーション有無, システムキッチン有無が残り, 調整済みR自乗は0.71になりました。リノベーション済み物件は20/412件ありました。ちなみに習志野市は5/130件, 豊島区は34/348件です。
リノベーション済み物件が増加傾向か, 時系列で追ってみたいと思います。

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept) 1092.433    145.200   7.524 3.38e-13 ***
area          30.053      1.743  17.244  < 2e-16 ***
year_built   -32.918      2.457 -13.400  < 2e-16 ***
distance     -42.199      4.441  -9.503  < 2e-16 ***
upstairs      29.889      5.041   5.929 6.47e-09 ***
renovation   285.161    121.188   2.353  0.01909 *
kitchen      150.968     54.245   2.783  0.00563 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 506.5 on 412 degrees of freedom
Multiple R-squared:  0.7164,	Adjusted R-squared:  0.7122
F-statistic: 173.4 on 6 and 412 DF,  p-value: < 2.2e-16

kawaguchi-predict-purchace

習志野市モデルの説明変数は床面積, 築年数, 最寄り駅までの徒歩時間, 階数が残り, 調整済みR自乗は0.53になりました。説明力としてはイマイチです。

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept) 1386.974    284.112   4.882 3.03e-06 ***
area          22.233      3.390   6.558 1.17e-09 ***
year_built   -37.639      4.657  -8.082 3.84e-13 ***
distance     -59.846     11.711  -5.110 1.12e-06 ***
upstairs      66.656     17.694   3.767 0.000249 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 547.9 on 130 degrees of freedom
Multiple R-squared:  0.5476,	Adjusted R-squared:  0.5337
F-statistic: 39.34 on 4 and 130 DF,  p-value: < 2.2e-16

narashino-predict-purchace

3市区の回帰係数を{coefplot}で比較してみました。

coefplot

駅近一人暮らし用の部屋で比較

仮想の駅近一人暮らし用の部屋で比較してみます。


床面積 : 20m2
その他面積(バルコニーや玄関ポーチ) : 3m2
築年数 : 20年
最寄り駅から徒歩 : 5分
階数 : 2階
オートロック : 無
トイレバス分離 : 無
宅配ボックス : 無
浴室乾燥機 : 無
リノベーション : 無
システムキッチン : 無
プロパンガス : 無 (都市ガス)

この条件を各モデルに当てはめると結果は下記になります。

  • 豊島区 : 中古マンション販売予測価格は約2,190万円, 予測家賃は約62,666円
  • 習志野市 : 中古マンション販売予測価格は約918万円, 予測家賃は約52,263円
  • 川口市 : 中古マンション販売予測価格は約902万円, 予測家賃は約50,690円

おわりに

販売価格と賃貸価格の説明変数が一致していないですし, 賃貸経営のプラン二ングを立てるには空室リスクの影響なども考慮しなければならない点ですが, あたりをつける時の参考程度にはなるかとは思います。
最終的には物件購入や賃貸のいずれにしても, 簡単にデータを収集できない何かを自分の足を使って探すことが良い物件探しのポイントかもしれません。

Stanでベイジアンモデリング

今回は各地域別に重回帰分析でモデルを構築しましたが, 次回は同様のデータを使って勉強の意味も含めStanによるベイジアンモデリングを試したいと思います。(=> 続きはこちら)

参考情報

[1] 線形モデルによる文京区の賃貸物件価格の解釈(「最高の借家」は統計解析で見つかるか?)
[2] Rで部屋探し
[3] stat_smoothのmethod
[4] Calculation for quantile-quantile plot.