拟合和推断美国人口普查数据

由克里夫·莫勒尔,MathWorks公司

“美国人口增长在最慢的速度自1937年以来”这纽约时报《标题》促使我重新审视一个老生常谈的话题:拟合和推断人口普查数据。在这个过程中,我添加了两个非线性拟合,即logistic曲线和双指数Gompertz模型。

这个实验比MATLAB要古老®。一开始只是个练习对于数学计算的计算机方法通过福赛斯,马尔科姆和Moler,发表40年前。我们使用的Fortran当时的情况。数据集已每十年更新,因为这本书出版。今天,MATLAB图形更容易地改变参数和看到的结果,但基本的数学原理仍然不变:

利用多项式来推断数据来预测未来是一件很危险的事情。

纽约扬基队著名的捕手、崭露头角的计算科学家约吉·贝拉曾经说过:“预测是很困难的,特别是关于未来的预测。”We’re going to use polynomials, splines, exponentials, and the census app in Cleve’s Laboratory to do just that.

数据

我们实验的数据来自美国1900年至2010年十年一次的人口普查(以百万计):

1900 75.995 1910 91.972 1920 105.711 1930 123.203 1940年131.669 1950年150.697 1960年179.323 1970年203.212 1980年226.505 1990年249.633 2000 281.422 2010 308.746

我们的任务是推断2010年后的人口规模。使用censusapp,让我们看看如何的短短七年时间里外推,2010至2017年,人口普查局的模型相匹配。在您阅读任何进一步的,暂停,使自己的猜测。

人口普查应用

这里的的开屏censusapp。加号和减号按钮更改外推一年的称号。如果你超越2030年,积缩小。

十二十年的普查数据。让我们来外推七个年。

该应用程序的下拉菜单中提供七种型号:

人口普查数据
多项式
pchip
仿样
指数
后勤
姜氏

四十年前,我们只有多项式。

目标值

美国人口普查局的网站提供了一个动态的人口时钟,可以连续运行。这是美国东部时间2017年4月1日人口普查日中午的快照。这是获取当年人口普查值的指定时间。

人口时钟在2017年4月1日。

因此,将人口普查数据外推到2017年的目标值为3.2479亿。

使用多项式

多项式喜欢摆动。由于必须在特定的时间间隔内匹配数据,它们在这个时间间隔之外会变得疯狂。在这个实验中,有12个数据点。的censusapp让你变化在0和11之间多项式的多项式度,有度小于11近似于最小二乘意义上的数据。次多项式11个插入数据完全相同。随着程度的增加,数据的近似变得更精确,但2010(或1900)之前超越行为变得更加猛烈。下面是度2和7,9,11,叠加在一个情节。

度大于二的多项式不适合推断。

二次拟合是最好的表现良好。当在2017年的评估,它遗漏了7.5万的目标,但它不能预测人口普查局观测增长的下降率。(当然,没有理由相信,美国人口增长在像二次多项式时间。)

11次的插值多项式甚至在2010年之前就试图逃脱,并在2014年末变为负的。

推断与样条函数

MATLAB有两个分段三次插值多项式:仿样pchip。经典的仿样是光滑的,因为它有两个连续的导数。它的竞争对手,pchip,牺牲连续的第二导数以保持形状和避免过冲。无论这些多项式的是为推,但我们无论如何都会使用它们。

他们超越了时间间隔行为是由他们的最终条件所决定的。经典的仿样采用了所谓的不,一个结健康)状况。它实际上是在最后两个子区间一个三次。这三次也被用于超过终点推断。pchip用途刚刚过去的三个数据点来创建不同的保形三次在最后一个子周期及以后使用。

让我们放大仿样pchip

pchip发生以产生合理外推;仿样才不是。

与人口普查局一样,这两家机构都预计2010年以后的增长率将会下降。但仿样正在描绘一幅暗淡的画面。2017年的数字为3.146亿,比人口钟值低了1000万,接近最高值。另一方面,pchip幸运的是,它在2017年的价值为3.251亿英镑,与人口时钟价值相差不到30万英镑。展望未来,pchip2047年达到最大的3.602亿。这是一个值得深思的预测。

三指数函数

正如我所说,没有很好的理由用多项式来模拟人口增长,不管分段与否。但是因为我们可以预期增长率与人口规模成正比,所以我们有充分的理由使用指数。

\ [p (t) \大约\α\:文本\ {e} ^ {bt} \]

许多作者提出了修改该模型的方法,以避免其无限增长。我加了两个censusapp。一个是逻辑模型。

\ [P(T)\约\的α/(1 + B \:\文本{E} ^ { - 克拉})\]

另一种是Gompertz双指数模型,以19岁的Benjamin Gompertz命名th-century,自学成才的英国数学家和天文学家。

\ [P(T)\约\阿尔法\:\文本{E} ^ { - B \:\文本{E} ^ { - 克拉}} \]

在这两种模型中,增长是有限的,因为近似项接近于无穷。

在所有三种指数模型中,参数\(\alpha\)、\(b\)和可能的\(c\)都是非线性的。原则上,我可以用lsqcurvefit在两个或三个维度最小二乘搜索装配到人口普查数据。但是我有一个选择:通过采取一个或两个对数,我获得可分离的最小二乘在模型中,一个参数(\ (\alpha\)最多是非线性显示的。

对于指数的模式,采取一个对数。

\[\text{log}\:p \approx \text{log}\:\alpha + bt\]

由直线拟合数据的对数,然后exponentiate结果。没有搜索是必需的。

对于物流模式,走一个对数。

\[{日志}\ \文本:文本α/ p - 1)(\ \大约\{日志}\:b-ct \]

对于\(\alpha\)的任何值,参数log \(b\)和\(c\)都是线性显示的,不需要搜索就可以找到它们。因此,使用一维最小化器来搜索\(\alpha\)。我可以用fminbnd或它的教材版本,fmintx,从与MATLAB数值方法

对于Gompertz模型,取两个对数。

\ [\ {文本日志} \:\文本{日志} \:\阿尔法/ P \约\文本{日志} \:B-CT \]

再次,执行用于最小化\(\阿尔法\)的一维搜索,求解日志\(B \)和\(C \)在每一个步骤。

我应该指出,取对数会改变拟合准则。我做的是符合对数的最小二乘法,而不是符合实际的数据。

\:

结果

以下是三种结果,从200多年外推到2250年。

指数模型推断超过200年。

纯指数模型由时间只有5十亿,并以前所未有的速度增长。我认为这是不合理的。

的值\(\阿尔法\)在贡佩尔茨配合原来是4309.6,所以人口将4.3十亿为上限。但它只是从现在达到了15十亿200年。同样,不太可能。

逻辑拟合的值为756.4,因此预测的美国人口在未来200年里将增加一倍多一点。尽管人口普查局观察到我们的增长速度已经放缓,但我们还没有达到最终人口极限的一半。

我让你来判断这个预测。

2017年发布 - 93130v00


查看文章的相关能力