上一篇运用 GLR 对金县房价进行建模,校正 R² 达到 0.69,整体表现尚可。然而,当打开残差地图后发现——湖岸沿线区域几乎全是深色标记。
残差空间模式示意图
成片颜色扎堆的出现,说明模型遗漏了重要的空间结构信息。
该模型系统性地低估了湖滨地带的房价——并非偶尔误判,而是始终朝着同一个方向偏离。为什么会发生这种情况?
原因在于 GLR 对全城采用了同一套回归公式:面积每增加 100 平方英尺,全市统一按照相同金额上调。然而,市中心的那 100 平方英尺与湖边的 100 平方英尺,其内在价值截然不同。这就好比你在全城开了 10 家奶茶店,统一菜单、统一定价。写字楼旁边的店销量火爆,而老城区的店却无人问津——问题不在奶茶本身,而是不同区域的需求差异。

GLR / GWR / FBCR 三种模型对比图
三种方法的核心差异所在。
本教程(第二篇)要解决的就是这个空间非平稳性问题。ArcGIS Pro 提供了两种新方法:地理加权回归(GWR)与基于森林的增强分类回归(FBCR)。
1. GWR:每个位置独立绘制回归线
GWR 的思路非常直观:既然全市统一的公式不准确,那就针对每个地理位置分别计算一组系数。
在预测某个位置的房价时,只参考其周边的样本数据——距离越近的样本权重越大,距离越远的权重越小。这样一来,市中心会呈现“面积系数高、湖景系数低”的模式,而湖边则恰恰相反——“面积不那么重要,湖景才是决定性因素”。
打个形象的比方:你在全城经营了 100 家水果店。普通回归的做法是“全城统一定价:西瓜 8 元/斤”,取一个平均值,所有门店照搬。而 GWR 允许每家门店自行定价:老城区消费能力低,定为 6 元;CBD 白领不在意价格,定为 10 元;景区游客对价格更加不敏感,定为 12 元。因为它参考的不是全城平均值,而是自身附近几家门店的实际销售数据。

GWR 工具参数设置(官方教程截图)
GWR 的变量与参数配置界面。
在金县案例中,GWR 得到的校正 R² 为 0.87——较 GLR 的 0.69 有了显著提升。表面上看只多了 0.18,但在房价预测领域这属于质变。
此外,GWR 具有优良的可解释性:你可以打开结果图层,查看每个变量在不同位置的系数。当老板询问“为什么这套房子估价 700 万”时,你能够回答“面积贡献了 30 万,学区贡献了 20 万,靠近地铁贡献了 15 万……”。

GWR 结果空间分布图(官方教程截图)
GWR 输出结果的空间可视化。颜色越深,表示预测值越高。
但 GWR 也存在两个明显的短板。
第一个短板:每条局部回归线仍然是直线。现实世界中面积与房价的关系并非线性——小户型单价偏高,大户型单价偏低,曲线呈弯曲形态。GWR 在每个局部都假设为直线,无法刻画这种非线性趋势。
第二个短板更为隐蔽:GWR 对所有变量采用同一把“尺度尺度”。所谓“尺度”,即用于计算系数的邻域范围。地铁站的影响可以跨越数个街区,而街道绿化可能只在附近几百米内有效。但 GWR 用统一尺度衡量所有变量——在老城区,地铁信号的强度过高,导致绿化那点微弱的信号直接被掩盖。
多尺度地理加权回归(MGWR)正是为了应对这一问题而提出的。
2. MGWR:每个变量独立选择自己的尺度
GWR 用一把尺子衡量所有变量,而 MGWR(多尺度地理加权回归)允许每个变量自行选择作用范围。地铁站采用 5 公里带宽,绿化采用 300 米带宽,互不干扰。

GWR vs MGWR 尺度示意图
GWR 用统一尺度衡量所有变量;MGWR 则为每个变量配备各自独立的尺度。
广州一篇题为《建成环境对共享单车周末出行的影响》的研究中,研究者利用 MGWR 分析了周末骑行数据,发现了一个有趣现象:道路密度在城中村区域影响最大——城中村道路密集,居民更倾向于骑行。然而,城市绿地在公园附近反而抑制了骑行——可能是由于政府管制。同一个变量在不同地点呈现完全相反的效果,只有 MGWR 能够捕捉到这种差异性。
MGWR 代表了更理想的技术方向。但客观而言,目前 mgwr 库的文档资料与社区支持尚不够成熟,踩坑成本偏高。GWR 的“一把尺子量所有变量”固然粗糙,但其优势在于工具链稳定,在 ArcGIS Pro 中可直接调用。
3. FBCR:不画回归线,询问 250 棵决策树
FBCR 走的是另一条技术路径——其在 ArcGIS Pro 中的全称为“基于森林的增强分类与回归”(Forest-based and Boosted Classification and Regression),底层算法实质上就是随机森林。它的思路完全不同:不绘制任何回归线,而是训练 250 棵决策树,每棵树独立进行预测,最后取平均值。
你可以想象成询问 250 位房产中介“这套房子值多少钱?”中介 A 看重面积,中介 B 重视学区,中介 C 关注装修。每个人判断的侧重各不相同,但 250 人的平均结果,通常比询问一个人更可靠。

FBCR 变量重要性排序图(官方教程截图)
在模型视角下,哪些变量最为关键。
FBCR 在金县数据上的测试 R² 同样为 0.87,与 GWR 持平。但其训练 R² 高达 0.97——说明在训练数据上几乎实现了完美拟合,换用新数据后精度会有所下降。
它最大的优势在于能够处理非线性关系。面积与房价之间的曲线形态,对 FBCR 而言毫无障碍——决策树天然通过递归分割实现拟合,无需假设线性关系。变量众多也不成问题,即便你塞入 50 个变量,模型依然稳定运行。
代价是什么?你无法知道它为什么给出这样的结果。它告诉你“这套房子值 650 万”,但你说不清“为什么不是 700 万”。在学术论文中,当审稿人问及“系数的空间分布如何”时,你无从回答。在房产估值报告中,当业主质问“凭什么比邻居低 50 万”时,你只能回答“模型计算得出”。此外,结果具有随机性:同一模型运行多次,每次输出的结果会略有差异。

FBCR 预测结果空间分布图(官方教程截图)
FBCR 输出房价预测的空间格局。

FBCR 验证 R² 图表(官方教程截图)
FBCR 的验证 R² 值可视化。
4. 如何选择?取决于你的具体问题
GWR 与 FBCR 的 R² 均为 0.87,因此问题不在于“哪个更精确”,而在于你的应用场景更适合哪一种。

三种模型拟合金县房价的精度对比
三种模型的 R² 对比。GWR 与 FBCR 精度相同,但底层原理迥异。
需要向他人解释“为什么” → 选择 GWR。无论是撰写房产估值报告还是学术论文,审稿人一定会追问“您的系数在空间上是如何分布的”。GWR 能够展示每个变量在每个位置的系数,解释力最强。
只追求“更准确”,无需解释原因 → 选择 FBCR。如果开发的是房价预测 APP,用户只需输入地址和面积即可获得估价,没人关心“为什么是 650 万”。FBCR 能处理非线性关系,且不惧变量过多。
发现不同变量的影响范围差异显著 → 选择 MGWR。在进行城市规划研究或交通分析时,如果发现“地铁站影响横跨 5 公里,而绿化仅影响 500 米”,GWR 的统一尺度会将小尺度信号淹没。
速查表
| 你的情况 | 选哪个 | 原因 |
|---|---|---|
| 需要向别人解释“为什么” | GWR | 每个变量的系数均可视化呈现 |
| 只追求“更准确” | FBCR | 能处理非线性、变量多的情况 |
| 变量影响范围差异很大 | MGWR | 每个变量拥有专属尺度 |
| 变量较少(少于 10 个) | GWR | 足够使用,且可解释 |
| 变量较多(超过 20 个) | FBCR | 变量过多时 GWR 会不稳定 |
| 学术论文场景 | GWR 或 MGWR | 审稿人期望看到系数分布 |
| 产品 / APP 场景 | FBCR | 用户只看结果,不需要解释 |
在本金县案例中,最终落地的方案是 GWR。尽管 R² 均为 0.87,精度没有差别,但 GWR 能够告诉我每个变量在每个位置的系数。对于写论文、做报告而言,这一点比“模型说的”更有价值。如果你做的是产品——用户只看数字而不关心解释——那么 FBCR 更省心省力。
MGWR 是更理想的前进方向。GWR 的“一把尺子量所有变量”确实过于粗糙,只是目前 mgwr 库的文档与社区支持仍不够成熟,踩坑成本过高。半年后再做评估。
参考链接
[1] https://www.renhai.online/blog/arcpy-tutorial/regression-study-notes
[2] https://mgwr.readthedocs.io/en/latest/
[3] https://github.com/pysal/mgwr
[4] https://doi.org/10.1080/15568318.2023.2299018
[5] https://pro.arcgis.com/en/pro-app/latest/tool-reference/spatial-statistics/forestbasedandboostedclassificationregression.htm
