募集賃料クレンジングとオッカムの剃刀

最近estieではHuman-in-the-loopに強く取り組んでおり、私もそのHumanとしてデータの修正を中心に貢献しています。

日本のオフィスの賃料は、いわゆる家賃と違ってあまり公開されていません。estieはestie マーケット調査というプロダクトを提供しており、このプロダクトはオフィスの賃料データの網羅性を強みの1つとしています。そのため、提供する賃料が正しい事もまた重要です。

estie マーケット調査では竣工年 v.s. 賃料(坪単価)の散布図のような可視化・分析機能も備えています。そのため異常値は目立ちますし、プロダクトの信頼性を損ねます。異常値を出さない仕組みもいくつかありますが、その仕組みを作るには異常の種類やその性質を知る必要があります。この記事では不動産データに触れなくても想像しやすい異常からオフィスの募集特有の異常まで、様々な背景からくる異常値を紹介します。

そして最近趣味で調べていたオッカムの剃刀と合わせて、その修正の正しさや最強の自動修正アルゴリズムについてのお気持ちを表明します。

異常値のパターン

0円/坪

賃料不明を0と記入したのか、10000円の1を打ち損ねたのか、それとも本当に0円なのか…は分かりませんが、頻出異常値です。残念ながら無料でオフィスを貸してくれるわけではないため修正が必要です。本来の賃料を復元する事はほぼ不可能ですが、異常である事に気がつくのは最も簡単です。

気がつく方法:賃料が「0円」

正しい賃料の求め方:別の方法で獲得する

金額の単位間違い

30000円/坪を3円/坪や30円/坪としてしまうパターンです。多くのデータは「30000」や「30,000」などの表記なのですが、たまに「30.000円」(3桁区切りがピリオドになっている)や「3(3万円のつもり?)」「30k」などと入力されることがあります。残念ながら格安でオフィスを貸してくれるわけではないため、修正が必要です。SI単位好きな筆者は3桁区切りをするなら半角スペースを選びますが、業界慣行はカンマ区切りです。

気がつく方法:賃料が異常に安い。特に、「~50円/坪」

正しい賃料の求め方:10000倍か1000倍にする

総額と坪単価間違い

弊社のkenkooooが 国交省コンペ優勝!賃料予測コンペ1位解法 - estie inside blog でも書いていますが、「間取りや面積が固定されている住宅と異なり、オフィスは何もないフロアに契約後に壁を立てて契約した広さの区画を作る」などの理由でオフィスでは坪単価を使いがちです。

「総額200万円で49.58坪(結果的に40339円/坪)」のような募集と「坪単価3万円で49.58坪(結果的に総額1487400円)」のような募集、どちらも存在します。総額のつもりで坪単価が148万円としてしまったり、逆に坪単価のつもりで総額が3万円(坪単価が605円)としてしまったりするデータがあります。面積倍の値段になったり、1/面積の値段になったりします。基本的には数十倍の値になるので気がつけます*1

人間はキリがいい数字を使いがちです。そのため、605*49.58=29995.9≒30000などの場合には間違いの種類が「総額と坪単価間違い」であると確信できます。

気がつく方法:賃料が異常に高い/安い。そして面積で乗除すると相場相当の金額になり、多くの場合キリの良い数字になる。

正しい賃料の求め方:面積で掛けたり割ったりする。

衍字・脱字

不動産の賃料は完全に機械的に決めている事はほぼあり得ないと思っています。しかもそのデータを口伝して書き起こしたり、画像になって書き起こしたり…と繰り返された結果、何度も人間がタイピングする機会があります。その結果1桁抜けたり1桁多すぎたりします。抜けている文字が何かは分からない事もありますが、オフィスの坪単価や総額はキリがいい事が多いことがここでも使えます。2550円/坪は25500円/坪だろうと推測できますし、49.58坪で2403円/坪なら総額が120万円だと仮定すると24203円/坪になるので2が抜けているだろうと確信できます。

気がつく方法:賃料が異常に高い/安い。10倍すると相場になる

正しい賃料の求め方:脱字を復元したり、衍字を削除したりする

共益費を間違えて入力

住居にも共益費(管理費)がありますが、オフィスにも共益費があり得ます。入力欄を間違えると共益費が賃料として解釈されてしまいます。どちらも金額であり毎月発生するという性質も似ているためか、よくある間違いです。住居と同じで共益費は賃料と比べると1/10程度なので、これも異常に安い事から気がつけます。

気がつく方法:賃料が異常に安い。10倍すると相場になる

正しい賃料の求め方:別の方法で獲得する

坪単価と平米単価間違い

住宅では平米単価を使う事が多いですがオフィスでは坪単価を使います。契約でも正式には計量法で平方メートルを使うはずですが、業界慣行としてオフィスの賃料は坪単価で表されるのが一般的です。SI単位大好きな筆者も、estieで数年働いているうちに逆に平米単価では感覚をつかめなくなってきてしまいました。

平米単価を坪単価として解釈すると、1平米は0.3025坪なので0.3025倍の賃料になってしまいます。estie マーケット調査では坪単価を使うため逆の間違いはあまり生じず、相場の3割程度になっているデータはこの間違いだと推測できます。

気がつく方法:賃料が異常に安い。0.3025で割ると相場になる

正しい賃料の求め方:0.3025で割る

消費税

住宅の賃貸は消費税法上「非課税取引」ですが、事業用では課税資産の譲渡にあたるため、10%の消費税がかかります。estie マーケット調査では税別・共益費込みの賃料に統一して出す仕様ですが、税込の金額を記入してしまう場合があります。費税が10%とキリがいいため、30000円が33000円になっても消費税だと確信できませんが、同じ建物の他の階は30000円なのにその募集だけは33000円などは怪しいです。1.1倍なので気がつく事は難しいです。11%や9%ならもう少し確信が強まるのに

気がつく方法:11の倍数で、「「なんか怪しい」」

正しい賃料の求め方:1.1で割る

他の募集の総額が混ざっている

弊社のkenkooooが 国交省コンペ優勝!賃料予測コンペ1位解法 - estie inside blog でも書いていますが(というか上でも書きましたが)、「間取りや面積が固定されている住宅と異なり、オフィスは何もないフロアに契約後に壁を立てて契約した広さの区画を作る」という性質があります。つまり、100坪の募集を出していたけどそのうち60坪だけが契約されるという事が生じます。すると100坪の募集が残りの40坪の募集となります。新規レコードを作るべきかは別として、100坪の募集の面積だけを40に変えてしまえば楽です。

しかし賃料を総額で指定している場合があります。100坪で300万円の募集を面積だけ変えると、40坪300万円の募集になります。変えないのは坪単価であり総額ではないのに、坪単価が3万円から7.5万円になってしまいます。これではなかなか借りてもらえないでしょう。

逆に、募集を出していたら隣の部屋が開いた場合には面積が増えて賃料が安くなる場合もあります。募集開始日からの経過日数などの関係なのか、こちらの例は少ない気がします。

気がつく方法:賃料が異常に高い。同じ階の区画を面積に含めると坪単価が相場になる。

正しい賃料の求め方:同じ区画を面積に含めた場合の坪単価にする

上記の組み合わせ

人間はミスをするだけでなく、ミスは1つだと限りません。「他の募集の総額が混ざった上に平米単価にしてしまう」、「共益費だけ打ち間違えた状態で計算して、共益費込みの賃料のみを教えてくれる」なんてコンボ技が垣間見えます。言語化はまだ出来ていない状態ですが、異常値を何十パターンも見ていると、共益費込み賃料だけを見て「共益費だけ打ち間違えてないか?」とピンときたりします。

気がつく方法:ひらめきと気合い

正しい賃料の求め方:ひらめきと気合い

異常値の見つけ方・正しい賃料の求め方2

たくさんの方法を書いていますが、異常値の異常たる所以は相場との乖離です。相場観があれば気がつけますし、同じ建物や近くの似たスペックの建物の募集に比べて賃料が大きく違うなら、そこに理由があるはずです。その理由は入力ミスに限らず、セットアップオフィスであったりその階だけ天井が高かったり、あるいは部屋の形が使いやすかったり皇居が見えたりといった不動産特有な上に定量的にデータ化するのが面白そうな性質まで様々あります。

estieでは社員の入力を含めた多数のデータソースからのデータを集約して賃料を決定しています。データソースが増えるほど相場の精度は上がりますし、異常値を欠損値のように他のデータから補完できます。「正しい賃料の求め方」と書きましたが、多くの場合は他のレコードから補完できますし、正しい賃料が分かるからこそ、その間違え方にも納得して自信を持って修正できます。

賃料の修正とオッカムの剃刀

オッカムの剃刀

話は大きく変わりますが、「オッカムの剃刀」という考え方の指針があります。これは「必要以上に多くの仮定を使うべきではない」や「同じ説明力なら、より単純な説明を採用すべき」などと表現される考え方です。哲学の分野から科学・データサイエンスの分野まで広く使われる概念で、私は昔、これを単に美学として認識・使用していました。

5月の連休中に趣味で『世界はシンプルなほど正しい 「オッカムの剃刀」はいかに今日の科学をつくったか』や『オッカムのかみそり: 最節約性と統計学の哲学』などの書籍を読みました。そしてオッカムの剃刀の考え方を数理モデルの選択基準として再解釈していました。ざっくり言うと、「データDが得られたという前提でモデルMが正しい確率 P(M|D)は、モデルMを前提としてデータDが得られる確率P(D|M)とモデルMがあり得る確率の積に比例する」という考え方です。これはベイズの定理のP(M|D) = P(D|M)P(M) / P(D)に対応し、データが得られた段階でP(D)=1なのでベイズの定理の分母は省略しています。この解釈でのオッカムの剃刀を思い出しながら賃料を修正していました。

オッカムの剃刀の数理モデルの選択基準を使った、正しい賃料の見つけ方

例えば相場が坪単価20,000~30,000円の地域において、49.58坪の物件が坪単価2,403円で取引されていたというデータがあったとして

  • 2403円/坪である、単に格安な募集(事故物件?)
  • 24003の打ち間違いである
  • 24903の打ち間違いである
  • 25403の打ち間違いである
  • 25000を2403に打ち間違えている(!?)
  • 2403円/平米/10日(23831円/坪に相当)という変な単位で送られていた(!?!?)

など、2403円/坪が生じるモデルは無数に存在します。まずは総額が120万円だと24203円/坪になることに気がつかずにP(M|D)を計算してみましょう。

例えば一つ目の「2403円/坪である、単に格安な募集(事故物件?)」について考えます。モデルMを「何らかの理由で1桁安い」とすると、何らかの理由があっても1桁安い事があり得るのは0.01%(1/10000)もないだろう…と雑に上から抑えます。そして「1桁安い」モデルを前提としても2403円になる確率は、相場の20000~30000に対し「2000, 2001, 2002, … 2999, 3000」の約1000通りがあるため、1/1000以下となります(厳密に言えばキリの良い数字ではないので、もっと低いでしょう)。つまり、比例定数をcと置くと、P(M|D) <= c * 1/10000 * 1/1000 = c*1/107と計算できます。

同様に計算すると下記の様になります。(例なので箇条書き部分は読み飛ばしてもOK)

  • 2403円/坪である、単に格安な募集(事故物件?)という仮説
    • モデルM: 何らかの理由で一桁安い
    • 何らかの理由で一桁安い確率P(M): 1/100000以下
    • 何らかの理由で一桁安いとき、2403円/坪になる確率P(D|M): 1/1000以下
    • 単に格安な募集であり、2403円/坪である確率に比例するP(D|M): c * 1/107以下
  • 24003の打ち間違いである
    • モデルM: 正解は24003であり、脱字を起こしてしまう
    • 正解が24003である確率P(M1): 1/10000以下(相場の20000, … 30000の10000通りとして)
    • 脱字を起こしてしまう確率P(M2): 1/100程度
    • P(M) = P(M1) * P(M2) = 1/10000以下 * 1/100程度 = 1/106以下
    • 正解は24003であり、脱字を起こしたとき、2403になる確率P(D|M): 2/5
    • 24003の打ち間違いである確率に比例するP(D|M): c * 4/106以下
  • 24103の打ち間違いである
    • モデルM: 正解は24103であり、脱字を起こしてしまう
    • 正解が24103である確率P(M1): 1/10000以下(相場の20000, … 30000の10000通りとして)
    • 脱字を起こしてしまう確率P(M2): 1/100程度
    • P(M) = P(M1) * P(M2) = 1/10000以下 * 1/100程度 = 1/106以下
    • 正解は24103であり、脱字を起こしたとき、2403になる確率P(D|M): 1/5
    • 24103の打ち間違いである確率に比例するP(D|M): c * 2/106以下*2
  • 25000を2403に打ち間違えている(!?)
    • モデルM: 正解は25000であり、盛大な誤字(というか勘違い?)
    • 正解が25000である確率P(M1): 1/10以下(キリがいいのでありえそう)
    • 盛大な脱字を起こしてしまう確率P(M2): 1/10000
    • P(M) = P(M1) * P(M2) = 1/10以下 * 1/10000程度 = 1/105以下
    • 正解は25000であり、盛大な誤字を起こしたとき、2403になる確率P(D|M): 1/10000*3
    • 25000を2403に打ち間違えている確率に比例するP(D|M): c * 1/108
  • 2403円/平米/10日(23831円/坪に相当)という変な単位で送られていた(!?!?)
    • モデルM: [円/平米/10日]という不思議な単位を採用した値がある
    • [円/平米/10日]という不思議な単位を採用する確率P(M): 1/107以下
    • [円/平米/10日]という不思議な単位を採用したとき、2403になる確率P(D|M): 1/10000*4
    • 2403円/平米/10日(23831円/坪に相当)という変な単位で送られていた確率に比例するP(D|M): c * 1/1011以下

最もあり得る仮説は、P(D|M)が最大となる「24003の打ち間違いである」になりました。比較の結果、「24003の打ち間違いである」可能性が「24103の打ち間違いである」の2倍くらいあり得そうだな…程度の弱い気持ちであり、最良の仮説ではあるので24003と修正するのが最もマシだけれども、24003円である確率は低いため修正に自信は持てません。

総額が120万円に気がつくことの価値

総額が120万円だと24203円/坪になる性質に気がついてみましょう。ほとんどの仮説については同じ結果が得られますが、「24203の打ち間違いである」仮説のみが修正されます。

  • 24203の打ち間違いである
    • モデルM: 正解は24203であり、脱字を起こしてしまう
    • 正解が24203である確率P(M1): 1/100程度(総額がキリがいいのでとてもあり得る)
    • 脱字を起こしてしまう確率P(M2): 1/100程度
    • P(M) = P(M1) * P(M2) = 1/100程度 * 1/100程度 = 1/104程度
    • 正解は24203であり、脱字を起こしたとき、2403になる確率P(D|M): 1/5
    • 24203の打ち間違いである確率に比例するP(D|M): c * 2/104程度

他の仮説に比べ、P(D|M)が2桁も高くなりました。今回の例では

  • 24003である確率P(M1): 1/10000以下
  • 24203である確率P(M1): 1/100程度(総額がキリがいいのでとてもあり得る)

と控えめな差にしましたが、実データを見ると30000円に比べ30003円は約1/5000しかないなど、キリがいい賃料は他の賃料に比べ数千倍の量があります*5。ここまで差があれば24203円の間違いであるといってもいいでしょう。

上記のP(M)などは感覚であり、実データで検証してないものを含みますし、私が思いついてないモデルがあるかも知れません。確実に24203円と言えるほどの論理的裏付けを行ったわけではないです。それでも、かなり高い確率――感覚では98%以上――で24203円が正しい賃料だと思っています。そこで、この記事では「605*49.58=29995.9≒30000などの場合には間違いの種類が「総額と坪単価間違い」であると確信できます」や「49.58坪で2403円/坪なら総額が120万円だと仮定すると24203円/坪になるので2が抜けているだろうと確信できます」という、推測にあえて「確信」という強めの言葉を使いました。

まとめ

賃料の間違い方は様々です。異常値の気がつき方は、結局「相場と違う」ではありますが、その異常値が生まれた理由を推測することで正しい賃料を復元できます。今回は趣味でオッカムの剃刀という考え方と合わせて説明しましたが、オッカムの剃刀なんて知らなくても、感覚で「24203円って総額で見たら120万円ピッタリだし、これで間違いないだろ!」としてしまう気持ちはあります。大体それでいいと思います。ただ、もし修正作業を機械に任せるなら、賃料の分布や人間の間違いのパターンや出現確率、キリがいい数字になりがちなどの性質までを定量的に使える機械に完全に安心して任せたいなと思っています。

ま、貸主に問い合わせると正解を知れることがあるのでその手法も使っていますけどね。

データクレンジングに興味がある方、ご応募お待ちしております。

hrmos.co

*1:1坪程度だと坪単価の金額だけで気がつく事は難しいですが、1坪の募集はほぼ個室であるため、estie マーケット調査のユースケースとは異なります

*2:0が多いほど、0が抜ける確率が高い分24003モデルとの差が少しある

*3:こんなに盛大な誤字なら他の4桁にも同程度の確率で誤字しそう

*4:こんな不思議な単位なら他の4桁にも同程度の確率で誤字しそう

*5:30001円だと丸め誤差などで1/100程度と少し高めです

© 2019- estie, inc.