About connecting the dots.

data science related trivial things

中古マンション売買データを分析してみた(1) - 築年数と駅からの距離は価格にどう影響するか

新しい年度になって消費税も上がったことで,3月までの駆け込み消費*1の反動でマンションとか全く売れていないんだろうなぁと思う今日この頃です*2.個人的な趣味でいうと新築よりは中古派ですので,増税前に無理矢理ローン組んだ人がさくっと数年で手放したのを買うのとかが,味があってよいと思うわけですけれども.2015年に消費税が10%にあがる公算も高そうですしね.

さて,先日こんな興味深い記事を拝見いたしました.

徒歩5分vsバス利用、中古マンションの値下がり具合を可視化 - マンションチラシの定点観測 | マンション選びのお役立ち情報ブログ

REINSといえば,不動産会社御用達の物件データベースなわけですが,当然のことながら業者専用のデータベースなので,私のような一般の人はみることができません.と思っていたら,上記記事で紹介があるように,中古物件の成約済みデータに関しては閲覧可能なんですね.

上記記事では,駅からの距離で物件価格の下落がどう変わってくるか,という点について興味深い考察がなされています.曰くバス物件は駅近物件に比べ,築年数が経過したときの中古価格下落の可能性が高い,とのことです.ただ,この場合は船橋駅限定ということなので,他の地域でも同様の分析をやってみたくなりますね.特に船橋の場合,徒歩5分以内物件の大半が1990年以降の物件に集中しているようですし*3,なのでもう少しデータを増やして深堀していきたいと思います.

データ取得

アプローチ

REINSからデータをとってきてPythonで前処理をして,Rに突っ込むという形を取りました.本当はデータ取得部分もスクレイピングで自動化したかったんですが,ページ構成がちょっとややこしてくてMechanizeだとダメっぽかったので,いったん手作業でhtmlを保存してスクリプトで処理しました.コードはgithubにあげてあります.

データ概要

神奈川県川崎市,および横浜東部で2013年度に売買が成立したマンションの全データ合わせて4828件が分析対象になります.取得できたカラムは以下の通りです.

項目 備考
沿線 東海道本線, 南武線, 東急東横線など23路線
最寄り駅
駅からの距離 5分未満,5-10分,10-15分,15分以上,バスの5段階
所在 町名まで
単価(万円/m²)*4
専有面積 20㎡刻み
間取り 1DK, 2LDKなどあらゆる刻み
築年 1960年代以降
成約時期 2013/4-2014/3
用途地域

分析結果

駅からの距離で群分けした線形回帰

もともとのデータ自体,駅からの距離はカテゴリかる変数になっているので,群分けして回帰してしまうことにします.実行コードは長ったらしいのでエントリの最後にまとめてます.こちらもgithubに載せています*5.ここでポイントなのは,駅からの距離が近いほど,築年数経過による価格下落幅が大きいということです.少なくとも,上述のエントリにおける,船橋の結果とは逆の結果が得られています.

http://f.st-hatena.com/images/fotolife/S/SAM/20140518/20140518082847_original.jpg

ただし,上記の結果は築年から平米単価を予測しただけの単回帰ですので,これに部屋の広さと間取りも追加して回帰モデルを構築しました.結果は同様で,駅からの距離が近いほど.築年経過により住宅価格が落ちやすいことがわかります*6

駅からの距離 偏回帰係数(B)
徒歩5分以内 1.1220110
徒歩10分以内 0.9485663
徒歩15分以内 0.9833992
徒歩15分超 0.7235186
バス 0.6419571

局所回帰でもう少し細かくみる

どうしてこのような結果が得られたのでしょうか.プロットをみてみると,船橋のデータに比べて,特に築年が現在に近いマンションほど価格の幅が大きいことが見て取れます.つまり最近のマンションほど安いマンションと高級マンションの差が広がっているといえます.これがなぜなのかは,不動産の知識が足りないのでなんともいえないのですが... で,さらに最近のマンションは高い価格帯の方向に裾野が広がっており,超高級マンションが割とある,ということのように思えます.要するに2000年頃以降に駅前タワマンが激増したせいなのかなぁという気はしますね*7

ということで,先ほどの回帰直線を局所多項式回帰で,近傍データだけ使って回帰してあげる形にすると,以下のようなグラフになります.明らかに1990年以降で,駅から近いマンションの価格が上昇しているのが見て取れます.そう考えると,船橋の結果は単に駅から近いマンションがほとんど1990年代以降にしか存在しなかったため,価格が下落しないようにみえていただけ,ともいえるでしょう*8

下の図でも,1990年代前半に高価格帯の物件が全くないのは,バブル崩壊の影響もあるんでしょうね,きっと.バブル崩壊で,高級物件なんてたててる場合じゃねぇ,ということになって,そもそもデベロッパーから高級物件が供給されてないのかもしれません.

余談ですが,この手の取引データについては一般に生存バイアスといわれるようなバイアスがかかっていることは明らかなので,注意をする必要があります.今回のデータでいうと,築20年以降の物件の価格の下落が緩やかなのではなく,単にそれ以上古い物件は条件が悪い場合に売買が成約しないパターンが圧倒的に多いため,結果的に価格が下落しないようにみえているだけ,という部分が少なからずあるということです*9

http://f.st-hatena.com/images/fotolife/S/SAM/20140518/20140518082848_original.jpg

なお,もう少し補足をすると,中古マンションの価格をグロスでみた場合のデータがこちらにまとまっており,割と線形でない形で中古価格が決まっている部分があることがわかります.特に専有面積で40-50㎡でいったん価格があがった後,80㎡以上で再度価格が上昇する,というふた山の分布は興味深いです.そして今回のデータでは取得不可だったものですが,大規模マンションほど同じ条件でも中古での売却価格が高くなるというのは,やはりマンション自治の崩壊リスクやデベロッパーの手厚いケア,価格に対して設備が充実している,といった数字で表せない要件が多いということになるのかもしれません.

ということで

まずは船橋の結果と合わせて,簡単な回帰モデルを試してみました.ですがもちろんこの先があります.今回のモデルでは,まだ様々な要因をモデルに組み込んではいません.たとえば路線.東急東横線はプレミアム価格がある一方で,相鉄線は敬遠される,みたいな話ですね.それ以外にも駅でも同様のことがいえるでしょう*10.次回はこれらを組み込んだモデルを眺めていきたいと思います.ということで,次回に続く!

実行コード

駅からの距離で群分けした線形回帰

qcolors <- c("#720da8", "#f39800", "#009944", "#0068b7", "#e4007f")
get_graph <- function(graph, data, color) {
  graph <- graph + geom_point(data=data, shape=20, size=3, col=color)
  return(graph + geom_smooth(data=data, method="lm", col=color))
}
g <- ggplot(data=d, aes(x=from, y=price, fill=reorder(distance_raw, distance)))
for (i in 1:5) {
  g <- get_graph(g, subset(d, distance==i), qcolors[i])
}
g <- g + xlim(1960, 2014) + ylim(0, 120) + xlab('築年 [年]') + ylab('平米単価 [万円]')
g <- g + labs(fill='駅からの距離')
g <- g + theme_bw(base_family = "HiraKakuProN-W3")+
  theme(axis.title.x=element_text(size=20),
        axis.title.y=element_text(size=20),
        axis.text.x=element_text(size=16),
        axis.text.y=element_text(size=16),
        legend.title=element_text(size=20),
        legend.text=element_text(size=16))
plot(g)

他の項目も加えた線形回帰

coefs <- c()
for (i in 1:5) {
  # lm
  d.part <- subset(d, distance==i)
  d.part.lm <- lm(price~space+room+from, data=d.part)
  coefs[i] <- summary(d.part.lm)$coefficients[4]
}

局所線形回帰

qcolors <- c("#720da8", "#f39800", "#009944", "#0068b7", "#e4007f")
get_graph <- function(graph, data, color) {
  graph <- graph + geom_point(data=data, shape=20, size=3, col=color)
  return(graph + geom_smooth(data=data, col=color))
}
g <- ggplot(data=d, aes(x=from, y=price, fill=reorder(distance_raw, distance)))
for (i in 1:5) {
  g <- get_graph(g, subset(d, distance==i), qcolors[i])
}
g <- g + xlim(1960, 2014) + ylim(0, 120) + xlab('築年 [年]') + ylab('平方単価 [万円]')
g <- g + labs(fill='駅からの距離')
g <- g + theme_bw(base_family = "HiraKakuProN-W3")+
  theme(axis.title.x=element_text(size=20),
        axis.title.y=element_text(size=20),
        axis.text.x=element_text(size=16),
        axis.text.y=element_text(size=16),
        legend.title=element_text(size=20),
        legend.text=element_text(size=16))
plot(g)

*1:1-3月のGDPも5.9%と予想を大きく上回ったようですしね

*2:三井住友トラスト不動産さんが,昨年の夏に今後の需給分析を出したりしているみたいですが,おおむねその通りの印象ですね

*3:船橋の駅前が大規模に開発されたのが,その頃以降ということなのではないかと,ぱっと思いました.がちゃんと開発の歴史を調べているわけではないです.

*4:こちらの東京近郊各都市の坪単価推移をみると,川崎市の平均坪単価は140万円(=平米単価で42.5万円),横浜市の平均坪単価は120万円(=平米単価で36.4万円)ということがわかります.新築マンションの平米単価80万円以上のゾーンは坪単価換算で250万以上,80㎡のマンションが諸経費込みで7000万近くする高級物件ということがよくわかります.

*5:この回帰に関しては,ggplot2のgeom_smoothを使っただけのものなので,単回帰です

*6:このcoefsの意味は,築年数が1年古くなるごとに下落する平米単価[万円]です.徒歩5分以内のマンションは,1年経つ毎に1㎡あたり1.12万円売却価格が下がるといえます

*7:調べてみると,規制緩和に伴う1997年の建築基準法改正で,容積率上限600%まで日影規制の対象外になったことで,それ以降タワーマンションが激増したということもあるようです.それ以外に,バブル崩壊後の企業の資産リストラの一環で,好立地の大規模用地が放出されたということも背景要因にあげられるみたいです.

*8:実際,中古マンション実売価格の推移をみても,築20年を越えた物件の価格下落というのは,非常にゆるやかになるもののようですし.リンク先のデータからみえるのは,マンションの価格は10年で2割,次の10年でさらに2割下がり,だいたい築20年で新築売値の60%程度まで値下がりするということのようです.余談ですが,リンク先のデータでの東京大阪名古屋の3大都市圏の比較だと,東京だけずば抜けて他の2都市圏の1.6-1.7倍程度の住宅価格がついており,極めて東京一極集中なのがわかり興味深いです.

*9:もちろん中古不動産の価格は,新築マンションの供給状況に依っても大きく変化してきます.例えば中古マンションの売り出し価格と成約価格の乖離率のトレンドをみればわかるように,時間をかけても売れないため,価格をどんどん引き下げないといけない物件というものは少なからずあるわけです.

*10:たとえば,マンションにおけるPBR(株価資産倍率,高い方が好ましい)を計算しているこちらをみても,無駄にプレミアムがついたり,逆にお買い得だったりする駅というものがあるわけです.