Survival

為什麼美國的死亡率與預期壽命不“匹配”

  • October 29, 2020

來自 CDC(https://www.cdc.gov/nchs/fastats/deaths.htm):

Death rate: 863.8 deaths per 100,000 population
Life expectancy: 78.6 years

現在在靜態情況下,我預計死亡率是預期壽命的倒數,即每 10 萬人中有 1,270 人死亡,與實際情況相差約 40%。非常多。這是因為人口年齡分佈不是靜態的嗎?美國的中位年齡約為 38 歲,在過去十年中增加了約 1 歲。這真的足以解釋 40% 的差異嗎?我試著尋找平均年齡,看看這個統計數據是否可以更清楚地說明這個問題,但找不到任何數據。

我想更詳細地了解這一點,因此感謝您提供任何信息。

簡而言之

死亡率與預期壽命的倒數之間的差異通常發生在人口的年齡分佈與生存曲線不同時,這與預期壽命所依據的假設人口有關(更具體地說,人口是比生存曲線所暗示的要年輕)。可能有幾個原因導致實際人口與這個假設人口之間存在差異

  • 各年齡組死亡率突然/快速下降且人口尚未穩定(不等於基於新的各年齡組死亡率的生存曲線)
  • 人口在增長。如果每年出生的嬰兒都比前一年多,那麼根據生存曲線所顯示的,人口將比假設的人口年輕。
  • 遷移。移民往往發生在相對較年輕的人身上。因此,淨移民為正的國家相對年輕,而淨移民為負的國家相對年長。

預期壽命

預期壽命是基於未來死亡率與當前死亡率相同的假設人/人口的虛擬數字。

使用荷蘭統計局數據(2014 年)的一些示例 https://opendata.cbs.nl/statline/#/CBS/nl/dataset/7052_95/table?dl=98D9

死亡率、存活率和可能的死亡年齡

  • 圖 1 顯示(當前)年齡死亡率 $ i $ $$ f_i $$
  • 圖 2 顯示不同年齡的存活率 $ i $ (對於將經歷年齡死亡率的假設人口 $ i $ 因為它適用於目前成年的人 $ i $ ) $$ s_i = \prod_{j=0}^{j=i-1} (1-f_j) $$
  • 圖 3 顯示了年齡死亡的概率 $ i $ $$ p_i = s_i f_i $$

注意 $ p_i $ 是一種假設情況。

死亡率

在上面的示例中,假設人口將遵循中間圖。然而,實際人口不是這個假設的人口。

特別是,我們的老年人比根據生存率預期的要少得多。這些存活率是基於當前的死亡率。**但是當老年人長大後,這些死亡率要高得多。**因此,人口中的老年人比目前的存活率曲線顯示的要少。

人口看起來更像這樣(對不起,它是荷蘭語並且沒有很好的記錄,我從一些舊塗鴉中得到這些圖像,我會看看我是否可以再次製作圖表):

例子

所以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)

引用自:https://stats.stackexchange.com/questions/494157

comments powered by Disqus