HMD — 41 个国家的死亡率,能一路算到 1751 年

同一个方法协议做了 26 年:把各国统计局口径不一的出生数、死亡数、人口数,重建成年龄×年份×性别的单岁标准网格。瑞典那条序列从 1751 年开始,跨越 274 年没有断过——这是全人类最长的一条连续死亡记录

来源 Human Mortality Database(MPIDR / UC Berkeley / INED) url: https://www.mortality.org/发布时间: 2026-10-23最后更新: 2026-10-23 阅读 10
HMD — 41 个国家的死亡率,能一路算到 1751 年

信息速览

数据集名称HMD — 41 个国家的死亡率,能一路算到 1751 年
数据类型41 个国家/地区,回溯至 1751 年,单岁年龄,STMF 38 国周数据,HCD 18 国死因,CC BY 4.0,需注册
规模不适用(国家级聚合统计,非个体级记录;最小统计单元为年龄×年份×性别的暴露人年)
接入方式Human Mortality Database(MPIDR / UC Berkeley / INED) url: https://www.mortality.org/
AI 就绪度

INFOBOX

项 值
全名 Human Mortality Database(HMD,人类死亡率数据库)
维护方 MPIDR(罗斯托克)+ UC Berkeley 人口学系 + INED(巴黎)三方共建
发起 2000 年秋,John R. Wilmoth(UCB)与 James W. Vaupel(MPIDR)
覆盖 41 个国家/地区(含中国香港、中国台湾)
最早序列 瑞典 1751(周期与世代生命表均自此年起)
年龄轴 0–109 单岁 + 110+ 开放区间
数据粒度 年度(主库)/ 周度(STMF)/ 单日无
文件格式 制表符分隔 ASCII 文本(\t 分隔,.txt),zip 打包
全部统计量包 185.30 MB(15 个统计量)
STMF 周序列 38 国,最近更新 2026-09-28
HCD 死因序列 18 国,最近更新 2026-08-31,完整集合 202.2 MB
许可 自产估计 CC BY 4.0;Input Data 不可商用
访问 需注册(免费),注册后下载 zip
最大的坑 mx 可以大于 1.0——高龄段死亡数与暴露人口独立估计,前者偶尔超过后者,直接拿来算概率会崩

§0 本条目怎么来的、不做什么

我们是谁:千方病案医学编辑部,为中文医学 AI 社区整理可训练数据集的结构化说明。

本条目怎么来的:全部数字取自 mortality.org 官方页面的实时抓取(2026-10-23 23:40–23:50 UTC),包括 Data/DataAvailability 的国别年段表、Data/ZippedDataFiles 的打包体积表、Data/STMF 与 Data/HCD 的可得性表、Data/UserAgreement 的许可原文、Project/FAQ 的 40 余条问答,以及 Methods Protocol 摘要版 PDF(MP-Summary.pdf,2017-11-27 修订,5 页)的全文。国别数 41 由首页 Data by country or area 区块逐项计数得出,名单在附录 A 原样列出,可自行复核。

我们不做什么:本条目不做任何预测建模,不评价任何国家的统计数据质量,不重算任何一张生命表。§7 的口径核对只解释「为什么同一个国家在不同页面上的截止年份不一样」,不判定谁对谁错。

已知局限:

  • 我们没有下载数据包。185 MB 的统计量包与 202 MB 的 HCD 集合均未实际解压,文件内部列名与编码细节来自 Data/ExplanatoryNotes 的官方描述,未经我们逐字段验证。
  • 我们没有核到完整方法协议。MethodsProtocolV6.pdf 单文件下载在本环境下多次超时(三次尝试,最长 180 秒未完成),本条目所有方法学细节均来自 5 页摘要版,公式编号引用是摘要版给出的页码索引,不是我们对照原文核过的。
  • 所有国别年段是抓取时刻的快照。HMD 按「as new data become available」的原则持续更新,Data/WhatsNew 显示最近 12 个月有 20 余次国别更新。

§1 数据集概览

§1.0 📌 30 秒速览

HMD 做的事情,一句话:把各国统计局口径互不相通的出生数、死亡数、人口数,用同一套方法协议重建成年龄×年份×性别的单岁标准网格,并从这个网格里算出可跨国家、跨世纪直接对比的死亡率和生命表。

规模(2026-10-23 实测):

指标 数值 说明
国家与地区 41 首页 Data by country or area 区块逐项计数
最早序列 瑞典 1751 周期生命表 1751–2024,世代生命表 1751–1933
最晚截止 丹麦 2025 2026-04-29 更新,是唯一进到 2025 年的国家
年龄轴 0–109 + 110+ 单岁,110 以上合为开放区间
全部统计量包 185.30 MB 15 个统计量 zip
STMF 周序列 38 国 最近更新 2026-09-28
HCD 死因序列 18 国 完整集合 202.2 MB
最长世代表 瑞典 1751–1933 183 个出生世代有完整生命表

三个必须先知道的形状问题:

  1. 41 个国家不是「全世界 41 个国家」,是「登记系统够完整的 41 个」。 官方在 Project/Overview 里把这点写得非常直白:「the database is limited by design to populations where death registration and census data are virtually complete」,并直接承认「the countries and areas included here are relatively wealthy and for the most part highly industrialized」。非洲除个别北非国家外全部缺席,中国、印度、巴西、印尼、尼日利亚——全球人口前五里的四个——都不在库里。这不是收录不全,是方法前提的代价:那套重建历史序列的统一方法,要求普查与死亡登记同时近乎完整,缺一个就做不了。
  2. 「41 个国家」对应 53 个人群序列。 德国拆成总人口(DEUTNP)、东德(DEUTE)、西德(DEUTW)三条;法国拆总人口(FRATNP)与平民人口(FRACNP)两条;新西兰拆总人口(NZL_NP)、毛利(NZL_MA)、非毛利(NZL_NM)三条;英国拆联合王国总人口(GBR_NP)、英格兰与威尔士总人口(GBRTENW)、英格兰与威尔士平民人口(GBRCENW)、苏格兰(GBR_SCO)、北爱尔兰(GBR_NIR)五条。做跨国面板时按「国家」聚合会漏掉这些子人群,按「序列」聚合又会重复计算(德国的三条相加不等于德国)。正确的做法是先定分析单位是 country 还是 population,再决定 Country Code 怎么过滤。
  3. 主库是年度数据,没有月、没有日。 Project/FAQ 里有一条问答的标题就叫「Do you have data by month or by day?」,答案是「No」。周度需求要走 STMF 附属序列(38 国),而 STMF 自 2026-01-19 起因「保护敏感数据」被限制为仅注册用户可访问。死因需求要走 HCD 附属序列(18 国),而 HCD 的国别年段差异极大——挪威重构序列只到 2016,俄罗斯只到 2014,美国到 2024。这三个序列是三套不同的可得性边界,不能当成一个库用。

如果你要做跨世纪死亡率趋势、要研究超高龄死亡(这是 HMD 立项时的原始动机)、要做人口预测的基准、要拿生命表做保险精算、或者需要一个各国都对齐到同一套变量名的死亡基线,HMD 是公开渠道里唯一的选择;如果你要的是中国、印度、非洲的死亡率,HMD 帮不上,得转向 WHO GHO、UN WPP 或各国 DHS——代价是那些源不再有单岁×单年的精细网格,也不再有跨世纪连续序列。

§1.1 技术摘要

维度 值
覆盖 41 个国家/地区 → 53 个人群序列
年龄分辨率 单岁 0–109 + 110+ 开放区间
时间分辨率 年度(主库)/ 周度(STMF)
核心变量 Deaths、Exposure、mx、qx、lx/dx/Lx/Tx/ex
双轴 周期(日历年)× 世代(出生年)
补充数据 出生数、死亡数、1 月 1 日人口、普查数(Input Data)
格式 制表符分隔 ASCII(.txt),按统计量 / 按国家两套 zip
方法学 Methods Protocol V6,六步法;摘要版 5 页
更新机制 连续更新,国别独立打补丁
附属序列 STMF(38 国周死亡)/ HCD(18 国死因)
许可 自产估计 CC BY 4.0;Input Data 各归其主
访问 注册免费,无国别限制

§1.2 战略价值

第一,它是「超高龄死亡」这个问题的唯一长序列答案。 HMD 立项动机写得极清楚:1970 年代末起,高龄与超高龄段的死亡率出现了「unexpected and robust」的下降,这直接动摇了此前关于人类寿命上限的推测。要验证这件事,数据必须同时满足五个条件——覆盖到 100 岁以上、高龄段依然可靠、跨时空一致、长时段无断裂、在年龄/时间/世代三个维度上都够细。官方原话是「In 2000, none of the existing international databases met all these criteria」。HMD 就是为填这个洞而生的。今天做寿命上限、做死亡率减速(mortality deceleration)、做「informed mixing」争论的研究,底层数据几乎都是 HMD。

第二,它把「可比性」做成了产品本身。 各国统计局的原始数据在死亡登记口径(de facto vs de jure)、年龄报告(heaping)、领土变更、战时军事死亡是否计入、未知年龄如何处理上全都不同。HMD 不发布原始数据了事,而是用一套公开的方法协议(含公式与附录)把差异全部消掉,再把「我改了什么」写进每国的 Background and Documentation。这意味着一件事:你在 HMD 里看到的差异,可以假定不是口径造成的。 这句话在跨国比较里价值极高——绝大多数跨国数据集的差异,一大半其实是口径差异。

第三,它的「不可商用」边界划得很干净。 HMD 自产的暴露人口、死亡率、生命表是 CC BY 4.0;但 Input Data 仍归各提供方(多为国家统计局)的许可,官方明确写「should not be used for commercial gain or re-published in any form without the explicit permission of the data owners」。这是一条罕见的清晰切分:加工品可商用,原料不可。做 AI 训练集时,这条线决定了你只能用 15 个统计量包(都是 HMD 自产),不能用 Input Data 目录下的原始出生/死亡/普查数。

第四,它的方法论本身就是可训练的语料。 Methods Protocol V6 是一份完整的、带公式编号的、说明每一步为什么这么做的技术文档。informed mixing、extinct generation method、survivor ratio method(SR90+)、almost extinct cohort 的 1% 判据——这些不是术语表,是有推导的决策规则。做「科学推理」或「方法学问答」类训练集,这是一份质量极高的长文档样本,而且许可明确(CC BY 4.0)。

§1.3 同类资源横向对比

资源 覆盖 时间分辨率 年龄分辨率 最早 与 HMD 的分工
HMD 41 国/地区,偏富国 年 单岁 0–109+ 1751 基准。跨国、跨世纪、单岁、方法统一
WHO GHO(本站 #175) 194 国 年(部分 5 年) 5 岁组为主 1950 前后 覆盖全球但粗;HMD 是它的「高精度欧洲/北美切片」
UN WPP 237 国/地区 5 年(插值年) 5 岁组 1950 含预测;HMD 只有观测值,官方 FAQ 明确「no forecasts of any kind」
CDC WONDER(#155) 美国 年/月 单岁可查 1968 单国深度;HMD 的美国序列起于 1933,早 35 年
GBD(#97) 204 国 年 5 岁组 1990 含建模估计与不确定性区间;HMD 是实测值,无模型
STMF@HMD 38 国 周 5 岁组 + 合计 2000 前后(芬兰 1990) 同门附属序列,专为 COVID 而建
HCD@HMD 18 国 年 5 岁组为主 1950 前后 同门附属序列,死因统一清单
HLD 不定 年 不定 不定 「别人做的生命表」合集,含 HMD 收不了的国家
USMDB / AHMD / CHMD 美国 / 澳大利亚 / 加拿大 年 单岁 1959 / 1971 / 1982 次国家层级卫星库,官方明言「not parts of the HMD」

一句话分工:要全球覆盖选 WHO GHO 或 GBD,要预测选 UN WPP,要单国细节选 CDC WONDER 或各国统计局,要「跨国 + 跨世纪 + 单岁 + 方法统一」只有 HMD。

§1.4 版本时间轴

HMD 没有「版本号」这个概念,只有连续的国别补丁。以下是 Data/WhatsNew 记录的近 12 个月(原样摘录,倒序):

日期 变更
2026-08-31 HCD 死因序列修订更新:10 国重构序列延长(加拿大至 2023、爱沙尼亚至 2024、法国至 2023、日本至 2023、拉脱维亚至 2024、立陶宛至 2024、波兰至 2023、西班牙至 2023、瑞典至 2024、美国至 2024);5 国原始分类序列延长
2026-08-27 法国(总人口 + 平民)修订至 2024
2026-06-15 美国修订至 2024(含新发布数据)
2026-06-03 冰岛修订至 2024
2026-04-29 丹麦修订至 2025(全库唯一进到 2025 的国家)
2026-04-07 韩国修订至 2024;克罗地亚修订至 2024
2026-03-26 意大利修订至 2023
2026-02-18 美国修订至 2024;卢森堡至 2024;中国台湾至 2024
2026-02-10 中国香港至 2024;智利至 2024
2026-01-19 STMF 访问受限:为保护敏感数据,改为仅注册 HMD 用户可下载(原凭据继续可用)
2025-12-11 斯洛伐克至 2024;葡萄牙修订至 2024

方法协议版本:现行 V6。摘要版 PDF 首页标注「Last Revised: November 27, 2017」。从摘要版引用的页码范围(pp. 10–14、15–29、25–26、26–29、29–33、34–38、38–39、39–40、40–42、42–44、63、70)判断,完整版至少 70 页以上。

一个容易忽略的事实:HMD 的「更新」不是全库刷新,而是逐国打补丁。Data/WhatsNew 里 2026 年 8 个月只有 11 次国别更新,而 41 个国家里截止年份从 2013(乌克兰)到 2025(丹麦)跨度 12 年。所以「HMD 是什么时候的数据」这个问题没有统一答案,必须逐国看 Data Availability 表的最后一列。

§1.5 典型应用场景

场景 用哪个序列 关键注意
跨国预期寿命比较 周期生命表 bltper / mltper / fltper 先对齐年份交集,再比;不要用各国各自的「最新年」
超高龄死亡率研究 单岁 mx(80+ 段) 必须用平滑后的生命表值,原始 mx 在 80+ 有噪声甚至 >1
世代寿命不平等 世代生命表 bltcoh 等 只有 8 国有世代表(瑞典/丹麦/法国/芬兰/冰岛/意大利/荷兰/挪威/西班牙/瑞士/英格兰与威尔士等),且截止于 1930 年代出生
COVID 超额死亡 STMF(周序列) 需注册;俄罗斯 2021 年底停更、韩国 2023 年停更
死因结构转变 HCD 18 国;用「重构序列」而非「原始分类序列」做跨年比较,否则 ICD 改版会造假拐点
保险精算基准 周期生命表 官方 FAQ 明确「demographers and actuaries may also use these data to assess mortality risk」
教学(人口学方法) 全套 官方 FAQ 明言「educators use the HMD for teaching courses in demography」

一个反面清单(官方 FAQ「What we do NOT have」原样翻译,这份清单本身就值得记住):

  • 死因数据——主库没有(走 HCD)
  • 世界人口、世界平均寿命——没有
  • 任何形式的预测/投影——没有
  • 发病率、疾病数据——没有
  • 生育率数据——没有(走 Human Fertility Database)
  • 次国家层级数据——没有(除英/德/新西兰特例)
  • 按种族/族裔的死亡率——没有(除新西兰毛利/非毛利)
  • 按月或按日的死亡率与出生数——没有(走 STMF)
  • 官方还顺手写了一条:「Proportion of people with blond hair and blue eyes」——没有

§2 统一是怎么做到的:方法协议的六个步骤

HMD 全部价值都压在「统一」两个字上。这一节把 Methods Protocol 摘要版(2017-11-27 修订)的六步法逐步拆开,每一步都指出它为什么必须这么做,以及不做会出什么问题。

§2.1 第一步:出生数

做什么:收集每个国家最长时段内按性别、按月份的活产数。

为什么:出生数在 HMD 里有三个用途,缺一不可——

  1. 估计世代规模。1 月 1 日某年出生世代的存活人数,是从出生数一路减死亡数推出来的,中间没有别的锚点。
  2. 修正人口估计。普查之间的内插存活法(intercensal survival)需要知道每个世代「原本有多少人」。
  3. 精确化暴露人口。按月份拆分的出生数,用于修正「同一世代内不同人的生日在一年内分布不均」造成的暴露误差。

不做会怎样:HMD 的世代数据全部失效。摘要版原话是「At a minimum, a complete series of birth counts by sex is needed for the time period over which mortality rates and period life tables are computed」——这是硬门槛,不是优化项。这也解释了为什么「登记完整」是收录前提:出生登记不全的国家,连第一步都过不了。

§2.2 第二步:死亡数

做什么:按性别、单岁年龄、出生年、死亡年收集死亡数。

为什么:这一步的核心难点在**「按出生年」**这四个字。多数国家的原始死亡登记只给「死亡年 + 单岁年龄」,不给「出生年」。但死亡率要做 Lexis 三角形分解(年龄 × 时间 × 世代三维),缺了出生年就拆不出来。

HMD 的补救(摘要版原文给的三个动作):

  • 未知年龄按比例分摊:把「年龄不详」的死亡数按已知年龄的分布比例摊回去。
  • 聚合年龄拆细:原始数据只有 5 岁组时,拆成单岁。
  • 必要时按 5 岁组处理:拆不动的,退一步用 5 岁组,并在文档里标明。

这里有个必须先讲清的后果:Data/ExplanatoryNotes 明确写「the uniform data shown on country pages by single years of age (from age 0 to 109, with an open age interval for ages 110+) are sometimes estimates derived from aggregate data」。换句话说,你在国家页面上看到的「单岁」数据,并不总是原始单岁记录——有相当一部分是从更粗的粒度拆出来的。 做高龄研究时这一点尤其要命:80 岁以上本来人数就少,如果某个国家的 80+ 是从「80–84 一组」拆出来的,那这个国家的单岁高龄死亡率波动就不能当真实信号读。

§2.3 第三步:人口规模

做什么:估计每年 1 月 1 日的人口规模。

为什么这一步最复杂:因为不同年龄段、不同世代状态要用三种不同的方法,摘要版的 Figure 1 把它们画在一张「年龄 × 时间」图上分三色标出:

情形 方法 图 1 中的颜色
80 岁以下 官方估计,或普查内插存活法(intercensal survival) 红(A)
已灭绝世代(该世代全部成员已死亡) 灭绝世代法(extinct generation method) 绿(B)
未灭绝且观测期末已 90 岁以上 存活比法 SR90+(survivor ratio method) 蓝(C)
未灭绝且观测期末 80–90 岁 官方估计,或内插/后插存活法 摘要版未标色

为什么必须分三种:普查每 10 年一次,中间年份要靠内插;但内插在两个方向上会失效——最高龄段(越老越少,比例法不稳定)和最老世代(人还没死完,无法闭合)。所以对已灭绝世代改用「从死亡数倒推人口」(这是最干净的,因为所有人都在观测期内死了),对 90 岁以上未灭绝世代改用「存活比」(用更高年龄组的存活比例外推)。

不做会怎样:高龄段人口估计系统性偏差,直接污染 mx,进而污染 ex(预期寿命)。这就是为什么 HMD 能研究「超高龄」而多数数据集不能——它专门为这一段设计了方法,而不是把 80+ 当一坨处理。

§2.4 第四步:暴露人口

做什么:把「1 月 1 日人口」换算成「该年龄×时间格内暴露于死亡风险的人年数」。

为什么不能直接用 1 月 1 日人口:两个修正。

  1. 死亡时点修正:一年内死掉的人,不是完整暴露了一整年。年中死的暴露约半年,年末死的暴露约一年。标准做法是按死亡分布假设折半(或用更细的分布)。
  2. 生日月份分布修正:同一「年龄」的人,1 月 1 日生日刚过的人和 12 月 31 日生日的人,实际年龄差将近 1 岁。这就是第一步为什么要收集「按月份的出生数」——它在第四步才真正用上。

摘要版给的公式位置:周期暴露 pp. 29–33(Equations 50–57),世代暴露 Equations 60–62。

这是整个协议里最容易被忽略、又最影响结果的一步。 用 1 月 1 日人口直接除死亡数,会在婴儿段(0 岁)产生显著偏差——因为婴儿死亡高度集中在出生后 28 天内,出生月份分布的影响极大。

§2.5 第五步:死亡率

做什么:死亡率 = 死亡数 ÷ 暴露人口,在同一年龄×时间格内配对。

为什么「简单相除」也要写进协议:因为区间聚合的规则不是平均。摘要版有一句极重要的话:

For broader intervals of age and/or time (whether time is defined by periods or cohorts), death rates are always found by pooling deaths and exposures first and then dividing the former by the latter.

意思是:算 5 岁组死亡率、算 10 年周期死亡率、算多年出生世代死亡率,都是先加死亡数、先加暴露,再相除,绝不是把单岁的 mx 求平均。这两者结果不同,而且差异在死亡率随年龄指数上升时会很大(Jensen 不等式)。

同一个规则贯穿全库:多年度生命表、多年世代生命表、简化生命表,全都遵守「先合并再相除」。

§2.6 第六步:生命表

做什么:把死亡率转成死亡概率,再逐级推出生命表各列。

周期表与世代表的关键差异(这是本条目最该记住的技术点):

周期生命表 世代生命表
索引 日历年 出生年
含义 「某一时刻的死亡条件」 「某一群人真实的生命历程」
概率来源 由 mx 转换 直接由数据算
高龄处理 必须平滑(80+ 起) 不平滑
为什么会 >1 高龄段 mx 偶尔 >1.0,平滑后才能保证 m(x)<1 直接由 qx 算,无此问题
可得条件 有数据就有 至少 30 个连续日历年才有死亡率;至少一个世代灭绝才有生命表

「80 岁以上必须平滑」的原因,官方 FAQ 写得很清楚:高龄段死亡数与暴露人口是独立估计的,两者都变小之后,分子偶尔会超过分母,导致观测 M(x) > 1。所以 HMD 在 80 岁及以上先平滑再算生命表。这就是为什么不能拿原始 mx 直接算概率——mx > 1 时,标准转换公式 qx = mx / (1 + 0.5·mx) 会给出接近 1 但物理上无意义的结果。

平滑的截止年龄不是固定的:摘要版说「The cutoff age is based on a decision rule that involves both age and number of survivors in a particular population」——按年龄与该人群存活人数共同判定。这意味着不同国家的平滑起点不同,做跨国高龄比较时这是一个隐性异质性来源。

「almost extinct cohort」的 1% 判据:即使世代未完全灭绝,只要「剩余预期人年 ≤ 该世代总人年数的 1%」,就按「几乎灭绝」处理,用「观测期末前刚结束的 5 年世代在同年龄的死亡率」补齐。摘要版举的例子:观测期末 2000-12-31,1900 世代只有到 99 岁的完整数据,则 99→100 的死亡率借用 1895–1899 世代的同年龄值。实操上通常落到「观测期末已达 90 岁以上的世代」按此处理。

§2.7 三个「不是平均」的陷阱

这三条都是摘要版明确写出的「不是简单平均」,且都在实操里被踩过:

陷阱一:b(both sexes)不是 m 与 f 的平均。

Raw data for women and men are always pooled when making calculations for the total population. Thus, “total” death rates are not a simple average of the separate values for females and males, but rather a weighted average reflecting the relative size of the two groups at a given age and time.

实操含义:想从 mltper 与 fltper 反推 bltper 是错的。要么直接用 bltper,要么自己按人口加权重算。

陷阱二:多年生命表不是逐年生命表的平均。
10 年周期生命表 = 先把 10 年的死亡数与暴露分别相加,再相除,再算生命表。不是 10 张年表的平均。

陷阱三:简化生命表是从完整生命表「抽」出来的,不是从 5 岁组数据重算的。

“abridged” life tables (e.g., by five-year age groups) are extracted directly from “complete” life tables (i.e., by single year of age).

为什么重要:这样保证简化表与完整表的 ex 完全一致。如果反过来(从 5 岁组重算),两套表的预期寿命会有微小差异,做交叉验证时会被误判为错误。

§2.8 两个特殊情形

A. 领土变更:yyyy- 与 yyyy+

发生过领土变更的国家,某些年份会有两套人口估计:yyyy- 是变更前(12 月 31 日),yyyy+ 是变更后(1 月 1 日)。官方 FAQ 举的例子是法国:1914- 覆盖 1913-12-31 的法国领土,1914+ 反映 1914-01-01 的边界。

实操:读到带符号的年份不要当脏数据丢掉,也不要当成两个不同年份。它是「同一年、两个边界」。方法学协议 Appendix D(p.63 起,到 p.70)专门处理这件事。

B. 总人口 vs 平民人口

遭受重大战争损失的国家(法国、英格兰与威尔士是典型),会同时给两套:

  • 平民人口(civilian):排除在国外阵亡的军人。法国 FRACNP、英格兰与威尔士 GBRCENW。
  • 总人口(total):包含国外军事死亡。法国 FRATNP、英格兰与威尔士 GBRTENW。

官方原话:「Period mortality is identical in the two series except during war years」。这意味着:非战争年份两套序列可以互换,战争年份绝不能。 而且官方还提醒:「Cohort life tables for the civilian population are provided, but these data are of questionable quality for those populations that experienced substantial war mortality」——平民世代表在战争国家不可信,因为那个世代真实的死亡经历没有体现在平民数据里。


§3 数据规格与取数通道

§3.0 三条通道

HMD 有三套完全不同的取数方式,用途不重叠:

通道 适合 结构 门槛
按统计量(By statistic) 只想要某一类变量、要覆盖全部国家 15 个 zip,每个一个国家一列或一文件 注册
按国家(By country) 要一国全量、要读该国的 Background and Documentation 每国一个 zip,内含该国全部可得数据 + 文档 注册
国家页直接下载 要某个具体统计量的即时可用版本 网页表格 + 单个文件链接 注册

官方对两者的定位写得很直白:按国家的「file organization follows internal practices and is not particularly user-friendly, but all publicly-available HMD data are included」;按统计量的「file organization is simpler, but only certain parts of the database are available in this format」。

翻译成实操建议:做分析用「按统计量」,做核查/复现用「按国家」。 因为「按统计量」只含「Complete Data Series」那一层,而「按国家」还含 Input Data(原始出生/死亡/普查数)。

§3.1 文件地图

按统计量包的 15 个组成部分(Data/ZippedDataFiles 原表,体积为官方标注):

轴 统计量 体积
周期 Birth Counts 72.7 kB
周期 Death Counts 22.5 MB
周期 Population estimates (January 1) 10.3 MB
周期 Exposure to Risk 32.6 MB
周期 Age-Specific Death Rates 11.2 MB
周期 Age-Standardized Death Rates 134.8 kB
周期 Life Tables — Male 21.7 MB
周期 Life Tables — Female 21.6 MB
周期 Life Tables — Both Sexes 21.7 MB
周期 Life Expectancy at Birth 67.4 kB
世代 Exposure to Risk 15.1 MB
世代 Death Rates 11.6 MB
世代 Life Tables — Male 5.5 MB
世代 Life Tables — Female 5.5 MB
世代 Life Tables — Both Sexes 5.5 MB
世代 Life Expectancy at Birth 18.4 kB
All HMD statistics 185.30 MB

注意体积分布透露的信息:周期暴露(32.6 MB)比周期死亡数(22.5 MB)还大,说明暴露人口是逐格算出来的,不是从死亡数推的;而世代生命表(各 5.5 MB)远小于周期生命表(各 21.7 MB),直接反映「有世代表的国家少得多」。

§3.2 下载预算

用途 需下载 体积
只做跨国预期寿命对比 Life Expectancy at Birth(周期) 67 kB
做周期生命表分析 3 个 Life Tables(周期) 65 MB
做年龄别死亡率分析 Exposure + Death Rates + Age-Specific DR 55 MB
全量分析 All HMD statistics 185 MB
死因分析 HCD 完整集合 202 MB
周度超额死亡 STMF 输出文件 未标注(xlsx/csv)

一个被忽略的小文件:Birth Counts 只有 72.7 kB,但它决定了你能不能重算世代规模。如果你要做世代分析而只下了生命表,这个 72 kB 就是必需补的一环。

HCD 的三级死因清单体积差(Data/HCD 原表):

变量 长清单 中清单 短清单
Death counts by age 14.7 MB 6 MB 2.5 MB
Age-specific death rates 18.2 MB 7.6 MB 3 MB
Crude death rates 2.5 MB 804.5 kB 267.2 kB
Standardized death rates 10.1 MB 3.6 MB 1.3 MB
Population exposures 414.4 kB — —
Births 20.2 kB — —

短清单只有长清单的 1/6 体积,且五个变量全都有。 如果只是做「主要死因类别」的趋势分析,短清单足够,不必下长清单。

§3.3 版本机制

HMD 没有语义化版本号。判断「我手上的是哪一版」靠三样东西:

  1. 下载日期。官方明确要求「When downloading data, note the date for future reference」——这不是客套,因为同一国家同一段年份的数字会被修订,而你无法从文件内容分辨。
  2. Data/WhatsNew 的补丁记录。逐条列出哪个国家哪个日期更新到哪一年。
  3. Data Availability 表的年段。这是唯一的「当前状态」权威。

Previous Versions 页面另存了历史快照:HCD 的旧版本列表显示 6 个时点(2025-09-09 197.3 MB / 2025-07-17 196.9 MB / 2025-05-20 196.3 MB / 2025-01-09 221.5 MB / 2024-10-26 221.5 MB / 2024-02-16 204.0 MB)。注意 2025-01-09 到 2025-05-20 体积从 221.5 MB 掉到 196.3 MB,掉了 25 MB——官方没有在 WhatsNew 里解释这件事,但从 HCD 的性质看(重构序列重新校准),历史序列被重算导致体积变化是合理的。这类体积跳变是做复现时的最大麻烦:同一个「加拿大 2000–2023」,两次下载的数值可能不同。

§3.4 技术栈与溯源链

环节 官方做法 对使用者的影响
原始数据 各国统计局 / 普查机构提供 各国格式、口径、粒度全不同
处理 Methods Protocol 六步法,逐国定制调整 调整细节写在各国 Background and Documentation
校验 与官方生命表交叉比对(官方原文提及 for comparative purposes) 但校验结果未逐国公开发布
发布 zip(制表符分隔 ASCII) 无 API、无数据库、无 JSON
引用 逐国数据源列在该国页面 引用要求区分「HMD 自产」与「HMD 转发的原始数据」

「无 API」是 HMD 最容易被抱怨的一点。 全部数据是静态 .txt 文件的 zip,没有 REST 接口、没有 JSON、没有 SPARQL。要做自动化流水线,必须自己写「下载 zip → 解压 → 解析制表符 → 拼面板」。好消息是格式稳定:制表符分隔 ASCII,按性别/年龄/时间组织,几十年没变过。


§4 记录结构与字段字典

§4.1 一条记录的结构

HMD 的「一条记录」不是一个个体,而是一个统计格:某个国家(人群)× 性别 × 年龄 × 年份(或出生年)。所有统计量都挂在这个网格上。

Data/ExplanatoryNotes 给的格式描述(原意翻译):

Data files are tab-delimited text (ASCII) files. Files are organized by sex, age, and time. Population size is given for one-year and five-year age groups. Deaths, exposure-to-risk, death rates, and life tables are given in similar formats of age and time.

典型文件的形状(mltper / fltper / bltper 这类生命表文件):

 Switzerland    0    1876    1    1    ...   ← Country, Age, Year, Sex 等索引列
 Switzerland    1    1876    ...

注意:文件里没有 Table Header,列名写在配套的 *.txt 说明文件或 Explanatory Notes 里。这是 HMD 最不友好的一点——你不能 pandas.read_csv 完就直接用,必须先读说明确定列序。

§4.2 年龄轴与开放区间

项 规则
起始 0 岁(不是 1 岁,婴儿单独成档)
步长 单岁(1x1)
终点 109 岁
开放区间 110+(所有人合并为一档)
简化表 5 岁组(从完整表抽取,非重算)
人群年龄上限 无(ex 一直到 110+ 都有值)

为什么是 110 而不是 105 或 120:官方未在摘要版说明。从实操看,110+ 是被国际公认的「超级百岁老人」起点,且在这个年龄以上样本量已经小到无法稳定估计单岁死亡率。

§4.3 特殊符号

HMD 用符号而非 NA 表示特殊状态。Project/FAQ 与 Explanatory Notes 明确提到的有:

符号 含义 出处
. 缺失(该格数据不可得) Explanatory Notes(世代死亡率例)
* 隐私屏蔽(输入数据被该国要求不公开) FAQ「Why are there stars (*)」
yyyy- 领土变更前的人口(12 月 31 日) FAQ「two sets of population estimates」
yyyy+ 领土变更后的人口(1 月 1 日) 同上
空 / 缺行 该年该国该年龄无数据 隐含规则

. 与 * 的差别必须分清:

  • . 是统计上不可得——那段数据本身不存在或无法估计。世代死亡率里,年轻段大面积是 .,因为该世代的年轻人还没活到那个年龄(例如瑞典序列起于 1751,1675 世代只能从 76 岁起有死亡率)。
  • * 是存在但不公开——原始数据有,被国家统计局要求屏蔽。官方原话:「For some countries, access to the input data is protected for privacy issues. In such situations, the original data are replaced by the star symbol.」

实操含义:. 可以当「结构缺失」处理(该格本来就不该有值),* 必须当「已知缺失」处理(有值但拿不到)。把两者一起 dropna 会同时丢掉两类信息,其中 * 的分布本身可能就有偏(哪些国家要求屏蔽,不是随机的)。

§4.4 变量字典

核心变量(周期与世代双轴):

变量 含义 单位 备注
Deaths 死亡人数 人 含未知年龄分摊后的结果
Exposure 暴露人年 人年 已含死亡时点与生日分布修正
mx 死亡率 无量纲 = Deaths ÷ Exposure;高龄可 >1.0
qx 死亡概率 无量纲 周期表由 mx 转换;世代表直接算
lx 存活人数(生命表基数) 人 通常以 100,000 为基数
dx 该年龄死亡人数 人 = lx − lx+1
Lx 该年龄人年数 人年
Tx 该年龄以上累计人年数 人年
ex 该年龄预期寿命 年 = Tx ÷ lx

Input Data 变量(原始,非 HMD 自产):

变量 含义 许可
Live birth counts 活产数(按性别、按月份) 各国统计局
Death counts 死亡数(按性别、单岁/组、出生年) 各国统计局
Population size (Jan 1) 1 月 1 日人口 各国普查/估算
Census counts 普查数 各国普查机构

许可分界线就在这张表:上表(mx / qx / lx…)是 HMD 自产,CC BY 4.0;下表(出生/死亡/普查原始数)归各国,不可商用、不可再发布。

§4.5 国家代码

HMD 用 ISO 3166-1 alpha-3 代码(官方 FAQ 明确),但不完全遵守,存在的例外:

HMD 代码 含义 与 ISO 的差异
FRATNP 法国总人口 非 ISO;TNP = Total National Population
FRACNP 法国平民人口 非 ISO;CNP = Civilian National Population
DEUTNP / DEUTE / DEUTW 德国总/东/西 DEU 是 ISO,后缀自造
GBR_NP / GBRTENW / GBRCENW / GBR_SCO / GBR_NIR 英国五条 GBR 是 ISO,后缀自造
NZL_NP / NZL_MA / NZL_NM 新西兰总/毛利/非毛利 NZL 是 ISO,后缀自造
USA 美国 ISO 是 USA ✓
HKG 中国香港 ✓
TWN 中国台湾 ✓
KOR 韩国 ✓

官方另提供 country_codes.csv 在 /File/GetDocument/Public/country_codes.csv,是唯一权威映射表。不要自己按 ISO 猜。

§4.6 一个容易搞错的地方:e0 有三份

「出生预期寿命」在 HMD 里有三份独立文件:

文件 内容 体积
Life Expectancy at Birth(周期) 周期 e0,按性别 67.4 kB
Life Expectancy at Birth(世代) 世代 e0,按性别 18.4 kB
各 Life Tables 里的 ex 第 0 行 与上面两份重复 —

三者不相等,且都不该混用:

  • 周期 e0 是「某年出生的婴儿,若一生都经历该年的死亡条件,能活多久」——这是媒体常说的「某年预期寿命」,也是 COVID 期间下降的那个数。
  • 世代 e0 是「某年出生的这批人,实际活了多久」——只有该世代灭绝(或接近灭绝)才有值,所以最新世代永远缺。
  • 生命表第 0 行 ex 与周期/世代 e0 应该一致,但由于平滑与取整,可能差最后一位小数。

实操:做「预期寿命趋势」用周期 e0(67.4 kB 那个文件,最省事);做「世代寿命不平等」用世代 e0;做生命表内部一致性检查时,用第 0 行 ex 与 e0 文件比对,差异应 ≤ 0.01 年。


§5 检索、抽样与泄漏分析

HMD 没有检索接口——它是一个静态文件集合。这一节说的「检索」是在文件内部怎么定位你要的格子,「抽样」是怎么在面板结构上划分训练/测试,「泄漏」是哪些设计会不知不觉把答案泄进特征里。

§5.0 四条定位路径

路径 怎么做 适用
按国家 下 By country 的该国 zip,全部统计量都在里面 单国深度分析
按统计量 下 By statistic 的某一类 zip,里面按国家分文件 跨国面板
按年份切片 拼面板后按 Year 过滤 特定历史事件(战争、疫情、饥荒)
按年龄切片 拼面板后按 Age 过滤 高龄/婴儿等特定段

推荐的拼面板流程(这是唯一可靠的做法):

1. 下 By statistic 的 Exposure + Deaths(或直接下 mx)
2. 解压,逐个国家文件读入,统一列名
3. 加 Country 列(用 country_codes.csv 映射,不要按文件名猜)
4. concat 成一张长表:(Country, Sex, Age, Year) → 指标
5. 再做任何分析

为什么必须「先拼长表再分析」:HMD 的文件是「一个国家一个文件」的组织,直接逐个文件算指标会漏掉跨国的可比性检验(比如「这个国家 1950 年的数据和邻国差 3 倍,是真实差异还是口径问题」)。拼成长表之后,一眼就能看出异常。

§5.1 抽样策略:面板不能随机切

核心原则:HMD 是面板(panel),按格子随机切会同时违反时间自相关和跨格相关性。 三种正确的切法:

切法 做法 适合什么任务 代价
按国家切(留一国法) 训练 A–Z 国,测试其余 跨国泛化 只剩 41 个单位,方差极大;且富国/穷国分布极不均
按时间切(前向验证) 训练 ≤1990,测试 1991–2024 时间外推(预测未来死亡率) 只能做「预测」类任务,不能做「解释」类
按世代切 训练 ≤1940 世代,测试 1941+ 世代寿命研究 只有 8–12 国有世代表,样本极小
组合切(推荐) 按国家 × 按时间双维留出 真实部署场景 测试集样本量会很小,需要报告置信区间

绝对不能用的切法:

  • 随机按格子切。同一国家同一年的相邻年龄格高度相关(mx(60) 与 mx(61) 的相关系数通常 >0.99),随机切会让测试集里充满「训练集的邻居」,指标虚高。
  • 按性别切但同国家同年。男女死亡率强相关,等于泄漏。
  • 按统计量切(比如用 mx 训练、qx 测试)。这些量互为函数,是完全泄漏。

§5.1.1 什么时候不该用 HMD

四种情况应该直接换数据源:

  1. 需要中国、印度、非洲、拉美(除智利)的数据。HMD 没有。转向 WHO GHO、UN WPP、DHS、GBD。
  2. 需要次国家层级(省、州、市)。HMD 只有国家层级,仅英/德/新西兰特例。转向 USMDB、AHMD、CHMD、各国统计局。
  3. 需要月度或日度。主库只有年度。转向 STMF(38 国周数据)或各国统计局原始发布。
  4. 需要发病率或患病率。HMD 只有死亡。转向 GBD、IHME、各国健康调查。

§5.2 三类真实泄漏,按危害排序

泄漏一:用未来信息校准过去(最严重)

HMD 的全部历史数据都会被修订。Data/WhatsNew 显示,2026 年 8 月还在「修订 2023 年的数据」。这意味着:如果你在 2026 年下载了 1900–2020 的数据来训练一个「预测 2021」的模型,你用的 1900–2020 数值里,有一部分是 2021 年之后才知道的信息反向修正过的。

这是历史人口数据独有的泄漏,因为它不像影像数据那样「一次采集永不改」。具体机制:普查后插存活法需要用到下一次普查的结果;灭绝世代法需要等整个世代死完才能定稿。一个 1900 年出生的人,他所在世代的死亡率要到 2010 年后才完全确定。

怎么处理:如果要严格做「时点预测」,必须用 Previous Versions 的历史快照,而不是当前版本。HCD 有 6 个历史快照可用(2024-02 至 2025-09);主库的历史快照官方未提供批量下载,只能靠研究者自己归档。

泄漏二:ex 与 mx 互为函数(最常见)

生命表各列是逐级推导出来的:mx → qx → lx → dx → Lx → Tx → ex。任意两列互为函数,不能一列做特征、另一列做标签。

实操里最常见的错:用 Age、Sex、Year、mx 预测 ex——这不是预测,是算术。模型会「学到」一个完美的公式,然后你误以为死亡率能预测寿命。

正确的做法:要么预测 mx(用历史 mx 做特征),要么预测 ex(但特征里绝不能出现同年的 mx、qx、lx)。如果要用死亡率信息,只能用滞后年份的。

泄漏三:b(both)与 m/f 的包含关系

bltper 是由男女原始数据合并算出来的。用 mltper + fltper 训练、bltper 测试,或者反过来,都是泄漏。

而且这个泄漏很隐蔽:因为 b ≠ (m+f)/2(§2.7 陷阱一),模型在 m/f 上学到的映射不能直接给出 b,所以指标会「看起来不那么完美」,让你误以为没泄漏。实际上 b 的每一个格子都包含 m 与 f 的信息。

§5.3 结构泄漏:年龄轴本身就是答案

生命表的年龄结构极强:ex(0) ≈ 80,ex(50) ≈ 30,ex(80) ≈ 9,ex(100) ≈ 2.5。只给 Age,模型就能猜到 ex 的量级。

更麻烦的是 lx:它是单调递减的,从 100,000 一路降到 0。任何「预测 lx」的任务,只要给了 Age,基线就是「按年龄套一条通用存活曲线」,R² 轻松 0.95 以上。 这种模型没有任何信息量。

怎么避开:

  • 报告指标时必须给基线(比如「按年龄的通用存活曲线」),而不是只报 R²。
  • 真正有信息量的任务是残差:实际 ex 与「按年龄+性别+年份的通用曲线」预测值之差。这才是国家差异、时代差异的信号。

§5.4 一个不该做的划分:按国家切但留出「富国」

HMD 的 41 个国家里,西欧/北欧/北美/日本占绝大多数,东欧(白俄罗斯、保加利亚、俄罗斯、乌克兰、拉脱维亚、立陶宛、斯洛伐克、克罗地亚、波兰、捷克、匈牙利、爱沙尼亚、斯洛文尼亚)是另一群,东亚(日本、韩国、中国香港、中国台湾)是第三群。

如果按「随机留出 5 国做测试」,很可能全部落在西欧群里——因为西欧国家本来就多。结果模型在「东欧转型期死亡率危机」(1990 年代俄罗斯男性预期寿命暴跌)上会完全失效,而你还以为泛化很好。

正确做法:分层留出——按「地理-制度群」分层,每层至少留 1 国。虽然样本只剩 41 个,但至少能测出「跨群泛化」。


§6 AI 就绪指南

§6.1 最小可用 Pipeline

# 阶段 1:取数(注册后手动下载 zip,无 API)
#   下 All HMD statistics(185 MB)
#   或只下 Life Expectancy at Birth + Life Tables(约 87 MB)

# 阶段 2:解析(无表头,列序须查 Explanatory Notes)
import pandas as pd
def load_hmd_life_table(path, sex_code):
    # HMD 生命表列序(周期):
    # Country, Sex, Year, Age, m, q, l, d, L, T, e
    df = pd.read_csv(path, sep=r'\s+', header=None,
                     names=['Country','Sex','Year','Age',
                            'm','q','l','d','L','T','e'])
    return df[df['Sex'] == sex_code]

# 阶段 3:拼面板
frames = [load_hmd_life_table(f, 'b') for f in country_files]
panel = pd.concat(frames, ignore_index=True)

# 阶段 4:校验(必做,见 §7.5)
assert panel['Age'].between(0, 110).all()
assert panel.groupby(['Country','Year'])['l'].max().between(99_000, 100_000).all()

这段代码里唯一需要注意的点:sep=r'\s+'(按空白切分)。HMD 是制表符分隔,但也有空格对齐的情况,「按空白切」比「按单一制表符切」稳。另一个注意事项是列序:上面写的列序是周期生命表的标准序,但不同统计量文件的列序不同(死亡数文件没有 m/q/l/d,暴露文件只有一列),必须逐类查说明。

§6.2 构建训练样本

三种真正有意义的任务构造,按可做性排序:

任务 A:死亡率预测(时间外推)

  • 输入:国家 C、性别 S、年龄 A、年份 ≤ T 的 mx 序列
  • 输出:年份 T+1…T+k 的 mx
  • 切分:按时间(训练 ≤2010,测试 2011–2024)
  • 基线:把最后一个观测值直接平推(naive forecast)。如果你的模型打不过这个基线,它没有价值。
  • 难点:COVID 年(2020–2021)是极端异常值,做预测时要么剔除、要么单独建模

任务 B:生命表重建(结构学习)

  • 输入:Age、Sex、Year、mx(0–109 全段)
  • 输出:完整生命表(qx、lx、dx、Lx、Tx、ex)
  • 切分:可以按国家切(因为这是个确定性映射,不是统计推断)
  • 注意:这是「学会方法协议」,不是「发现规律」。训练集里不能出现测试国家的任何生命表列,否则就是抄答案。

任务 C:跨国差异残差建模(最有价值)

  • 输入:国家特征(GDP、医疗支出、吸烟率、肥胖率等外部变量)+ 年龄 + 性别 + 年份
  • 输出:实际 mx − 基线 mx(基线可用「同年龄+性别的跨国均值」或「同国历史趋势」)
  • 切分:按国家分层留出
  • 为什么最有价值:它测的是「国家差异能不能被外部变量解释」,这是真正的科学问题,不是算术

§6.3 评价指标

任务 指标 必须报的对照
死亡率预测(任务 A) MAE(对数尺度)、MAPE naive forecast 基线;按年龄段分组报(0–14 / 15–64 / 65+)
生命表重建(任务 B) ex 的绝对误差(年) 报告 80 岁以上单独一档——这一段误差天然大
残差建模(任务 C) R²(对残差,不是对原值)、MAE 「按年龄+性别的通用曲线」基线

三条纪律:

  1. 不用 R² 报生命表任务。生命表 R² 随便就 0.99+,没有信息量(§5.3)。
  2. ex 误差必须用「年」为单位报,不能用相对误差。0.1 年的误差在人口学里是实质性的(接近一个月的寿命)。
  3. 高龄单独报。80+ 段的误差通常是全段平均的 3–5 倍,混在一起报会掩盖问题。

§6.4 MLOps:怎么钉版本

HMD 没有版本号,所以要自己造:

数据快照命名建议:
  hmd_snapshot_2026-10-23.zip      ← 你的下载日期
  + 同时存一份 Data-WhatsNew-2026-10-23.html
  + 同时存一份 Data-Availability-2026-10-23.csv

三样东西缺一不可:

  • 数据本体(zip)
  • WhatsNew 快照(证明你下载时已有哪些补丁)
  • Data Availability 快照(证明你下载时各国年段是什么)

为什么 Data Availability 也必须有:因为各国的截止年份会变(2026 年 4 月丹麦从 2024 变成 2025)。如果你只存了数据,一年后你无法解释「为什么我的丹麦数据到 2024 而官网现在到 2025」。

模型复现的最小记录集:数据快照日期 + 方法协议版本(V6)+ 你用的统计量清单 + 你的平滑参数(如果你自己做了平滑)。

§6.5 八个真实坑点

坑点 1:mx 大于 1.0

高龄段死亡数与暴露人口独立估计,分子偶尔超过分母,观测 M(x) > 1。直接代入 qx = mx/(1+0.5·mx) 会得到接近 1 的荒谬值。 官方 FAQ 明言「we smooth M(x) values at ages 80 and over before calculating the life table」。用生命表文件里的 m 列(已平滑)而不是暴露/死亡自己算的 mx。

坑点 2:b 不是 (m+f)/2

见 §2.7。想合并两性数据,直接用 b;想自己算,必须按人口加权。

坑点 3:世代数据的年轻段是 .,不是 0

瑞典序列起于 1751,1675 世代只能从 76 岁起有死亡率(因为 1675+76=1751)。年轻段全是 .。 把 . 读成 0 会让「婴儿死亡率」出现荒谬的 0 值。. 必须显式转 NaN,且要区分「结构缺失」与「真实 0」。

坑点 4:* 不是缺失,是「有但不给」

见 §4.3。* 的分布不随机(哪些国家要求屏蔽是有理由的),当成普通 NA 丢掉会引入选择偏倚。

坑点 5:同一国家的三条序列不能相加

德国 DEUTNP(总)+ DEUTE(东)+ DEUTW(西):DEUTNP ≈ DEUTE + DEUTW,但如果把三条都当独立观测放进面板,德国会被计三次。同理法国 FRATNP/FRACNP、新西兰三条、英国五条。

判据:Country Code 含 _ 或长度 >3 的,几乎都是子人群,不是独立国家。

坑点 6:yyyy- / yyyy+ 会被读成脏数据

1914- 在多数解析器里会变成字符串 "1914-",然后 pd.to_numeric 报错或变 NaN。必须显式识别这个模式:Year.str.endswith('-') 或 endswith('+')。而且这两行不能同时进入按年聚合——它们是同一年的两个边界。

坑点 7:文件没有表头,列序因统计量而异

pandas.read_csv(header=None) 之后必须手动给列名,而不同统计量的列序不同。生命表是 Country, Sex, Year, Age, m, q, l, d, L, T, e,死亡数文件是 Country, Sex, Year, Age, Deaths,暴露文件是 Country, Sex, Year, Age, Exposure。列序写错不会报错,只会静默地算出错误结果——这是本条目里最危险的坑,因为没有任何报错信号。

坑点 8:STMF 的「最后一周」不是同一个时点

Data/STMF 表里,最后一列「Last Week」从 22.2026(澳大利亚)到 52.2021(俄罗斯)跨度 5 年。用 STMF 做「当前超额死亡」时,各国的时间窗完全不对齐。 而且俄罗斯 2021 年底停更、韩国 2023 年停更、中国台湾 2025 年底停更——这三个国家的「最新数据」其实是三四年前的。


§7 质量评估、口径交叉核对

§7.1 记录级质量

HMD 的质量保证机制有三层,但只有第一层是公开可查的:

层 机制 可查性
输入校验 与各国官方发布的生命表交叉比对 不可查(官方提及但未公开结果)
过程记录 每国 Background and Documentation 记录所有调整 可查(在各国 zip 内)
结果可复现 方法协议完整公开,含公式与页码 可查(V6 摘要版 + 完整版)

「调整」这件事值得单说:HMD 不是「拿原始数据直接套公式」,而是逐国做调整。Explanatory Notes 与各国文档记录了这些调整——领土变更、死亡登记口径变化(de facto → de jure)、未知年龄分摊比例、战时军事死亡是否计入、普查年份缺失时的处理。这些调整的质量决定了 HMD 的质量,而它们分散在 41 份国别文档里,没有汇总表。

这意味着一个实操后果:如果你要比较 A 国与 B 国,你应该至少读一遍这两国的 Background and Documentation,而不是假定「都在 HMD 里所以可比」。

§7.2 抽样声明:本条目数字的边界

本条目所有数字的边界:

数字 来源 边界
41 个国家/地区 首页 Data by country or area 区块计数 仅反映 2026-10-23 抓取时刻
53 个人群序列 Data Availability 表逐行计数 同上
瑞典 1751 起 Data Availability 表 周期表 1751–2024;世代表 1751–1933
38 国 STMF Data/STMF 表计数 + FAQ 中的 38 国名单 两处一致,可互证
18 国 HCD Data/HCD 表计数 含摩尔多瓦、罗马尼亚——这两国不在主库 41 国里
185.30 MB / 202.2 MB Data/ZippedDataFiles / Data/HCD 官方标注 未实测,是官方页面写的体积
各统计量体积 同上 同上

一个重要发现:HCD 的 18 国里有摩尔多瓦与罗马尼亚,但这两国不在主库的 41 国名单里。 说明 HCD 与主库的国家集合不嵌套——HCD 有主库没有的(摩尔多瓦、罗马尼亚),主库也有 HCD 没有的(澳大利亚、比利时、智利、中国香港、冰岛、爱尔兰、以色列、韩国、卢森堡、荷兰、新西兰、葡萄牙、中国台湾等)。做「主库 + 死因」联合分析时,可用的国家交集远小于 18。

§7.3 三个必须知道的效度问题

效度问题一:by design 的选择偏倚不是随机缺失

官方明言只收「登记近乎完整」的国家。这不是「数据不全」,而是「系统性排除了另一类国家」。 后果:任何用 HMD 得出的「全球」结论都是错的,任何「死亡率与经济发展关系」的结论都会因为「富国样本」而被截断。

正确表述:「在 41 个登记完整的国家中……」而不是「在全球范围内……」。

效度问题二:单岁数据的「拆细」程度因国而异

见 §2.2。Explanatory Notes 承认单岁数据「sometimes estimates derived from aggregate data」。不同国家拆细的比例不同,而这个比例没有公开统计。 后果:跨国高龄单岁比较时,差异里有一部分是「拆细算法差异」,不是真实差异。

效度问题三:修订窗口不统一

WhatsNew 显示各国截止年份从 2013(乌克兰)到 2025(丹麦)跨度 12 年。做「最新年跨国比较」时,你实际比的是 2013 年的乌克兰与 2025 年的丹麦。 这不是数据错误,是各国内部流程差异,但它会让「最新年比较」变成无意义的操作。

正确做法:先求年份交集,再比较。 41 国的年份交集大概是 1959–2013(受乌克兰 2013、俄罗斯 2014、以色列 2016 限制)。如果只比西欧,交集能到 2022 左右。

§7.4 偏倚清单(可核查)

偏倚 方向 怎么核查
富国偏倚 高估全球平均寿命 看 Project/Overview 的 by design 声明;对比 41 国与 WHO GHO 194 国的 e0 分布
欧洲中心偏倚 西欧/北欧/东欧占 30+ 国 数 Data Availability 表的国别分布
历史深度偏倚 瑞典/丹麦/法国/荷兰/冰岛/意大利/西班牙/瑞士序列最长,其他国家短 看 Data Availability 表第一列
拆细偏倚 高龄单岁数据质量因国而异 无法核查(官方未公布拆细比例)
修订偏倚 「最新年」不可比 看 Data Availability 表最后年列
死因清单偏倚 HCD 重构序列的起点差异极大(挪威 1996 vs 爱沙尼亚 1955) 看 Data/HCD 表的 Reconstructed series 列
战争期偏倚 平民序列在战争国家失真 看是否有 CNP/平民序列;官方明言「questionable quality」

§7.5 数据完整性核查表

拿到数据后必做的七项检查:

# 检查 期望 不符说明什么
1 Age 范围 0–110(110 为开放区间) 出现 >110 说明解析错位
2 lx(Age=0) 接近生命表基数(通常 100,000) 偏离说明读到的是简化表
3 lx 单调递减 严格递减 出现回升说明列序错(可能读成了 dx)
4 ex(0) 与 e0 文件比对 差 ≤ 0.01 年 差异大说明版本不一致
5 qx 范围 0 ≤ qx ≤ 1 出现 >1 说明读到了未平滑的 mx
6 Tx 递减至 ex(110) × l(110) 一致 不一致说明 Tx 列错位
7 b vs m/f b 在两者之间(多数年龄) 落在之外说明列序错或读到不同国家

第 3 项和第 5 项是最有效的「列序自检」:lx 必须单调递减、qx 必须在 [0,1]。如果列序写错(坑点 7),这两项会立刻暴露。

§7.6 DAIMS 24 项逐项评分

# 维度 分 说明
1 数据集标识 1.0 名称、机构、URL 清晰
2 版本标识 0.5 无版本号;仅靠 WhatsNew 补丁记录与下载日期
3 许可明确性 1.0 CC BY 4.0 + Input Data 限制,写得极清楚
4 出处可溯 1.0 三国机构 + 逐国数据源 + 方法协议
5 采集方法描述 1.0 六步法完整公开,含公式页码
6 处理链可复现 0.5 方法公开,但逐国调整细节分散在 41 份文档
7 数据模型 1.0 网格模型(国家×性别×年龄×时间)极清晰
8 字段字典 0.5 无集中字典;列名在各自说明文件里,且无表头
9 单位与量纲 1.0 人、人年、年,标注清楚
10 缺失值语义 1.0 ./*/空 三类区分清楚
11 数据量级 1.0 体积标注精确到 kB
12 覆盖范围声明 1.0 国别年段表逐行列出
13 抽样方法 1.0 不是抽样,是全域登记;by design 声明诚实
14 偏倚讨论 0.5 未系统性讨论;只有 by design 一句
15 质量控制 0.5 机制存在但结果不公开
16 已知问题清单 1.0 FAQ 40+ 条问答,含「What we do NOT have」
17 更新政策 1.0 「continuous basis」+ WhatsNew 逐条记录
18 访问方式 0.5 无 API;仅 zip 下载
19 访问门槛 1.0 注册免费,无国别限制
20 格式规范 0.5 制表符 ASCII 稳定,但无表头
21 可机读性 0.5 无 JSON/XML/Parquet,只有 .txt
22 文档完整性 1.0 方法协议 + FAQ + 逐国文档 + 引用指南
23 引用规范 1.0 三种引用格式明确给出
24 社区与支持 0.5 有邮箱,无 issue tracker、无论坛

总分:18.0 / 24 = 75.0%

扣分集中在三处:无版本号(2)、无字段字典(8)、无 API + 无表头(18/20/21)。这三项是 2000 年代设计的数据库的通病——内容质量极高,工程可用性偏低。如果你的流水线要长期自动跑,这部分工作量必须自己补。

§7.7 口径交叉核对矩阵(不是模型性能验证)

核对项 页面 A 说 页面 B 说 差异解释
STMF 国家数 Data/STMF 表 38 行 FAQ 名单 38 国 一致 ✓
HCD 国家数 Data/HCD 表 18 行 无第二处 单一来源
HCD 与主库国家集合 HCD 含摩尔多瓦、罗马尼亚 主库 41 国不含这两国 不嵌套,交集 <18
全库国家数 首页 41 FAQ「16 countries」(指 HCD) 不同对象,不矛盾
最新年份 丹麦 2025 WhatsNew 2026-04-29 更新至 2025 一致 ✓
最老起始 瑞典 1751 Data Availability 与 WhatsNew 均未否认 单一来源
方法协议版本 V6(文件名 MethodsProtocolV6.pdf) 摘要版标注「Last Revised: November 27, 2017」 版本 6、2017 修订
年龄上限 110+ 开放区间 Explanatory Notes 明确「0 to 109, with an open age interval for ages 110+」 一致 ✓

一个值得注意的口径不一致:Project/FAQ 里「Do you have data on cause of death?」的答案说「We provide time series of cause-specific mortality for 16 countries」,而 Data/HCD 表列了 18 行。差异来自摩尔多瓦与罗马尼亚——FAQ 那段文字是较早期写的(沿用了 Human Cause-of-Death Database 的老口径),而 Data/HCD 表是实时的。以表为准,18 国。


§8 生态位与相邻资源

§8.1 HMD 在网络里的位置

HMD 不是孤立的库,它是一个家族的中心节点:

关系 资源 说明
同门附属 STMF(周死亡,38 国) 2020 年为 COVID 而建;2026-01-19 起限注册
同门附属 HCD(死因,18 国) 统一死因清单重分类
上游兄弟 HLD(Human Life Table Database) 「别人做的生命表」合集,含 HMD 收不了的国家
上游兄弟 HFD(Human Fertility Database) 生育率,HMD 明确说「我们不管生育」
次国家卫星 USMDB(美国,1959 起,9 分区/4 大区/50 州+DC) 官方说「very similar in content and format to the HMD」
次国家卫星 AHMD(澳大利亚,1971–2016,6 州 2 领地) ANU 人口学院
次国家卫星 CHMD/BDLC(加拿大,1982–2019,全部省与领地) 蒙特利尔大学
次国家卫星 FHMD(法国历史生命表) 「satellite of the HMD」
明确划清界限 加拿大、日本的区域项目 官方原话:「not parts of the HMD and that we are not taking any responsibility for the quality and accuracy」

这张表最该记住的一条:只有 STMF 与 HCD 是「HMD 的一部分」,其余卫星库都不是。 官方对加拿大、日本的区域项目专门写了免责声明。引用时不能把 USMDB 的数据说成「HMD 数据」。

本站条目 rid 与 HMD 的关系
WHO GHO 175 HMD 是「高精度富国切片」,GHO 是「全球粗粒度全景」。两者可交叉验证,但不可混用
CDC WONDER 155 单国深度;HMD 的美国序列(1933 起)比 WONDER(1968 起)早 35 年
GBD 97 GBD 是建模估计(含不确定性区间),HMD 是实测值。GBD 的富国数字大量以 HMD 为输入
DHS 103 覆盖中低收入国家的调查数据,与 HMD 国家集合几乎不相交
CHARLS 145 中国队列,HMD 无中国
HRS 135 美国队列,与 HMD 的美国死亡率序列可做「队列 vs 时期」对照
SHARE 1355 欧洲 28 国老龄调查,与 HMD 的欧洲序列可做「自报健康 vs 实测死亡」对照
Eurostat Health 102 欧洲行政统计,含部分死因序列,与 HCD 有重叠但口径不同
OECD Health 121 含医疗支出与健康产出,可作 HMD 死亡率的外部解释变量
UCDP 122 暴力死亡事件级数据,与 HMD 的战争期死亡率可交叉验证

最有价值的一组对照:HMD(实测死亡率)× SHARE(自报健康与生物标志物)× OECD Health(医疗支出)。三者覆盖同一批欧洲国家、同一时间段,但测的是完全不同的东西——一个是「死了多少人」,一个是「活着的人健康状况如何」,一个是「花了多少钱」。把这三维拼起来,才可能回答「医疗支出买了多少寿命」这类问题。

§8.3 为什么一个「医学数据集站」要收它

三个理由:

第一,它是最基础的那一层。 本站收的队列、影像、EHR 数据,最终都要回答「这个干预有没有降低死亡率」。没有可靠的死亡率基線,所有疗效结论都是悬空的。 HMD 提供的正是这条基线,而且是唯一一条跨国、跨世纪、单岁的基线。

第二,它的方法学本身就是医学 AI 的教材。 六步法里的每一个决策——为什么未知年龄要按比例分摊、为什么 80 岁以上要平滑、为什么多区间要「先合并再相除」——都是「数据加工中不可避免的判断」的实例。做医学数据清洗的人读一遍 Methods Protocol,比读十篇数据清洗最佳实践有用。

第三,它示范了「许可分层」的正确做法。 自产估计 CC BY 4.0、输入数据归原主——这一刀切得干净,且写进了 User Agreement 而不是藏在 FAQ 角落。这是本站收录的 1300+ 条目里,许可边界表述最清楚的几个之一。


§9 许可、伦理与合规

§9.1 许可结构:两层,不是一层

第一层:HMD 自产数据 → CC BY 4.0

Data/UserAgreement 原文:

The HMD data are licensed under a Creative Commons Attribution 4.0 International License.
The HMD provides original estimates of exposure-to-risk, death rates, and life tables as well as the input data that have been used to produce these estimates. In addition, the HMD provides access to cause-specific data series. The data constructed by the HMD team are published under the CC BY 4.0 license.

覆盖范围:暴露人口、死亡率、生命表、以及 HCD 与 STMF 的 HMD 自产部分。

第二层:Input Data → 各提供方许可

This is not the case for the input data (for all HMD data series) which remain under each provider’s distribution license.

并且:

Note that all original data published under “Input Data” on the country pages, whether for the all-cause or for the cause-specific series, should not be used for commercial gain or re-published in any form without the explicit permission of the data owners (usually national statistical offices).

三层实操结论:

用途 允许? 依据
用生命表训练商业模型 可以(CC BY 4.0,需署名) 第一层
用暴露人口/死亡率训练商业模型 可以(同上) 第一层
用 Input Data(原始出生/死亡/普查数)商用 不可以 第二层明示禁止
再发布 Input Data 不可以(需数据所有者明示许可) 第二层
再发布 HMD 自产数据 可以(CC BY 4.0) 第一层

这条分界线对 AI 训练集设计的含义:你只能用「15 个统计量包」,不能用「By country 包里 Input Data 那一部分」。 好消息是前者已经覆盖了绝大多数分析需求(死亡率、暴露、生命表、e0 全在里面)。

§9.2 「不要转发副本」的请求

User Agreement 里有一段罕见的「请求」而非「条款」:

Since the HMD data are updated on a regular basis (including corrections as needed), the preferable option is not to pass a copy of these data to other users. Instead, refer them to the HMD website, where they may download the data for themselves. This practice helps to prevent multiple versions of the data from circulating.

这不是法律限制(CC BY 4.0 允许再分发),是质量请求。理由也说得直白:数据会被修订,转发副本会造成多版本流通。

实操建议:如果你要分发基于 HMD 的数据集,在 README 里写清下载日期,并且不要把原始 zip 打包进你的发布包。指向官网,附上你的快照日期。

§9.3 访问资格:无国别限制

HMD 的访问门槛只有一条:注册,提供姓名、邮箱、单位、职称。官方 FAQ「Who can use these data?」原文:

Anyone may use the HMD data (after registering)…

没有国别限制、没有机构限制、没有 DUA、没有人审。 注册后立刻能下 zip。

唯一的限制是 STMF:2026-01-19 起「Access to the Short-Term Mortality Fluctuations data series is now restricted to registered HMD users to protect sensitive data」——注意这是「从公开改为需注册」,而主库本来就需要注册,所以实际影响不大。

注册的用途:官方明言是为了「obtain basic contact information… because we may occasionally need to contact you with important messages about the database (e.g., updates, other critical information)」。并且承诺不外传邮箱。

§9.4 引用要求:区分「自产」与「转发」

HMD 的引用规则比多数数据库严格,因为它同时是「数据生产者」和「数据转发者」。Research/CitationGuidelines 原文的核心区分:

First, there are several kinds of raw data for each population, which serve as inputs for all subsequent calculations. Second, there are data of various sorts that are original to the HMD, having been generated according to techniques that are fully described in our Methods Protocol. In the former case, it is important to acknowledge the institutions or individuals responsible for creating and/or publishing the raw data: in these circumstances, the HMD is merely transmitting the data from its source to the user. Thus, it is only in the second case that it is appropriate to give credit to the HMD as the source (i.e., author) of the information provided here.

标准引用格式(官方给出,三种序列各一份):

HMD. Human Mortality Database. Max Planck Institute for Demographic Research (Germany),
University of California, Berkeley (USA), and French Institute for Demographic Studies
(France). Available at www.mortality.org.

Human Cause of Deaths data series (HCD). Human Mortality Database. Max Planck Institute
for Demographic Research (Germany), University of California, Berkeley (USA), and French
Institute for Demographic Studies (France). Available at www.mortality.org.

Short-Term Mortality Fluctuations data series (STMF). Human Mortality Database. Max Planck
Institute for Demographic Research (Germany), University of California, Berkeley (USA),
and French Institute for Demographic Studies (France). Available at www.mortality.org.

三个必须做的动作:

  1. 注明下载日期(官方要求「note the date for future reference」)。
  2. 区分你在引用哪一层(HMD 自产 vs 转发的原始数据)。
  3. 用了 HCD/STMF 就单独引那个序列,不要笼统引主库。

§9.5 数据保护与隐私

HMD 全是国家级聚合统计,不含任何个体记录。最小统计单元是「年龄 × 年份 × 性别」的暴露人年,理论上不可反推到个人。

唯一的隐私机制是 * 屏蔽:部分国家的 Input Data 因隐私原因被替换为星号。官方原文:「For some countries, access to the input data is protected for privacy issues. In these situations, the original data are replaced by the star symbol. Input data are typically of a higher level of details than the HMD series and we are complying with these countries request to do not make them publicly available.」

注意这句话的逻辑:「Input data are typically of a higher level of details than the HMD series」——原始数据的粒度比 HMD 发布的更细。所以 * 屏蔽的不是「某几个格子」,而是「这一整类更细的原始数据」。这也意味着:HMD 发布的版本已经是降过粒度的,降粒度本身是一层隐私保护。

伦理层面没有争议:死亡是公开登记事件,国家级聚合后的死亡率不构成个人信息。这也解释了为什么 HMD 敢用 CC BY 4.0 而不是限制性许可——它处理的不是敏感个体数据。


§10 一页速查与三条硬结论

10.1 一页速查卡

你要做的事 直接这么做
拿跨国预期寿命 下 Life Expectancy at Birth(周期,67.4 kB)
拿跨国生命表 下 3 个 Life Tables(周期,65 MB)
做高龄死亡率研究 用生命表文件里的 m 列(已平滑),不要自己算 mx
做世代研究 先确认该国有世代表(只有约 10 国有);再下 Birth Counts(72.7 kB)
做 COVID 超额死亡 走 STMF(38 国周数据,需注册)
做死因分析 走 HCD(18 国),用「重构序列」而非「原始分类序列」
要次国家数据 HMD 没有;转向 USMDB / AHMD / CHMD(都不是 HMD)
要中国/印度/非洲 HMD 没有;转向 WHO GHO / UN WPP / DHS / GBD
商用训练 只能用 15 个统计量包;Input Data 不可商用
引用 用官方三段式格式 + 下载日期 + 区分自产/转发

10.2 三条硬结论

结论一:HMD 的稀缺性不在「覆盖多」,在「可比」。

41 个国家在全球 200 多个国家里不算多。但**「同一套方法、同一套变量名、同一套年龄轴、跨 274 年不断裂」这四件事同时做到,全世界只有这一个库。** 用它做跨国比较,你可以把「口径差异」这个最大的干扰项直接划掉——这在其他任何跨国数据源上都做不到。

结论二:它的边界「by design」写在明面上,这是优点不是缺点。

官方不掩饰「只收登记完整的国家」「结果偏富、偏工业化」。这比那些「声称全球覆盖、实则用模型填补八成空缺」的数据源诚实得多。 做研究时,一个明确的边界比一个模糊的全覆盖有用。

结论三:方法学协议是这份数据之外的第二份资产。

六步法、三种人口估计方法的适用边界、80 岁平滑的理由、almost extinct 的 1% 判据、「先合并再相除」的聚合规则——这些不是 HMD 独有的技巧,是所有面板数据处理都会遇到的判断。 一份 70 页、带公式编号、把「为什么」写清楚的技术文档,在医学数据领域极其罕见。建议把它当方法学读物读一遍,而不只是查参数。


附录 A:41 个国家/地区名单(原样)

首页 Data by country or area 区块逐项计数,41 项,按页面顺序:

Australia, Austria, Belarus, Belgium, Bulgaria, Canada, Chile, Croatia,
Czechia, Denmark, Estonia, Finland, France, Germany, Greece, Hong Kong,
Hungary, Iceland, Ireland, Israel, Italy, Japan, Latvia, Lithuania,
Luxembourg, Netherlands, New Zealand, Norway, Poland, Portugal,
Republic of Korea, Russia, Slovakia, Slovenia, Spain, Sweden,
Switzerland, Taiwan, U.K., U.S.A., Ukraine

注:其中 Germany、France、New Zealand、U.K. 各拆为多个人群序列,故 41 个国家对应 53 个人群序列(见 §1.0 第 2 条)。


附录 B:Data Availability 表关键列(周期生命表年段,节选)

国家/人群 代码 周期生命表 缺口 世代生命表
Sweden SWE 1751 – 2024 — 1751 – 1933
Denmark DNK 1835 – 2025 — 1835 – 1934
France (Total) FRATNP 1816 – 2024 — 1816 – 1933
France (Civilian) FRACNP 1816 – 2024 — 1816 – 1933
Netherlands NLD 1850 – 2023 — 1850 – 1932
Iceland ISL 1838 – 2024 — 1838 – 1933
Norway NOR 1846 – 2024 — 1846 – 1933
Switzerland CHE 1876 – 2024 — 1876 – 1933
Spain ESP 1908 – 2023 — 1908 – 1932
Italy ITA 1872 – 2023 — 1872 – 1932
Finland FIN 1878 – 2024 — 1878 – 1933
Belgium BEL 1841 – 2024 1914 – 1918 —
U.S.A. USA 1933 – 2024 — —
Japan JPN 1947 – 2024 — —
Republic of Korea KOR 2003 – 2024 — —
Russia RUS 1959 – 2014 — —
Ukraine UKR 1959 – 2013 — —
Israel ISR 1983 – 2016 — —
Belarus BLR 1959 – 2018 — —
Slovenia SVN 1983 – 2019 — —
Greece GRC 1981 – 2019 — —
Germany (Total) DEUTNP 1990 – 2020 — —
Hungary HUN 1950 – 2020 — —
Australia AUS 1921 – 2021 — —
Bulgaria BGR 1947 – 2021 — —
Czechia CZE 1950 – 2021 — —
New Zealand (Total) NZL_NP 1948 – 2021 — —
U.K. (Total) GBR_NP 1922 – 2022 — —
Ireland IRL 1950 – 2022 — —

这张表最该注意的两件事:

  1. 世代生命表只有 11 个人群有(瑞典、丹麦、法国两条、荷兰、冰岛、挪威、瑞士、西班牙、意大利、芬兰,共 11 行有值)。其余 40 多个人群世代列为 -。
  2. 比利时是唯一有数据缺口的:1914 – 1918,即一战期间。这是全表唯一标注了「Gaps in period data」的国家。

附录 C:核对清单(拿到数据后按顺序跑)

□ 1. 确认下载日期,记录到 README
□ 2. 保存 Data-WhatsNew 与 Data-Availability 的当日快照
□ 3. 读 country_codes.csv,不要自己按 ISO 猜
□ 4. 检查 Age 范围 = 0..110
□ 5. 检查 lx(Age=0) ≈ 100000
□ 6. 检查 lx 严格单调递减          ← 列序自检 #1
□ 7. 检查 0 ≤ qx ≤ 1               ← 列序自检 #2
□ 8. 检查 ex(0) 与 e0 文件差 ≤ 0.01
□ 9. 检查 Country Code 含 _ 或长度>3 的子人群,确认不与国家级重复计数
□ 10. 检查 Year 列是否含 '-' 或 '+' 后缀(领土变更)
□ 11. 检查 '.' 与 '*' 是否被正确区分,而非一起 dropna
□ 12. 确认用的是生命表已平滑的 m 列,不是自己算的 mx
□ 13. 若要比较「最新年」,先求年份交集
□ 14. 若要商用,只用 15 个统计量包,不用 Input Data


相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

  • who-sti-prevalence-atlas — 共享标签:公共卫生与流行病学 / 公共卫生统计 / 流行病学 / 全球健康
  • global-burden-of-disease — 共享标签:公共卫生与流行病学 / 流行病学 / 全球健康
  • cdc-wonder — 共享标签:死亡登记 / 公共卫生统计 / 流行病学
  • who-gho — 共享标签:公共卫生与流行病学 / 公共卫生统计 / 全球健康
  • our-world-in-data — 共享标签:公共卫生与流行病学 / 全球健康
  • fair-health-atlas — 共享标签:公共卫生与流行病学 / 公共卫生统计 / 流行病学
  • wuenic-immunization — 共享标签:公共卫生与流行病学 / 公共卫生统计 / 全球健康
  • nhanes — 共享标签:公共卫生与流行病学 / 流行病学
  • healthdata-gov — 共享标签:公共卫生与流行病学 / 流行病学
  • brfss — 共享标签:公共卫生与流行病学 / 公共卫生统计

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集