Python多尺度地理加权回归(MGWR)实战指南:从数据准备到结果解读全流程
使用pandas读取CSV或Excel格式的数据文件,geopandas处理空间数据。检查缺失值并进行插补或删除处理,确保所有变量为数值类型。使用Golden Section Search方法确定最优带宽,平衡模型复杂度与拟合优度。若p值显著,需考虑遗漏变量或改进带宽。比较MGWR与普通GWR的AICc值,确认多尺度改进效果。安装mgwr库前需满足依赖:numpy、scipy、pandas、spr
·
数据准备
确保数据包含因变量和自变量,并完成空间坐标匹配。使用pandas读取CSV或Excel格式的数据文件,geopandas处理空间数据。检查缺失值并进行插补或删除处理,确保所有变量为数值类型。
安装mgwr库前需满足依赖:numpy、scipy、pandas、spreg、spglm。通过pip直接安装最新版本:
pip install mgwr
带宽选择
MGWR的核心是自适应带宽选择。使用Golden Section Search方法确定最优带宽,平衡模型复杂度与拟合优度。调用MGWR类时设置参数:
from mgwr.gwr import MGWR
model = MGWR(coords, y, X, kernel='bisquare', fixed=False)
模型拟合
标准化自变量以避免尺度差异影响权重计算。拟合模型后检查AICc值,较低值表示更好拟合。示例代码:
results = model.fit()
print(results.summary())
结果解读
重点关注局部R²、系数估计值及其显著性。空间非平稳性通过系数变化幅度判断。使用matplotlib绘制系数空间分布图:
import matplotlib.pyplot as plt
plt.scatter(coords[:,0], coords[:,1], c=results.params[:,1], cmap='coolwarm')
plt.colorbar(label='Coefficient Value')
模型验证
残差空间自相关检验使用Moran's I指数。若p值显著,需考虑遗漏变量或改进带宽。比较MGWR与普通GWR的AICc值,确认多尺度改进效果。
可视化输出
生成系数变化趋势图与空间分布热力图叠加底图。使用contextily添加底图增强空间参考:
import contextily as ctx
ax = gdf.plot(column='coefficient', legend=True)
ctx.add_basemap(ax, crs=gdf.crs.to_string())
完整流程需迭代调整带宽与变量选择,直至残差满足独立性假设。建议结合GIS软件进行结果的空间模式深度分析。
更多推荐



所有评论(0)