数据准备

确保数据包含因变量和自变量,并完成空间坐标匹配。使用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软件进行结果的空间模式深度分析。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐