构建一个城市各区域空气质量与居住健康关联分析的商务智能示例项目,去营销化、中立化,仅用于学习与工程实践参考。
一、实际应用场景描述
在城市居住选址过程中,居民通常关注:
- 房价、交通便利性
- 学校、医疗资源
- 空气质量与居住环境对健康的影响
现实中存在的问题是:
- 空气质量数据(AQI、PM2.5)多为城市整体发布
- 缺乏 区域级、可量化、可对比 的健康关联分析
- 居民只能凭“感觉”或“听说”选择居住区域
本项目模拟一个典型城市 6 个行政区、连续 12 个月的空气质量数据,并结合简化的居民健康指标(如呼吸道就诊率),通过 Python 进行:
- 区域空气质量统计
- 健康风险关联分析
- 宜居指数综合评分
- 居住选址的科学参考框架
二、引入痛点(Business Pain Points)
痛点 说明
数据割裂 环保数据与卫健数据不互通
粒度粗糙 只有“全市 AQI”,无街区差异
因果模糊 不清楚污染是否真的影响健康
决策感性 买房 / 租房主要看价格与交通
工具缺失 普通居民无法使用专业 GIS 系统
因此需要一个:
✅ 轻量、可复现
✅ 基于通用编程语言(Python)
✅ 强调数据关联而非医疗结论
✅ 非地产或医疗推广
的分析工具原型。
三、核心逻辑讲解(BI 思维模型)
1️⃣ 数据层(Data Layer)
- 区域维度:行政区
- 时间维度:月
- 指标维度:
- PM2.5、AQI
- 呼吸道就诊率(模拟)
2️⃣ 指标层(Metrics Layer)
- 平均 AQI、超标天数
- 污染物浓度等级
- 健康指标相关性(Pearson)
3️⃣ 分析层(Analysis Layer)
- 区域空气质量排名
- 健康—污染关联强度
- 宜居指数(加权评分)
4️⃣ 应用层(Application Layer)
- 区域宜居排行榜
- 风险等级标注
- 居住选址参考表
四、代码模块化设计(Python)
📁 项目结构
urban_livability_bi/
├── data/
│ └── sample_env_health_data.py
├── analysis/
│ ├── air_quality.py
│ ├── health_correlation.py
│ └── livability_score.py
├── visualization/
│ └── charts.py
├── main.py
├── README.md
└── requirements.txt
五、核心代码示例(注释清晰)
1️⃣ 样本数据生成(data/sample_env_health_data.py)
"""
生成模拟城市各行政区空气质量与健康数据
"""
import pandas as pd
import numpy as np
def generate_env_health_data(months=12):
np.random.seed(42)
districts = ["朝阳区", "海淀区", "丰台区", "通州区", "昌平区", "大兴区"]
data = []
for district in districts:
base_aqi = np.random.randint(60, 120)
for month in range(1, months + 1):
aqi = base_aqi + np.random.randint(-20, 40)
pm25 = aqi * 0.6 + np.random.uniform(-10, 10)
# 模拟健康数据:污染越高,就诊率略高
respiratory_rate = 0.02 + (pm25 - 50) * 0.0003
data.append({
"district": district,
"month": f"2025-{month:02d}",
"aqi": aqi,
"pm25": round(pm25, 2),
"respiratory_rate": round(respiratory_rate, 4)
})
return pd.DataFrame(data)
2️⃣ 空气质量统计模块(analysis/air_quality.py)
import pandas as pd
def air_quality_stats(df: pd.DataFrame) -> pd.DataFrame:
"""
按区域统计空气质量指标
"""
stats = df.groupby("district").agg(
avg_aqi=("aqi", "mean"),
avg_pm25=("pm25", "mean"),
exceed_days=("aqi", lambda x: (x > 100).sum())
).reset_index()
return stats
3️⃣ 健康关联分析(analysis/health_correlation.py)
import pandas as pd
def health_correlation(df: pd.DataFrame) -> pd.DataFrame:
"""
计算 PM2.5 与呼吸道就诊率的相关系数
"""
corr_data = []
for district, group in df.groupby("district"):
corr = group["pm25"].corr(group["respiratory_rate"])
corr_data.append({
"district": district,
"pm25_respiratory_corr": round(corr, 3)
})
return pd.DataFrame(corr_data)
4️⃣ 宜居指数评分(analysis/livability_score.py)
def calculate_livability(aq_stats, corr_df):
"""
综合宜居指数 = 空气质量 + 健康风险
"""
df = aq_stats.merge(corr_df, on="district")
# 简单加权模型(示例用)
df["livability_score"] = (
0.5 * (100 - df["avg_aqi"]) +
0.3 * (1 - df["pm25_respiratory_corr"]) * 100 -
0.2 * df["exceed_days"]
)
return df.sort_values("livability_score", ascending=False)
5️⃣ 主程序入口(main.py)
from data.sample_env_health_data import generate_env_health_data
from analysis.air_quality import air_quality_stats
from analysis.health_correlation import health_correlation
from analysis.livability_score import calculate_livability
def main():
df = generate_env_health_data()
aq_stats = air_quality_stats(df)
corr_df = health_correlation(df)
result = calculate_livability(aq_stats, corr_df)
print("=== 城市各区域宜居指数排名 ===")
print(result[["district", "livability_score", "avg_aqi"]])
if __name__ == "__main__":
main()
六、README 文件(简化版)
# Urban Livability BI:城市宜居区域分析示例
## 项目简介
本项目使用 Python 对城市各行政区空气质量与健康数据进行统计,
通过多维指标分析,为居住选址提供科学参考框架。
## 使用环境
- Python 3.9+
- pandas
- numpy
## 运行方式
bash
pip install -r requirements.txt
python main.py
## 适用人群
- 城市规划学习者
- 数据分析与 BI 初学者
- 关注居住环境质量的居民
## 声明
- 数据为模拟数据,仅用于教学与实验
- 不涉及医疗诊断或房产推荐
七、使用说明(User Guide)
1. 安装依赖
pip install pandas numpy
2. 修改
"sample_env_health_data.py":
- 更换城市区域名称
- 调整 AQI / PM2.5 分布参数
3. 运行
"main.py",查看:
- 各区域空气质量统计
- 健康—污染相关性
- 宜居指数排名
4. 可扩展方向:
- 接入真实环境监测站数据
- 增加噪声、绿化率等指标
- 输出可视化地图(需 GIS 库)
八、核心知识点卡片(Key Concepts)
领域 知识点
环境数据 AQI、PM2.5、超标天数
健康统计 就诊率、相关性分析
BI 分析 多维指标加权评分
数据分析 分组统计、相关系数
系统设计 模块化、可扩展架构
九、总结(Conclusion)
通过本项目,我们展示了如何利用 Python + 商务智能方法:
- ✅ 将“宜居”这一抽象概念转化为可量化指标体系
- ✅ 通过 环境质量 + 健康关联 提供选址参考
- ✅ 为居民提供一个透明、理性、可复现的决策框架
需要明确的是:
本项目仅为数据分析示例,不构成医疗或居住建议。
在真实场景中,若结合官方环境监测、公共卫生统计与 GIS 空间分析,可进一步构建城市级宜居性评价系统。
利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!