京都の学生向けアパート家賃の推定とお得な物件探し 再帰分割線形モデルを用いて Part2

Part2です。

Part1はこちらをご覧ください。

kokiando.hatenablog.com

予告通り、今回は実際に再帰分割線形モデルを用いて家賃の推定と、実際にお得な物件を探しいきたいと思います。

データの中より、モデルに取り入れられそうなカラムを抽出し、num_datにストアします。

num_dat = select(rent, title, area, floor, price, admin, maintenance, dis, deposit, key, renewal, year)

モデリング

library(rpart)
library(rpart.plot)
price_model_rpart = rpart(price ~ .,data = select(num_dat, -title))
prp(price_model_rpart, type = 4, varlen = 0)

f:id:kokiando:20190429125907p:plain

分割木プロットでモデルを視覚的に確認します。

Accuracy

num_dat$prediction = predict(price_model_rpart)
num_dat =  mutate(num_dat, residuals = price-prediction)
num_dat %>% 
  ggplot(aes(price, prediction)) +
  geom_point() +
  geom_abline(colour = "blue") +
  labs(title = "Price vs Recursive Partitioning Model")

f:id:kokiando:20190429130123p:plain

num_dat %>% 
  ggplot(aes(prediction, residuals)) +
  geom_pointrange(aes(ymin = 0, ymax = residuals), size = .1) + 
    geom_hline(yintercept = 0, linetype = 3)

f:id:kokiando:20190429130202p:plain

だいぶ散らばりはみれますが、モデルと実際の値との乖離がもっとも高いtop5物件を表示してみます。

Top 5 お買い得!

num_dat %>% 
  arrange(residuals) %>% 
  head(5)
             title area floor price admin maintenance dis deposit key renewal year prediction residuals
1         寺川ビル 15.0     4  4.35  5000          NA   3       0   5     1.1 2011   6.230303 -1.880303
2 アビタシオン鴨川 33.2     4  4.00  5000          NA  12       5  10     4.0 1991   5.577778 -1.577778
3     ヴィラ北白川 29.1     4  5.10  4000          NA   4       3  10     0.0 2015   6.230303 -1.130303
4       プチ・パレ 23.8     3  3.70  3500          NA   7       0   0     0.0 1994   4.793750 -1.093750
5 ミル・メゾンT2 25.2     2  5.30  5000          NA   7       0   0     0.0 2009   6.230303 -0.930303

この五つの物件がお買い得みたいです。 Worst 5は色々と怖いのでやめときます。