ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

地理加权回归与克里金插值:空间统计下的空气质量预测实战

地理加权回归与克里金插值:空间统计下的空气质量预测实战

简介:一份完整的大学课程论文,内容围绕地理加权回归(GWR)模型与克里金插值法在空气质量指数预测中的应用,适合地理信息科学、环境统计及相关专业的学生与研究者参考。包内为单个docx文档,大小约1.08MB,包含论文正文与附录中的三份Python源代码,分别对应GWR模型预测、克里格插值预测及地图可视化,便于对照学习与复现实验。资源重点阐述了GWR如何通过局部参数估计刻画空间异质性,以及克里金插值如何基于变异函数生成连续污染分布图,同时给出了模型校准、带宽优化、预测评估等关键步骤的完整论述。目前已有1258人学习下载。对于希望掌握空间统计分析方法或完成相关课程设计、论文写作的读者,这份资源提供了从理论到编程实现的系统参考,具有较强的实用价值。

1. 地理加权回归:为什么同一个气象变量,在不同点位的影响方向可能完全相反

同样一份空气监测数据,直接丢进普通线性回归,气温每升高 1℃对空气质量指数的影响被压缩成一个固定的全局系数;换成地理加权回归之后,同一个气温变量的回归系数在北部山区可能低到 -224,在南部城区却接近 0 甚至为正,方向都能反过来。这种「系数跟着坐标走」的现象就是空间非平稳性。地理加权回归模型的思路很直白:不要用一条全局拟合线概括整个城市,而是让每个监测点根据自己的地理位置,从邻近样本中估计出一套专属的局部回归系数。配合克里格插值方法补全未布设站点的预测值,就构成了一套完整的空气污染空间分析闭环。把这两套底层机制拆开看,你才会明白为什么空间统计不能只靠换一个复杂模型来解决。

2. GWR核心机制:空间权重矩阵、核函数与带宽搜索的数学逻辑

2.1 从全局参数到局部参数:OLS为什么在空间数据上失灵

普通最小二乘回归的隐含假设是所有样本共享同一个总体回归关系。对空气质量数据来说,这个假设几乎必然不成立:城市北部山区植被覆盖率高、污染物扩散条件好,气温每升高 1℃对 AQI 的边际影响可能很小;而南部城区建筑密度大、尾气排放集中,同样的气温升幅会显著推高污染物浓度。如果用 OLS 估计,得到的只是这些局部效应的加权平均,既不能代表北部,也不能代表南部。

GWR 的一般形式可以写为:

y_i = β0(ui, vi) + Σ βk(ui, vi) · x_{ik} + ε_i

其中 (ui, vi) 是第 i 个观测点的坐标,β0 和 βk 都随地理位置变化。系数估计采用的是加权最小二乘形式:

β̂(ui, vi) = (Xᵀ W(ui, vi) X)⁻¹ Xᵀ W(ui, vi) y

这里的 W 是一个对角权重矩阵,对角线上的每个元素代表每个观测点对回归点 i 的空间权重。权重矩阵怎么构造,决定了 GWR 是能够抓住局部细节,还是退化成一种带装饰的 OLS。

有一点很多人初次接触时会忽略:GWR 估计的不是一个系数向量,而是 n 个系数向量——每个观测点各有一套。你的输出不是一张系数表,而是一组按坐标组织的系数曲面。每个变量的系数在每个观测位置都有一个估计值,伴随的还有局部标准差、局部 t 值,这些都可以直接落到地图上做可视化。

2.2 空间核函数:bi-square 权重如何实现距离衰减

要构造权重矩阵 W,首要任务是定义一个空间核函数。核函数回答的问题是:站在当前回归点上,周围哪些观测点有资格参与计算,以及它们各自的话语权有多大。论文选用的核函数是 bi-square 函数,其表达形式是:

当 d_ij ≤ b 时,w_ij = [1 - (d_ij / b)²]² 当 d_ij > b 时,w_ij = 0

其中 d_ij 是第 i 个回归点和第 j 个观测点之间的欧氏距离,b 是带宽。bi-square 核的特点是「软硬结合」:在带宽范围内,权重随距离以二次方下降,但不会突然截断;在带宽边界处恰好降为零,形成一种平滑截断。相比同属常见选项的高斯核,bi-square 核的计算效率更高,因为超出带宽的观测点权重直接置零,矩阵运算只需关注带宽内的邻近样本。

这里有一个经常被忽略的操作细节:d_ij 的计算必须基于投影坐标,不能直接用经纬度的度数。经度 1 度和纬度 1 度代表的地面距离不同,直接用经纬度欧氏距离会让权重矩阵产生方向性偏差,进而污染全部系数估计。数据预处理阶段必须统一投影坐标系,这一步没做对,后面所有结果都不可信。

2.3 带宽搜索与模型复杂度:CV、AICc、帽子矩阵的三角关系

带宽 b 的选择是 GWR 模型校准的核心关节。带宽过小,每个回归点只用很少的邻近样本拟合,局部系数方差巨大,模型只是在背诵训练数据;带宽过大,权重矩阵趋近均匀分布,模型退化为 OLS,空间细节全部丢失。

论文采用自适应带宽策略,不固定一个距离值,而是让每个回归点根据自身周围的站点密度调整邻域范围,再统一搜索最优参数。适应度评估使用交叉验证分数:

CV(b_s) = Σ [y_i - ŷ_{-i}(b_s)]²

其中 ŷ_{-i} 是在校准过程中剔除第 i 个观测点后,用剩余样本对该点的预测值。CV 值越小,说明留一预测能力越强。但 CV 有一个众所周知的缺陷:它只评价训练数据内部的留一表现,并不显式惩罚模型复杂度。数据量足够大时,带宽略微偏小带来的 CV 下降会被误认为拟合更好,实际上模型已经开始过拟合。

这时需要 AICc 出场。论文使用的 AICc 公式是:

AICc = 2n ln(σ̂) + n ln(2π) + n(n + tr(S)) / (n - 2 - tr(S))

其中 n 是观测点总数,σ̂ 是估计的标准误差,tr(S) 是帽子矩阵 S 的迹。帽子矩阵 S 是一个 n×n 的投影矩阵,第 i 行可以表示为:

S_i = x_i (Xᵀ W_i X)⁻¹ Xᵀ W_i

tr(S) 在 GWR 中被称为有效参数个数(ENP)。普通回归的有效参数个数就是自变量个数加 1,但 GWR 中每个样本点都有自己的局部权重,模型实际使用的自由度远高于 p+1。帽子矩阵的迹恰恰度量了这种实际自由度:带宽越小,权重矩阵越尖锐,每个回归点独立贡献的约束越强,ENP 就越大。AICc 通过 tr(S) 对复杂度进行惩罚,避免只优化训练误差导致的过拟合。

带宽搜索的实现策略在论文中写得很清楚:先指定空间核函数,再利用 CV 或 AICc 值做最优带宽搜索,搜索算法采用 Golden Section(黄金分割)方法,用搜索到的最优带宽构造权重矩阵,最后求解局部回归系数矩阵 β̂_k(ui, vi)。每次评估一个候选带宽,都要重新计算一遍完整的帽子矩阵,因此这个环节的计算量在样本量大的时候会显著上升。CV 和 AICc 的选择也值得斟酌:论文提到,有时候为了避免过拟合并提高运算效率,可以直接计算 AICc 值来优化带宽——AICc 寻优得到的带宽通常比 CV 寻优的带宽偏大,泛化稳定性更好。

3. GWR校准全流程:从变量筛选、七步校准到系数t值空间可视化

3.1 数据预处理:全零变量为什么会拆掉回归矩阵

论文的原始自变量有 7 个:temp(气温)、hpa(气压)、wet(湿度)、speed(风速)、dir(风向距离值)、mm、height(高度)。数据预处理阶段第一个动作就是把 mm 剔除,因为 mm 变量在所有观测点上的值都是 0。

一个全零变量放在回归设计矩阵里,等价于给模型添加了一个常数倍的截距列。设计矩阵 X 的列之间产生完全共线性,矩阵 XᵀWX 变成奇异矩阵,无法求逆。即使某些数值计算库用伪逆强行求解,得到的系数也会因为共线性而剧烈震荡。因此在进入 GWR 之前做方差检查几乎是一条铁律:任何方差为零或接近零的变量都应当剔除。

在真实项目中,某个监测因子整列为 0 的原因可能是传感器断电、单位换算错误,或者该因子在特定时期确实没有被检测到。无论是哪种情况,报告里都应该明确写出剔除的变量和原因,否则复现者拿着原始 7 变量直接跑代码,会在矩阵求逆时收到一堆 NaN 警告。

3.2 七步校准流程:从核函数到加权最小二乘求解

GWR 模型的校准流程可以归纳为六个基本步骤,论文中从 1 到 7 编号:

  1. 数据预处理:把数据整理成模型可接受的形式,必要时对某些属性值做插值补全。
  2. 指定空间核函数:选择 bi-square 核或高斯核。
  3. 利用 CV 或 AICc 值,通过 Golden Section 搜索寻找最优空间带宽 b_s*。
  4. 用最优带宽构造权重矩阵 W。
  5. 利用加权最小二乘公式求解局部回归系数矩阵 β̂_k(ui, vi)。
  6. 输出结果,并在模型结果的基础上进行预测分析或显著性测试。

第 5 步中,系数矩阵的求解并不一定一次到位。论文提到使用迭代加权最小二乘法(IRLS)来求解,原因在于 GWR 的权重矩阵既包含空间核权重,还可能包含稳健估计中的残差权重。IRLS 的常规做法是:先用普通最小二乘得到初始系数,计算残差,用残差调整下一轮权重矩阵中每个观测点的权重,对残差大的点降权,再重新拟合,如此往复直至收敛。这相当于给空间权重叠了一层抗差保护,避免个别异常监测点主导局部拟合。

3.3 局部系数显著性检验:把 t 值画回地图上

模型校准完以后,每个观测点都有一组局部系数估计。论文对每个变量逐一进行 t 检验,显著水平取 α=0.05,并把各监测点的显著性结果落到地图上,这一步用到的关键计算是局部方差。对第 i 个回归点的模型系数估计,方差由下面两个式子给出:

C_i = (Xᵀ W_i X)⁻¹ Xᵀ W_i var(β̂_i) = diag(C_i C_iᵀ) · σ̂²

其中 σ̂² 由估计的标准误差平方而来,diag 表示取矩阵对角元素。于是每个位置的局部 t 值为:

t_i = β̂_i / sqrt(var(β̂_i))

这个 t 值可以和标准正态分布临界值 1.96 比较(α=0.05 时),所有 |t| 大于 1.96 的点位标记为显著。论文正是这样把全部监测点的 t 值分布画到地图上,形成一张带地理指向性的显著性图。

以温度为例,在 α=0.05 水平上,温度对 AQI 的影响在研究区域几乎全域为负,但从南部到北部存在明显的强度梯度:南部的负效应更强,北部的负效应减弱,个别点位甚至接近 0。再看湿度,正面影响集中在西北部和南部的几个城区点位,负面影响则以北部区域为最大,某一北部点位拟合出的系数低至 -343,是整个区域负向影响最极端的值。风速的影响方向同样存在分区:东北部区域为正影响,主城区及部分外围区域为负影响。高度变量的正面影响集中在中南部城区,负面影响较大区域集中在北部及其周边。

这些空间异质性细节是 OLS 的全局系数完全给不出的。每个系数都变成了一个可追问的空间变量——哪个区影响最强、哪个点位方向与全局相反。附录里提供的地图可视化程序代码,就是把这些系数和 t 值按地理坐标着色成图的关键环节。

预测阶段,论文利用第 23 期数据进行预测,输出 16 个监测点的 AQI 预测值。预测结果与真实值对比,均方误差为 449.4411776。这里的预测逻辑值得注意:GWR 预测依赖协变量的未来值——你需要先给出预测时刻的气温、气压、湿度等,才能利用局部系数算 AQI。这在真实业务里意味着你需要一套数值天气预报来驱动空气质量预报,而这也正是 GWR 和克里金需要搭配使用的根本原因。

4. 克里金插值:变异函数、泛克里金与模型诊断指标

4.1 区域化变量与变异函数:空间相关性的量化

克里格插值方法是地统计学的核心内容之一。它的出发点是一个假设:未采样点的值不是孤立随机的,而是与空间中已采样点的值存在相关性——距离越近,相关性越强。空气质量数据在某种程度上满足这个假设:污染物浓度在几百米范围内往往是平滑变化的,只有在强排放源附近才会出现突变。

这种空间相关性通过半变异函数来量化。对于距离档 h,半变异函数定义为:

γ(h) = (1 / 2N(h)) · Σ [Z(x_i) - Z(x_j)]²

其中 N(h) 是距离落在该档位内的样本点对数量。实际计算时,先把样本点两两配对,按距离分档,在每个档位内求属性差平方的平均值,得到经验变异函数;再用理论模型(指数、高斯、球状等)去拟合这条经验曲线。

克里金的核心公式是把待估点的值写成周边观测值的线性组合:

Z*(x0) = Σ λ_i · Z(x_i)

权重 λ_i 的求解有两个约束。第一是无偏性,要求所有权重之和等于 1,这样估计的期望才能等于真实期望。第二是最小方差,要求在无偏约束下使插值方差最小。这是一个带等式约束的优化问题,用拉格朗日乘子法可以解出一组线性方程,方程的输入是样本点之间的变异函数值和样本点到待估点的变异函数值,输出是每个 λ_i。克里金不是简单的反距离加权,而是把空间相关性用变异函数显式建模后,再通过最优化计算权重,这保证了估计是无偏且方差最小的。

4.2 泛克里金:当区域化变量携带漂移趋势

普通克里金要求区域化变量满足二阶平稳假设,也就是均值恒定,协方差只与距离有关。但空气质量数据往往不满足这个条件:城市热岛效应、地形高度变化、人口密度分布都会让 AQI 的均值在空间上出现明显趋势。如果直接用普通克里金预测,趋势会被吸收进残差,导致变异函数在近距离处表现异常。

泛克里金把问题拆成两部分来处理:

Z(x) = Σ f_l(x) · β_l + R(x)

其中 Σ f_l(x)β_l 是确定性漂移成分,通常取低阶多项式;R(x) 是剩余项,满足二阶平稳假设。无偏条件因此发生变化,权系数 λ 在求和等于 1 之外,还需要满足一组与漂移基函数相关的约束方程。泛克里金用一句话概括:把空间趋势和随机波动分开建模,然后只对随机波动的空间自相关求解权重。

论文在空气质量案例中选择的正是泛克里金。预处理阶段同样剔除了 mm,使用 temp、hpa、wet、speed、dir、height 共 6 个自变量,抽取 time=22 期的样本拟合模型,选用高斯模型对半变异函数进行拟合,然后对 time=23 期的坐标点做预测。

这里需要强调克里金与 GWR 的一个关键差异:克里金的预测不需要提供未采样点位置的协变量值,它完全凭借空间相关性和已采样数据插值。这在业务上的价值是:可以直接把稀疏的监测站点数据扩展成连续污染浓度分布图,为整个行政区提供覆盖式预测。

4.3 高斯模型拟合与诊断指标:Q1、Q2、cR 怎么看

论文选用的高斯模型,其理论变异函数形式为:

γ(h) = c0 + c · [1 - exp(-h² / a²)]

拟合得到的三个参数分别是:块金常数为 3.88034880e+01,基台值为 2.95014344e-02,变程为 7.59106034e+00。这三个参数的物理含义是:块金常数代表距离为零时仍然存在的测量误差和微观尺度变异;基台值代表变异函数趋于平稳时的总方差;变程表示空间相关性存在的尺度范围,超过这个距离,变量之间基本不具备空间关联。

在这组数据里,块金常数明显大于基台值,这是一个值得警觉的信号。它说明在现有监测点间距尺度上,样本之间的空间自相关性很弱,绝大多数方差来自测量误差或更微观尺度的过程。这也解释了为什么论文给出的三项诊断指标只能算「效果一般」。

三项指标中,Q1 越接近 0 越好,Q2 越接近 1 越好,cR 越小越好。Q1 为 0.63 意味着预测存在系统性高估倾向;Q2 为 1.126 说明模型对预测不确定性的估计略偏保守;cR 为 6.68 说明理论模型与经验变异函数的匹配度一般。三项指标组合起来看,高斯模型对这个数据集只能算「能用」,谈不上「优秀」。

预测阶段,利用 time=23 期的坐标点做预测,16 个点的输出值与真实值对比,预测均方误差为 423.2909487。值得对比的是,这个数值比 GWR 的 449.44 还要略低一点。GWR 的预测误差取决于协变量未来值是否准确,克里金则不依赖协变量,只靠空间自相关。在样本量小、协变量不确定性高的场景下,克里金的预测反而更稳。

5. 避坑指南:GWR与克里金实战中的四个典型踩坑点

5.1 坐标系不统一:经纬度直接算距离导致系数方向反转

现象:模型跑通了,但回归系数的符号和常识完全相反。比如温度系数在某区域显示为强正影响,而气象常识告诉你温度升高应该促进扩散、降低 AQI。

原因:在计算权重矩阵 W 时用了 WGS84 经纬度坐标的度数距离。经纬度不是等距坐标系——经度 1 度在不同纬度对应的地面距离差别很大,直接用欧氏距离等于给不同方向分配了错误的权重,最终系数方向和大小全部失真。

解决:所有距离计算必须在投影坐标系下完成。城市尺度研究建议用 UTM 或高斯-克吕格投影,单位是米。在代码里加一步坐标转换,进入核函数之前统一检查一遍各监测点两两距离是否符合直觉。这个小习惯能挡掉后面一大半的脏数据问题。

5.2 带宽搜索陷入局部极小:别把 Golden Section 当万能药

现象:CV 曲线在带宽轴上出现多个波谷,Golden Section 搜索最终停在其中一个波谷上,导致回归系数估计出现断崖式突变。

原因:Golden Section 是单峰函数搜索算法,假设目标函数只有一个极小值。当监测站点分布极不均匀时——中心城区密集、外围稀疏——CV 函数可能出现多峰形态,搜索结果的正确性完全取决于初始区间的位置。

解决:搜索之前先做一次网格粗扫。从带宽范围的最小值到最大值均匀取 20 个点,逐个计算 AICc 或 CV,把曲线画出来。单峰再交给 Golden Section 细化,多峰就换全局优化策略。这件事花不了十分钟,却能避免系数震荡带来的无穷麻烦。把优化器当黑匣子直接用,是很多空间统计项目翻车的起点。

5.3 变异函数块金常数过大:先分解趋势再谈插值

现象:克里金的变异函数拟合效果不好,块金常数达到 3.88e+01,远超基台值 2.95e-02,Q1 和 cR 明显偏离理想值。

原因:原始数据里存在空间趋势,比如 AQI 从北部山区到南部城区整体递增。趋势没有被分离就进入变异函数拟合,会被当成「空间随机波动」的一部分,导致变异函数在距离接近零时就表现出很大的方差。

解决:先用最小二乘拟合一阶或二阶趋势面,把趋势项和残差项分离,再对残差项拟合变异函数。如果分离趋势后块金常数仍然偏大,再考虑更换变异函数模型(比如 Matérn 或指数型),而不是一上来就断定数据没有空间相关性。

5.4 只看训练 R 平方高兴太早:预测 MSE 才是硬指标

现象:GWR 的训练决定系数从 OLS 的 0.417 提升到 0.916,你觉得模型已经接近完美,结果用 time=23 期数据一预测,MSE 高达 449.44,误差并不小。

原因:GWR 的有效参数数量远高于 OLS。带宽选择偏小时,局部系数会产生严重的逐点拟合倾向,训练 R 平方高不代表泛化能力好,换到新时刻新位置,空间关系是否仍然成立完全是另一回事。

解决:严格做时间切片验证。用 time=22 的数据拟合,用 time=23 的数据评估,以预测 MSE 为最终对比指标。论文里的 GWR 和克里金都做了这一步,这是最值得借鉴的做法。任何人给一个孤零零的 R 平方,你都应该追问是训练集还是测试集。

提示:GWR 和克里金的结果输出都带空间坐标,预测验证时务必保证训练集和验证集的坐标系完全一致,否则误差分析本身也会出偏差。

6. 设计取舍:解释性模型与预测性模型如何互补

6.1 GWR 的强项是解释,克里金的强项是预测

论文同时采用 GWR 和克里金,并不是重复建设,而是两种方法回答的问题不同。GWR 的空间非平稳系数告诉你,气温、气压、湿度这些因素对 AQI 的影响在哪个区域强、在哪个区域弱,方向是否随位置反转。克里金则在采样点之间填充未知位置,把离散监测点扩展成连续的污染浓度面。

从结果看,克里金的预测 MSE(423.29)略低于 GWR(449.44),这不能说明克里金永远更好。背后的逻辑是:GWR 做预测需要外部协变量的未来值,协变量本身的预报误差会传导到 AQI 预测中;克里金省略了协变量,只借助空间自相关,在协变量不可靠或缺失的场景里反而更稳。但克里金回答不了「为什么北部湿度系数是 -343」这类机理问题,这个解释只能由 GWR 给出。

两种方法对这个案例而言是互补关系:先用 GWR 建模出各影响因子的空间异质性,看清驱动机制;再用克里金生成未采样点的连续预测面,服务实际决策。如果你只跑 GWR,你会在没有监测站覆盖的区域无所适从;如果只跑克里金,你对污染成因一无所知。

从这份课程设计论文里,我学到的最大教训是:空间统计必须把「解释」和「预测」分开思考。从那以后,我每次拿到带经纬度坐标的回归任务,都会强制先做三件事——第一,画一张因变量的空间分布图,确认是否存在明显的空间分层或梯度;第二,跑一遍 OLS 记录 AICc,作为 GWR 的对照基线;第三,先剔除方差接近零的冗余变量,再统一投影坐标系。三道工序做完,GWR 和克里金的路才算真正铺好。希望帮到你。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进