今天给大家分享使用 R 语言测算各区县鸟类相对丰度指数的方法。配套的数据来自中国观鸟记录中心(RStata 数据中心爬取),核心方法是复现 Liang et al. (2020, PNAS) 提出的「努力量校正后的相对鸟类丰度」指数。本次以 2015–2020 年 的观鸟数据为例进行演示——样本窗口是出于示例目的选定的,并非参照某篇论文来确定。
完整的观鸟数据可以从下面的链接获取:
1980~2025 年观鸟记录、经纬度及其所处的省市区县数据(2026年3月爬取):https://rstata.duanshu.com/#/brief/course/0005692119984a0b90677782a8f0a333
下面先讲清楚这个指标到底是怎么算出来的,再逐行讲解计算代码。
一、指标来源与计算过程
1.1 论文背景:从空气污染管制到鸟类保护
![]()
一句话:论文要的是「相对」丰度,不是「绝对」有多少只鸟——它只能告诉你 A 地比 B 地、今年比去年多还是少。
1.2 两步法(Methods: Bird Abundance Estimation)
![]()
1.3 本讲义如何用中国观鸟数据复现
数据来自 RStata 数据中心「1980~2025 年观鸟记录、经纬度及其所处的省市区县数据」,这里选择 2015~2020 年的数据样本演示。包含两份核心 dta:
- 观鸟记录表(report 级):约等于论文的 “checklist”;
- 鸟种观测统计报告(report×物种级):约等于 eBird Reference Dataset;
关键:两份数据里
鸟种数量含义不同!report 级是「物种数」,report×物种级是「个体数」。论文 Eq.1 左边的#birds observed= 明细表按reportId求和的个体数。
论文分类群划分(Rosenberg et al. 2019 口径,映射到中文目名)如下:
- 水禽 waterfowl:雁形目;
- 涉禽 shorebirds:鸻形目;
- 水鸟 waterbirds:鹈形目、鹤形目、䴙䴘目、鲣鸟目、鹳形目、潜鸟目、鹱形目、鹲形目、红鹳目;
- 其余目 = 陆鸟 landbirds。
本讲义以 2015–2020 年的数据为例进行演示。更早年份(2015 之前)数据极稀疏,县×月×年固定效应难以识别,故不纳入本示例窗口。
二、详细讲解计算代码
整套计算分三步,对应三个 R 脚本:01_筛选样本 → 02_测算丰度指数 → 03_对照刘钊论文。下面逐段给出完整代码并讲解。
2.1 步骤 1:筛选 2015–2020 样本
观鸟记录表按 观测时间_起始 的年份直接筛选;鸟种观测统计报告本身无时间字段,需按 2015–2020 的 reportId 集合回连筛选。
1980~2025年观鸟记录、经纬度及其所处的省市区县数据(2026年3月爬取) 文件夹在附件中未提供,如需要可以从前述链接获取。
# ============================================================================== |
筛选结果如下:
cat("筛选后报告数:", nrow(rep_all), "\n") |
2.2 步骤 2(上):报告级计数与努力量变量
读取样本后,先把鸟种明细(report×物种级)按 reportId 汇总成「报告级」的总个体数 n_ind_all 与物种数 n_sp_all,并切出四个分类群;再把报告表整理出努力量(hours、n_observers)与地理时间维度,最后按 reportId 合并。
# ============================================================================== |
cat("样本:", nrow(chk), "份观鸟报告;", |
2.3 步骤 2(中):Poisson 努力量校正(复现 Eq.1)
![]()
# ------------------------------------------------------------------------------ |
![]()
cat("=== Eq.1 Poisson (全部鸟种) 系数 ===\n") |
2.4 步骤 2(下):面板合并、中文标签与诊断
此处内容需要下载讲义材料查看~
2.5 步骤 2(图):三张诊断图
# ------------------------------------------------------------------------------ |
![]()
# ------------------------------------------------------------------------------ |
![]()
# ------------------------------------------------------------------------------ |
三张诊断图(图 1–3)
图 1 展示全国县级相对鸟类丰度在努力量校正前后的对比:
![]()
图 2 从「努力量(时长)」和「可探测性(观测时刻)」两个角度说明为什么必须做努力量校正:
![]()
图 3 展示论文口径的四个分类群(水禽 / 涉禽 / 水鸟 / 陆鸟)相对丰度指数:
![]()
2.6 步骤 3:与刘钊等(2025)论文趋势对照
刘钊等 (2025, 经济学(季刊)) 以「绿色金融改革创新试验区(2017)」为准自然实验,核心结论是试验区鸟类丰富度显著提升;其被解释变量明确「借鉴 Liang et al. (2020) 计算得到并标准化」。下面用我们产出的面板做方向性(naive DiD)检验,看趋势是否一致。
# 对照刘钊等 (2025, 经济学季刊) 的趋势一致性检验 |
与刘钊等(2025)论文趋势对照图
下图把我们的指数与刘钊等 (2025) 论文做趋势一致性对照(年度轨迹、季节模式、分类群趋势、区域基线):
![]()
print(tab) |
解读:丰度指数口径的朴素 DiD = r round(naive_did, 4) > 0,与刘钊等 (2025) 表 1 中 DID 系数 β1 显著为正的方向一致;而未校正物种数口径的 DiD 为负,是因为非试验区观测基数增长更快——这正说明必须用努力量校正后的指数做比较,不能拿原始物种数直接比。
点击这里跳转到 RStata 短书平台获取附件:名师讲堂|使用 R 语言测算各区县鸟类丰度指数
评论