简而言之
死亡率与预期寿命的倒数之间的差异通常发生在人口的年龄分布与生存曲线不同时,这与预期寿命所依据的假设人口有关(更具体地说,人口是比生存曲线所暗示的要年轻)。可能有几个原因导致实际人口与这个假设人口之间存在差异
- 各年龄组死亡率突然/快速下降且人口尚未稳定(不等于基于新的各年龄组死亡率的生存曲线)
- 人口在增长。如果每年出生的婴儿都比前一年多,那么根据生存曲线所显示的,人口将比假设的人口年轻。
- 迁移。移民往往发生在相对较年轻的人身上。因此,净移民为正的国家相对年轻,而净移民为负的国家相对年长。
预期寿命
预期寿命是基于假设的人/人口的虚拟数字,其未来的死亡率与当前的死亡率相同。
使用荷兰统计局数据(2014 年)的一些示例
https://opendata.cbs.nl/statline/#/CBS/nl/dataset/7052_95/table?dl=98D9
- 的(当前)死亡率i
fi
- 的存活率(对于将经历年龄 i 死亡率的人口,就像当前年龄的人一样)
iii
si=∏j=0j=i−1(1−fj)
- 图 3 显示年龄i
pi=sifi
请注意,是一种假设情况。pi
死亡率
在上面的示例中,假设人口将遵循中间图。然而,实际人口不是这个假设的人口。
特别是,我们的老年人比根据生存率预期的要少得多。这些存活率是基于当前的死亡率。但是当老年人长大后,这些死亡率要高得多。因此,人口中的老年人比目前的存活率曲线显示的要少。
人口看起来更像这样(抱歉它是荷兰语并且没有很好的记录,我从一些旧涂鸦中得到这些图像,我会看看我是否可以再次制作图表):
所以2040年左右的人口分布会更接近成活率的曲线。目前,人口分布更加尖锐,这是因为目前的老年人没有经历过假设预期寿命所依据的i
死亡率如何变化
此外,出生率略低(每位女性不到 2 个),因此年轻人口正在减少。这意味着死亡率不仅会上升到 1/life_expectancy,甚至会超过它。
这是一个有趣的悖论。(正如尼尔 G 所说,这是辛普森悖论)
- 一方面,每个不同年龄组的死亡率都在下降。
- 另一方面,总人口的死亡率正在上升。
注意gapminder上的这个图形交互版本
我们看到,在过去的几十年里,死亡率迅速下降(由于死亡率下降),现在又开始上升(由于人口稳定和出生率下降)。大多数国家都遵循这种模式(一些开始较早,一些开始较晚)。
模拟
在这个问题中,答案包含一段 R 代码,该代码模拟了所有年龄段死亡风险比变化的生存率曲线。
下面我们使用相同的函数life_expect
模拟人口中的死亡率,当我们让这个风险比在 50 年内从 1.5 变为 1.0 时(因此预期寿命会增加,反之,基于预期寿命的死亡率,会减少)。
我们看到的是,人口死亡率的下降幅度大于我们基于预期寿命的预期,并且只有在我们停止风险比率变化的一段时间后才会稳定在这个预期数字上。
请注意,在这个人口中,我们保持出生人数不变。预期寿命的倒数与死亡率之间的差异如何出现的另一种方式是出生人数增加(人口增长),这导致与基于生存曲线的假设人口相比,人口相对年轻。
### initial population
ts <- life_expect(base, 0, rr = 1.5, rrstart = 0)
pop <- ts$survival
Mpop <- pop
### death rates
dr <- sum(ts$death_rate*pop)/sum(pop)
de <- 1/(ts$Elife+1)
for (i in -100:200) {
### rr changing from 1.5 to 1 for i between 0 and 50
t <- life_expect(base, 0, rr = 1.5-max(0,0.5*min(i/50,1)), rrstart = 0)
### death rate in population
dr <- c(dr,sum(t$death_rate*pop)/sum(pop))
### death rate based on life expectancy
de <- c(de,1/(t$Elife+1))
### update population
pop <- c(1,((1-t$death_rate)*pop)[-101])
Mpop <- cbind(Mpop,pop)
}
### plotting
plot(de * 100, type = "l", lty = 2, lwd = 2, ylim = c(1.10,1.4),
xlab = "time", xaxt = "n", ylab = "rate %")
lines(dr * 100, col = 2)
legend(0,1.10, c("death rate in population", "death rate based on life expectancy"),
lty = c(1,2), lwd = c(1,2), col = c(2,1),
cex = 0.7, xjust = 0, yjust = 0)