memo)の続きです。(本記事を読む上では、この記事は読まなくて大丈夫です)前の記事では、まず賃貸物件の情報サイトであるSUUMOをスクレイピングすることで、約20万件の東京23区の賃貸物件の家賃データを収集しました。RStanで実装しました。ここでいう家賃とは、毎月発生する家賃と管理費の合計を指します(以下、単に家賃と記載します)。このモデルの説明変数には最寄り駅、部屋の面積、築年数、駅からの徒歩分数を使用しました。そのため、部屋がある階数の情報を考慮できていませんでした。同じマンションでも部屋の階数が高いほど家賃は高くなります。1階や地下1階の部屋の家賃は安く設定されていることが多いですし、2階と10階では家賃にそれなりの開きがあります。最寄り駅によって、高層マンションの物件が多い駅と低層マンションの物件が多い駅があるため、階を考慮しなければ、前者の駅ほど割高に推定することになります。そこでこの記事では、先の東京23区の家賃相場のモデルの説明変数に部屋の階数を追加しました。これにより、階数が1階上がるごとに家賃がどの程度高くなるのかや、1階や地下階だとどの程度安くなるのかを解き明かしてみようと思います。築年数1年や、駅からの徒歩分数1分ごとに家賃がどの程度変化するかも合わせて示します。最寄り駅以外の全ての条件(説明変数)を揃えたとき、最寄り駅によってどの程度家賃相場が変わるかを見てみようと思います。3.0.6使うデータ2023年11月にSUUMOからスクレイピングした東京23区の賃貸マンションの賃貸データを用います。用いたのは、東京23区の賃貸物件のうち、以下に該当する物件です。124354件の物件です。階数の情報がページに存在し、かつ建物の地下階の階数<=物件の階数<=地上階の階数である物件SUUMOの誤記入なのか、3階建てのマンションなのに部屋が4階と書かれているようなことがまれにあるが、そういうものを除くということ25m2の物件と150m2の物件だったり、駅から徒歩10分の物件と駅からバスで20分、バス停から徒歩5分の物件を同じ線形モデルで説明することは無理があります。150m2の物件やバスで20分に徒歩5分の物件は、数としては多くないので、使用しないことにしたということです。前処理の内容や可視化については前の記事で詳細に触れていますので興味があれば見てみてください。徒歩分数、部屋の階数で決まると考えます。ここでいう家賃相場とは、これらの条件(=説明変数)なら平均的にはこのくらいの家賃になるという水準です(そのため、実際に観測される家賃は、この家賃相場の上下に分布します)。具体的には、以下のモデルで定式化します。このとき、物件の対数家賃の相場は$\mu_{i}$万円であると考えます。$$ただし、物件$i$について、それぞれ以下の通りとします。ないなら0面積の対数と家賃の対数は線形の関係で、その切片と傾きは最寄り駅によって違うというモデルです。要するに最寄り駅によって家賃水準が変わってくるということです。同じ面積の部屋でも家賃の高い駅と安い駅がありますし、面積を大きくしたときに家賃の上がり幅が大きい駅と小さい駅があります。これを階層ベイズで表現します4。築年数が1年増えたり、最寄り駅から徒歩1分増えたり、部屋の階数が1階上がったりするごとに家賃が一定割合増減するという仮定を置きます。部屋が最上階なら追加で一定割合家賃が上がり、反対に1階や地下1階なら2階と比べて一定割合家賃が下がるとします(家探しをしたことがあれば何となく分かると思いますが、2階以上では階が上がるごとに一定割合家賃が上がっていく一方で、1階と地下1階はそれより大きい割合で家賃が安くなると思われるため、1階と地下1階は別のパラメータに分けました。ドメイン知識ですね)。これらの割合は、最寄り駅によらず一定とします。SUUMOでは物件ごとに最寄り駅が最大3つ書かれていますが、このモデルでは最初に書かれている1番目の最寄り駅のみを使用しています。他の最寄り駅も考慮するとより精緻になりそうですが、これでも駅ごとの家賃の大まかな傾向はとらえられると思われます。Stanの実装このモデルをStanのコードで書きます。事前分布は無情報事前分布です。);}このStanコードをmodel.stanというファイル名で保存し、以下のコードでRStanでキックします。warmup=1000で約20時間かかりました。seed=1234)MCMCが収束していることをトレースプロットやRhatなどでチェックしましたが、結果は割愛します。(具体的な実装は前回の記事をご参照ください)結果Stanのパラメータ推定結果です。してmedianを採用します。これは、築年数が1年増えるごとに、家賃の対数が0.011小さくなることを意味します。築年数1年につき家賃の対数が0.011小さくなると言われてもよく分からないので、家賃が何%小さくなるのかが知りたいですね。\mathrm{age}_{i})$の事後中央値と95%ベイズ信用区間を求めればよいです。medianは事後分布の中央値、upperとlowerは95%ベイズ信用区間の上限と下限です。0.658medianの列のとおり、築年数が1年増えるごとに家賃は1%下がります。築20年の物件は、新築の物件と比較して19%(≒1-0.99^20)下がります。0.879同様に、駅から徒歩1分増えるごとに家賃は0.7%下がります。駅から徒歩10分の物件は徒歩1分の物件と比べて6.1%(≒1-0.993^9)下がります。駅から遠くても家賃はあまり下がりませんね。徒歩分数1分あたりの家賃の変化量は全ての駅で一定としていますが、地上駅やターミナル駅では駅に近すぎると電車や駅周辺の騒音の影響で家賃が下がりそうな気もします。1.170物件の階数が2階から上に1階上がるごとに家賃が1.2%上がることが分かりました。qi以下のことが分かります。最上階であることは、家賃を全く押し上げない。(exp_is_top)1階の物件は、2階の物件と比べて家賃が3.6%下がる。(exp_is_ground)地下1階の物件は、2階の物件と比べて家賃が6.6%下がる5。(exp_is_underground)階数効果と合わせて考えると、例えば地上4階地下1階建てのマンションで2階が家賃10万円なら、3階は10.12万円、4階は10.24万円、1階は9.64万円、地下1階は9.34万円くらいになるということです。妥当な感じの結果ですね。2階から3階は1.2%上がる一方、2階から1階は3.6%、2階から地下1階は6.6%下がることから、やはり1階や地下1階の物件の家賃はディスカウントされているということが分かりました。最上階だからといって、階数効果(1階につき1.2%)以上に追加で家賃を押し上げることはないというのがちょっと意外でした。新築のマンションの各部屋の家賃(新築は完成時に全階の物件が一斉に募集がかかる)を見たことがあるのですが、確かに最上階だからといって家賃が高くなることはないような気もしました。最寄り駅以外の条件を固定して、最寄り駅ごとに家賃相場がどの程度異なるかを見ることができます。25m2、築5年、駅から徒歩5分、3階の賃貸マンションという条件で、最寄り駅だけ変えてみましょう6。ちなみに25m2というのは一人暮らし用の物件でよくみられる面積です。京王線沿いの各駅です。2))左のプロットは最寄り駅と上の条件での家賃相場(万円)です。真ん中の点が推定値、左右の棒は95%ベイズ信用区間です。右のプロットはSUUMOにその最寄り駅の物件が何件あったかを示します。25m2、築5年、駅から徒歩5分、3階のマンションの家賃相場は、最寄り駅が新宿だと14.3万円、初台だと12.1万円ということを示します。ちなみに、例えば築10年だとこの結果に0.95(≒1-0.99^(10-5))をかけたものになります。明大前が下高井戸と代田橋より少し高く、また千歳烏山が芦花公園より少し高いことが面白いですね。明大前と千歳烏山は特急~各駅の全ての列車が止まること、明大前は京王井の頭線(渋谷~吉祥寺)も通ることが理由でしょうか。桜上水は新宿まで10分と近く、特急以外が止まります。閑静で住みやすい街ですが比較的お手頃な家賃で、住むにはよさそうですね。次に同じ条件で小田急線沿いを見てみます。京王線と同じく新宿が始発で、京王線の南側を走る路線です。2))代々木上原まで、下北沢まで、成城学園前までで分かれていますね。経堂~梅ヶ丘も桜上水と同じく新宿から10分強ですし、静かな住みやすい街でよいのではないでしょうか。経堂は快速急行以外が止まるので便利ですね。最後に東京メトロの千代田線沿い(代々木上原~赤坂)を見てみます。国会議事堂前~大手町は物件がほとんどないので省略します。2))赤坂は15.1万円、表参道は15.9万円、明治神宮前は16.8万円!高いですね...。他の駅なら同じ金額で二人暮らし用の物件が借りられますね。この辺りはどこも高く、例えば東京メトロ銀座線の外苑前は15.9万円、東急東横線の代官山は15.2万円です。おわりに部屋の階数や最寄り駅などによってどの程度家賃相場が変わるのかを定量的に示すことができ、役に立ちそうな結果が得られました。ツリー系の機械学習モデルの方が家賃の予測精度は高そうですが、1階は2階と比べて3.6%安いとか、初台~笹塚はほとんど家賃が変わらないといった解釈に使える知見を得るという点では統計モデリングが強いですね。ベイズモデリングなので、築年数効果のような各パラメータや家賃相場の幅をベイズ信用区間という形で知ることができるのもいい点です。家賃はまさに階層ベイズ向きのテーマで面白いですね。今後もモデルをブラッシュアップしていきたいです。アパートは木造が多くマンションは鉄筋コンクリートが多いですが、木造と鉄筋コンクリートでは耐用年数が異なるため築年数が経過することによる家賃の押し下げ効果が異なると思われます。アパートは高くても3階程度までですがマンションはより高く建てられることから、部屋の階数による家賃への影響もアパートとマンションで異なりそうです。そのため、この記事では賃貸マンションのみに絞りました。前の記事では10m2~100m2としていましたが、10m2近辺の物件でモデルの当てはまりが悪いことが分かっています。10m2近辺では面積と家賃の間の関係性が崩れていると思われます。本記事では15m2以上に引き上げました。地上階の高さが高すぎるマンションや地下階が深すぎるマンションは東京23区の賃貸物件ではわずかなため、階数が家賃に与える効果をロバストに推定する観点からこの条件を加えました。15階以下としているのは、16階以上のマンションはごくわずかであるためです(前回の記事をご参照)。↩︎この階層ベイズモデルでは、各最寄り駅における切片と傾きは東京23区全体のそれら(=23区の平均値)から一定程度ばらついたものであると定式化しています。これは、地価を考慮するとデータ生成のメカニズムに沿っていて理にかなったものです。最寄り駅ごとに別々に線形回帰するのではなく東京23区全体の傾向を借用することで、データ数が少ない最寄り駅の物件でもパラメータの推定が行えるのも階層ベイズのメリットです(縮約といいます)。地下1階効果の95%ベイズ信用区間は5.5%-7.7%と若干広いです。これはパラメータ推定に使った物件データの中に地下1階の物件の数があまり多くなかったからです。他に最上階ではないという条件も与えていますが、これまで見たように最上階かどうかは家賃に影響を与えないので、最上階だとしてもプロットは変わりません。Anubis.suzuna。