人口普查数据中缺少人口值

数据挖掘 r 缺失数据 数据插补
2022-02-14 06:53:19

我有来自 Census.gov 的人口数据:

从 1940 年到 2010 年按年龄划分的美国总人口

根据几十年的范围,数据缺少大于特定年龄的离散人口值。而是提供代表所有年龄大于截止值的总量。

具体来说,它遵循这种模式:

  • 1940 年到 1979 年:从 0 到 84 岁的离散数据并汇总 85 岁及以上的数据
  • 1980 年到 1999 年:从 0 到 99 的离散数据并汇总 100 岁及以上的数据
  • 2000 年至 2010 年:从 0 到 84 岁的离散数据并汇总 85 岁及以上的数据

期望的结果是获得从 0 到 99 的每个年龄和年份的离散数据点,然后是 100 岁及以上年龄的汇总总和数字。

因此,我想输入 1940 年至 1979 年和 2000 年至 2010 年 85 至 100 岁的缺失离散人口值。

我想使用 1980 年到 1989 年间 85 到 100 岁的实际离散人口值来实现这一结果。

一些观察:

  • 缺失值的模式是 MNAR(Missing Not At Random)——这些被系统地省略了,但提供了代表缺失细节的聚合值
  • 这个时间范围内的人口数据是确定性的:人口水平每年线性上升;人体的占空比是有限的,并且约束和限制是众所周知的。

查看数据,我们可以看到三个年份子集中的每一个都有非常相似的模式。60 岁以上的年龄越小,变化越多,变化越平缓

从 1940 年到 2010 年,所有可用的人口年龄为 0-99 岁

然后,如果我们关注 1980 到 1989 年,我们可以用 0.979 的 Multiple-R-Squared 拟合 0 到 100 岁的良好曲线。

每年平均年龄和四阶拟合曲线

然后,如果我们将焦点缩小到 60 到 100 岁,甚至缩小到 85 到 100 岁,则 Multiple-R-Squared 增加到 0.9996。

在此处输入图像描述

在此处输入图像描述

现在,如果我们转移注意力并观察不断增长的人口水平,我们可以观察到这些关系是线性的。人口以逐年稳定的速度增长。

从 1940 年到 2010 年的总人口:

在此处输入图像描述

从 1980 年到 1999 年,年龄为 85 到 100 岁。每个年龄都是线性的。每个年龄的增长率都略低(斜率较小)。

在此处输入图像描述


我的问题

这是我可以使用一些指导前进的地方:

当按年龄和年份估算离散的缺失人口值时,如何将模拟人口随年龄增长而变化的拟合曲线与模拟人口逐年变化的线性回归相结合?

一种或多种记录在案的方法是否自然适用于我所描述的问题?例如:KNN、PCA、BPCA、Mean、MICE、其他?

如果有推荐的方法,您能否指出可用的 R 或 Python 包和描述应用给定方法的机制的文档?

1个回答

我认为您需要警惕使用曲线来推断超出年龄阈值 - 特别是我认为您应该考虑:

  1. 死亡率随着年龄的增长而增加;我想它会随着年龄的增长而增加(尤其是在较高的年龄)。你能有效地捕捉到这一点吗?
  2. 随后几年的人口之间显然存在某种重叠(例如,包含在 1985 年数据中的人也可能包含在 1986 年数据中)。这会对数据插补产生什么影响?

我会建议一种不同的方法。精算师传统上制作“生命表”,以记录人群中的死亡率。如果您能找到一组适用于相关时期的表格,您可以使用这些表格来计算人口数量。