跳转到内容

CO₂ 排放数据集(1800–2022)🌍

在多数已有研究里,序列分析(sequence analysis)常用在个体层面的序列数据上,比如教育、就业或家庭轨迹。但它不只适用于社会或人口学轨迹也完全可以分析国家、组织、技术,甚至生态过程。

这也是我们选用 CO₂ 排放数据集做快速上手示例的原因:它展示了序列分析如何跳出“人生历程”场景,迁移到更广泛的领域。我们希望这个例子既能帮你理解序列分析的核心思路,也能启发你把它用到别的研究方向里。

这个数据集是什么?来源在哪?

这个数据集记录了各国多年的人均 CO₂ 排放量(per capita)。 它来自 Gapminder 的公共数据(public data),汇集了全球各国的 CO₂ 指标。 我们已把原始数据源保存到 Sequenzo 的 GitHub 仓库: Gapminder data

数据集包含:

  • CO₂ 总排放量(kilotons,千吨)

  • 人均 CO₂ 排放量(metric tons per person,每人公吨)

  • 国家与地区标识(identifiers)

  • 跨越两个世纪的年度记录(annual records)

在本文里,我们重点关注人均排放(per capita emissions),而不是总排放(emissions)。因为它考虑了人口规模,做跨国比较更公平。

我们如何给 CO₂ 数据做分类?

序列分析(sequence analysis)通常处理的是类别型数据(categorical data),而不是原始数值。为此,我们先把连续型数值(continuous values)转换成类别状态(categorical states),做法是按 十分位组(deciles) 为各国各年的人均排放分组。

这些切分(cut points)是基于整个数据集 (所有年份 × 所有国家) 一次性计算出来的,这样能保证跨时间的比较口径一致。

全局十分位 vs 本地十分位(Global vs. Local Deciles)

谈到“十分位(deciles)”,其实有两种算法:

  1. 全局十分位(global deciles,本文采用)

    • 把所有国家、所有年份的人均排放拉成一个大样本池。

    • 只计算一次 10 个切点,并把它们应用到每个国家、每个年份。

    • 好处是:类别在全球范围可比(globally comparable)。

    • 例子:

      • 假设第 2 十分位的阈值是 1.2 吨/人。

      • 那么不管是 2015 年的巴基斯坦(Pakistan),还是 1980 年的巴西(Brazil),只要落在 0.8–1.2 之间,都归为“第 2 十分位(2nd decile)”。

  2. 本地十分位(local deciles,本文不采用)

    • 在每个年份(或每个地区)分别计算一次十分位。

    • 这意味着每年的切点都会变。

    • 例子:

      • 1960 年,因为整体排放低,第 2 十分位可能是 0.3 吨。

      • 到了 2020 年,全球排放上来了,第 2 十分位可能变成 1.5 吨。

      • 结果就是:同样是 1.0 吨/人,1960 年可能是很高的分位,但到 2020 年却可能是很低的分位。

为什么选全局十分位(Why Global Deciles)?

  • 它让跨时间的比较更靠谱——你可以在同一套全球标尺下观察一个国家是往上走还是往下走。

  • 如果用本地十分位,每年都会“洗牌”:即便一个国家的绝对排放没变,它的类别也可能因为别的国家变了而跟着跳来跳去。

具体步骤(Step-by-Step Process)

  1. 把所有国家 × 所有年份的人均 CO₂ 数值汇总到一起。

  2. 在 Python 里用 qcut() 把这些数值切分为 10 组(deciles)。

  3. 把每个国家每年的数值映射到对应的十分位组。

  4. 把数据整理成宽表(wide format):一行一个国家,后面是一串按时间排的“十分位状态”,也就是国家的序列(sequence)。

这种做法体现的是:每个国家的排放都是相对于全球分布(global distribution)来评估的,从而既能做跨国比较,也能做 纵向(longitudinal) 的序列比较。

说明 在源笔记本里,我们同时实现了五分位(quintiles,5 组)和十分位(deciles,10 组)两种分类。 试下来我们选择了十分位(deciles) 做最终分析,因为它更细,能看出国家之间更微妙的差异。 你也可以在源笔记本里对比两种分组方式,看看不同粒度会如何影响你的解读。

👉 完整的预处理步骤与代码见: Gapminder CO₂ + GDP notebook

示例:巴基斯坦(Pakistan)的 CO₂ 分类

以下是 Pakistan 的分类示意:

年份人均 CO₂(metric tons)十分位组
20150.78第 2 十分位
20160.85第 2 十分位
20170.92第 2 十分位
20180.85第 2 十分位
20190.85第 2 十分位

因为这些年份里,巴基斯坦(Pakistan) 的人均 CO₂ 排放大多处在全球分布的第 10–20% 区间,所以都被分到第 2 十分位。


为什么用十分位而不是五分位?(Deciles vs. Quintiles)

如果用五分位(quintiles,5 组),上面这些年份里的 Pakistan 可能都会被粗略归为“偏低(Low,20–40%)”。 而换成十分位(deciles,10 组)后,粒度更细:我们能看出它具体在第 2 十分位,而不是第 1 或第 3。

这种更细的分辨率,能帮我们区分那些同属“低位”但并不一样低的国家,尤其在需要比较大量序列时,这点很重要。

  • 数据整理与本文撰写:梁彧祺

  • 中文翻译:明煜坤

  • 校对:梁彧祺

Released under the BSD-3-Clause License.