【連載 第2回】【B103】単純平均を信じるな
中央値と外れ値除外で、不動産データのノイズを抜く

B102で、老生の不動産価値算出エンジンは、ひとまず動いた。
国交省の実勢価格データから、対象エリアの取引情報を拾い上げ、129件の有効データをサルベージした。そして、土地100㎡・築15年という検証条件のもとで、推定土地価値、推定建物価値、総合ポテンシャルを算出した。
ここまで来ると、つい言いたくなる。 「よし、これで自宅の価値が見えた」と。
だが、ここで安心してはいけない。 不動産データには、罠がある。しかもそれは、Googleドライブの自動変換や文字化けのような、わかりやすい技術的なバグではない。
もっと静かで、もっと自然で、もっとそれらしい顔をした罠である。 それが、単純平均 だ。
1. 単純平均という、もっともらしい罠
平均値は便利である。 たくさんの取引データを一つの数字にまとめてくれる。グラフにも載せやすいし、説明もしやすい。
だが、不動産取引の世界では、その便利さが危ない。 実際の取引データには、さまざまな事情が混じっているからだ。
- 相続で急いで手放した安値取引
- 業者が買い叩いた物件
- 道路条件が極端に悪い旗竿地
- 逆に、とんでもない大富豪の豪邸(外れ値)
一件だけ極端に安い取引があるだけで、平均値は大きく下に引っ張られる。逆に特殊な高値取引があれば、上に歪む。
数字は嘘をつかない。 だが、平均値はときどき化粧をする。
この化粧を落とし、実態からズレた数字を補正しなければ、純度100%のポテンシャルとは呼べない。
2. 第2段エンジン:中央値という「現実寄りのセンサー」
平均値に騙されないために、老生の第2段エンジン(Math Hackモジュール)では 「中央値(Median)」 を相場センサーとして組み込んだ。
中央値は、データを小さい順に並べたとき、ちょうど真ん中に来る値だ。極端な外れ値に引っ張られにくいため、不動産のようにノイズの大きいデータでは、平均値よりも「実感に近い中心」を示すことが多い。
さらに、 「四分位範囲(IQR)」 を用いて外れ値を除外する。 データの中央50%、つまり「普通の取引ゾーン」を抜き出し、そこから大きく外れたデータをいったん別扱いにするのだ。
外れ値は敵ではない。そこには個別の物語がある。 だが、相場の「基準値」を出すときには、一時退避させなければならない。
3. 実装:サニタイズと0.1秒のハッキング
今回のB103エンジンでは、統計補正と同時に 「データのサニタイズ(匿名化)」 も実装した。 129件の生データをそのままフロントエンドに流せば、物件が特定されるプライバシーのリスクがあるからだ。
GASのコード内で、取引価格と面積に 「±5%のランダムノイズ」 を付与するシールドを展開した。これにより、統計的な分布の特徴(平均や歪み)は完全に維持したまま、個人の特定が物理的に不可能な 「安全なダミーモックデータ」 が生成される。
以下が、そのすべてを統合した第2段エンジンのアーキテクチャである。
🔍 詳細なバックエンド処理フロー図を開く
4. 戦果:出力された安全な燃料(JSON)
新エンジンに国交省のCSVを流し込んだ結果、ログは以下のタイムスタンプを刻んだ。
12:53:07 情報 ✅ csv読み込み完了。文字数: 29187
12:53:07 情報 ⏳ bulletproofCsvParse (無限軌道式パーサー) 突入...
12:53:07 情報 ✅ 防弾パーサー脱出! 取得した行数: 184
12:53:07 情報 ✅ parseRealEstateData 完了。抽出件数: 129
約3万文字の生データ解析から、129件の抽出、サニタイズ、IQR計算、JSONの生成まで、わずか1秒未満(一瞬)で駆け抜けた。 吐き出されたフロントエンド用の燃料(JSON)がこれだ。
{
"status": "success",
"metadata": {
"salvagedCount": 129,
"areaName": "関西圏 某区Aエリア",
"description": "特定リスク排除済み。IQRによる外れ値検知を含むサニタイズ・モックデータ"
},
"statistics": {
"landUnitPrice": {
"rawAverage": 196726,
"median": 190000,
"iqrFilteredAverage": 192500
}
}
}
これで、不動産価値は一点の危うい数字ではなく、「分布の中の安全なレンジ(幅)」として見えてきた。
査定サイトを信じる前に、自分のデータを疑う。 化粧を落とした素顔のデータが、次なるUI構築の礎となる。
次回【B104】では、いよいよこのJSONデータを飲み込ませ、Astro + Reactで「見える査定エンジン(ダッシュボード)」を構築していく。
🎧 AIによる副音声解説(Audio Overview)
本プロジェクトの裏側や思想について、AIホスト2名が熱く語るポッドキャスト風解説です。記事と合わせてお楽しみください。
執筆協力:ChatGPT+Gemini+NotebookLM / 編集・監修:電脳古老)
📚 連載:不動産固有ポテンシャル
- 第1話:国交省データで導く「不動産固有ポテンシャル」──ブラックボックス査定を壊す、3つの罠と算出モデル
- 第2話:単純平均を信じるな──中央値と外れ値除外で、不動産データのノイズを抜く (今ここ)
- 第3話:見える査定エンジンを実装する──Astro + Reactで構築する透明なUIダッシュボード
- 第4話:生存戦略としてのデプロイ──「見える査定エンジン」をCloudflareのエッジへ放つ
💬 電脳古老&変AIへのコメント
記事の感想・質問・雑談をどうぞ(200文字くらいまで推奨)
まだコメントはありません。一番乗りで古老とAIに話しかけよう!