
教程链接:使用线性回归预测房价[1]
学这个教程的时候,有七个地方卡住了。每个卡点我都查了资料、写了解答,整理成这篇笔记。如果你也在学空间回归,这些问题大概率你也会遇到。
ArcGIS Pro 做可视化确实比写代码友好太多——散点图矩阵点几下就出来了,Python 里要写一堆 matplotlib 代码。

arcgispro中的散点矩阵图
实际建议:
两者不矛盾。很多 GIS 从业者的工作流是:代码清理数据 → 导入 ArcGIS Pro 做分析和出图。ArcGIS Pro 也能做数据清理(字段计算器、Python 脚本工具),但效率不如 pandas。
教程里 grade(建筑质量 1-13 分)和 price(售价)的关系是凸形的:低分段(1-7 分)价格差别不大,高分段(10-13 分)价格差别急剧拉大。画出来是一条向上弯曲的曲线,不是直线。 转换变量后的变量与价格额度关系:

线性回归要求自变量和因变量之间是线性关系(直线)。如果是弯的,模型就拟合不好。
就是把 grade 这个字段的每个值都乘以自身三次:
Grade_Cubed = grade × grade × grade
手动判断确实靠经验,但有更系统的方法——Box-Cox 变换。
Box-Cox 的核心思想:遍历一系列幂次 λ,看哪个让数据最接近正态分布。
公式:
Y' = (Y^λ - 1) / λ (λ ≠ 0 时)
Y' = ln(Y) (λ = 0 时,即对数变换)
常见的 λ 值对应关系:
λ 值 | 变换 | 适用场景 |
|---|---|---|
λ = 2 | 平方 (Y²) | 左偏分布(大部分值大,少数值小) |
λ = 1 | 无变换 (Y) | 已经是正态分布 |
λ = 0.5 | 平方根 (√Y) | 计数数据,方差与均值成比例 |
λ = 0 | 对数 (ln Y) | 右偏分布(大部分值小,少数值大) |
λ = -1 | 倒数 (1/Y) | 强右偏 |
λ = -0.5 | 负平方根 (1/√Y) | 强右偏 |
λ 怎么选? 不用猜,让最大似然估计(MLE)自动算。工具会画一条似然函数曲线,峰值对应的 λ 就是最优解。
工具:Transform Field(数据管理工具箱)
操作步骤:
如果你知道要什么 λ,也可以手动指定。比如你已经知道要用立方,就填 Power = 3。
Python 等效操作:
import arcpy
arcpy.management.TransformField(
in_table="YourLayer",
field="grade",
transform_method="BOX-COX"
# 不指定 power → 自动找最优 λ
)
因为 Esri 做教程时已经验证过 grade³ 效果好。实际项目中,你应该:
参考:ArcGIS Pro - Transform Field[3] | Stattrek - Transformations in Regression[4]
不完全准确,但方向对。
更精确的说法是:grade 和价格之间存在非线性关系,而立方变换刚好能把这种非线性变成线性。
区别在于:
类比理解:
判断标准: 变换后 R² 提升了 → 说明变换有效 → 不需要纠结原来的关系到底「叫什么」。
你说得对——残差放在地图上看,比看 Python 输出的统计数字直观太多了。

Python 输出的残差统计(均值、标准差、VIF)是全局数字,告诉你「平均猜错多少」。但它不会告诉你哪些地方猜错了。
ArcGIS Pro 的残差地图会用颜色标出:
你一眼就能看到:「哦,水边全是绿色,模型系统性低估了湖边房子。」这种空间模式在数字统计里是看不出来的。
这就是空间分析的核心价值:同样的数据,加了地理位置维度之后,能看到纯统计看不到的规律。
教程里用的是散点图矩阵,但 ArcGIS Pro 的图表功能远不止这些。按用途分类:
图表 | 用途 | 文档链接 |
|---|---|---|
条形图 | 比较不同类别的数量(如各区成交量) | Bar chart[5] |
组合图表 | 条形图 + 折线图混合,双 Y 轴 | Combo chart[6] |
饼图 | 看占比(如各房型成交比例) | Pie chart[7] |
矩阵热点图 | 类别变量之间的关系热力图 | Matrix heat chart[8] |
图表 | 用途 | 文档链接 |
|---|---|---|
散点图 | 两个数值变量的关系(如面积 vs 价格) | Scatter plot[9] |
散点图矩阵 | 多个数值变量两两对比,本教程重点 | Scatter plot matrix[10] |
QQ 图 | 检验变量是否符合正态分布 | QQ plot[11] |
图表 | 用途 | 文档链接 |
|---|---|---|
直方图 | 看一个变量的分布形态(偏态、正态?) | Histogram[12] |
箱形图 | 看分布的四分位数、异常值(教程三用这个比较模型) | Box plot[13] |
图表 | 用途 | 文档链接 |
|---|---|---|
折线图 | 随时间/距离的变化趋势 | Line chart[14] |
数据时钟 | 季节性/周期性模式 | Data clock[15] |
日历热点图 | 年/周的时间模式 | Calendar heat chart[16] |
剖面图 | 高程变化或沿 3D 线的测量 | Profile chart[17] |
实操建议:做探索性分析时,先用散点图矩阵看全局关系,再用直方图看单个变量分布,最后用箱形图对比不同模型/分组的结果。
每个链接点进去都有 ArcGIS Pro 官方示例图,比文字描述直观。
两个自变量太像了,模型分不清谁的功劳。
教程里的 sqft_living(居住面积)和 sqft_above(地上面积)相关性 R² = 0.77——几乎是一个变量。
模型要做的是:给每个自变量分配一个系数,表示「这个变量每增加 1 单位,价格变化多少」。
但如果两个变量几乎一样,模型就懵了:
用 VIF(方差膨胀因子):
关键点:多重共线性影响的是解释能力(你没法说清哪个变量更重要),不影响预测能力(模型照样能预测准)。如果你只关心预测不关心解释,可以不管它。 参考:IBM - What Is Multicollinearity?[18]
广义线性回归(GLR)不只是做线性回归,它有三种模式,对应三种不同的因变量类型:
参考:ArcGIS Pro - How Generalized Linear Regression Works[19]
不算。 加了「距西雅图距离」作为解释变量,本质上还是 GLR(全局线性回归),只是多了一个自变量。
真正的空间回归是 GWR(地理加权回归)——它不只是加了空间变量,而是让每个位置的系数都不同。
区别:
教程二[20]才会讲 GWR。教程一只是在 GLR 框架里加了空间变量做铺垫。