Python空间回归实战:用pysal分析美国大选数据(附完整代码)
空间数据分析正在成为社会科学研究的重要工具,特别是在选举预测、房价分析和公共卫生等领域。本文将带你用Python的pysal库,通过2020年美国大选数据,实战演练空间回归分析的全流程。不同于传统回归分析,空间回归考虑了地理单元之间的相互影响,能更准确地捕捉现实世界中的空间依赖现象。
1. 环境准备与数据加载
在开始分析前,我们需要准备Python环境和相关库。推荐使用Anaconda创建独立环境:
conda create -n spatial python=3.8
conda activate spatial
pip install pysal geopandas matplotlib seaborn numpy pandas
数据集包含两个关键部分:县级选举数据(CSV格式)和地理边界数据(GeoJSON格式)。让我们先加载并探索数据:
import pandas as pd
import geopandas as gpd
# 加载选举数据
voting = pd.read_csv('https://raw.github.com/Ziqi-Li/gis5122/master/data/voting_2020.csv')
voting['median_income'] = voting['median_income']/10000 # 收入单位转换为万美元
# 加载地理边界数据
shp = gpd.read_file("https://raw.github.com/Ziqi-Li/gis5122/master/data/us_counties.geojson")
shp_voting = shp.merge(voting, on="county_id")
# 选择分析变量
variable_names = ['sex_ratio', 'pct_black', 'pct_hisp', 'pct_bach', 'median_income','ln_pop_den']
y = shp_voting[['new_pct_dem']].values # 因变量:民主党得票率
X = shp_voting[variable_names].values # 自变量矩阵
数据预处理时需要注意:
- 检查缺失值:
shp_voting.isnull().sum() - 变量标准化:对连续变量考虑Z-score标准化
- 空间权重矩阵的构建方式会影响最终结果
2. 构建空间权重矩阵
空间权重矩阵是空间分析的核心,它定义了地理单元之间的"邻居"关系。pysal提供多种构建方式:

&spm=1001.2101.3001.5002&articleId=155436034&d=1&t=3&u=685e08c0cad84bcab89678cc48782416)
370

被折叠的 条评论
为什么被折叠?



