技术文章和通讯

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

克利夫·莫尔(Cleve Moler), MathWorks出版社


“美国人口增长速度降至1937年以来的最低水平。”这纽约时报标题促使我重新审视一个古老的概念:拟合和推断人口普查数据。在此过程中,我添加了两个非线性拟合,即logistic曲线和双指数Gompertz模型。

这个实验比MATLAB要老®. 一开始,它是作为一项运动在英国进行的数学计算的计算机方法这本书是福赛斯、马尔科姆和莫勒在40年前出版的。我们那时用的是Fortran语言。自这本书出版以来,数据集每十年更新一次。今天,MATLAB图形使改变参数和看到结果变得更容易,但潜在的数学原理保持不变:

*通过外推数据,使用甚至适度的多项式来预测未来是一项风险很大的工作。

著名的纽约扬基队接球手和崭露头角的计算科学家Yogi Berra曾说过,“预测很难,特别是对未来的预测。”我们将使用多项式、样条曲线、指数和克利夫实验室的人口普查应用程序来实现这一点。

的数据

我们的实验数据来自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年这7年的推断如何与人口普查局的模型相匹配。在你继续阅读之前,先暂停一下,自己猜测一下。

人口普查应用

这是censusapp.加减按钮改变了标题中的外推年份。如果超过2030年,情节就会缩小。

12年的人口普查数据。让我们再推断七年。

该应用的下拉菜单提供了七种型号:

普查数据
多项式
pchip
样条
指数
物流
龚珀兹

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

目标价值

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

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

因此,将人口普查数据外推至2017年的目标值为32479万。

使用多项式

多项式喜欢摆动。他们被限制在一个特定的区间内匹配数据,在这个区间外他们会疯狂。在这个实验中,有12个数据点。的censusapp让多项式的次数在0到11之间变化。次数小于11的多项式在最小二乘意义上近似数据。11次多项式精确地插值数据。随着程度的增加,数据的近似变得更加准确,但2010年之后(或1900年之前)的行为变得更加暴力。这是2度,7度,9度,11度,叠加在一块土地上。

大于二次的多项式不适合外推。

二次拟合效果最好。在2017年进行评估时,它比目标少了750万,但它未能预测人口普查局观察到的增长率下降速度。(当然,我们没有理由相信美国人口会像二次多项式那样迅速增长。)

11次插值多项式甚至在2010年之前就试图逃逸,2014年晚些时候变为负值。

样条外推

MATLAB有两个分段三次插值多项式:样条pchip. 经典样条是平滑的,因为它有两个连续的导数。其竞争对手,,pchip,牺牲了一个连续的二阶导数,以保持形状和避免过冲。这些多项式都不是用来推断的,但我们还是会用到它们。

它们在区间之外的行为是由它们的结束条件决定的。经典的样条使用所谓的not-a-knot条件。它实际上是最后两个子区间的一个立方。这个立方也用于端点以外的外推。pchip仅使用最后三个数据点来创建一个不同的保持形状的立方体,以便在最后一个子区间及以后使用。

让我们放大样条pchip

pchip碰巧产生了一个合理的推断;样条没有。

两人都预测2010年以后的增长率会下降,就像人口普查局预测的那样。但是样条他正在画一幅阴郁的画。2017年的3.146亿比人口时钟值低1000万,接近最大值。另一方面pchip幸运的是,其2017年的价值3.251亿与人口时钟价值相差不到30万。展望未来,,pchip2047年达到最大值3.602亿。这是一个值得深思的预测。

三个指数

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

\[p(t)\approx\alpha\:\text{e}^{bt}\]

许多作者提出了修改该模型的方法,以避免其无限增长。我已将其中两个添加到censusapp.一是logistic模型。

\ [p (t) \大约\α/ (1 + b \: \文本{e} ^ {- ct}) \]

另一种是Gompertz双指数模型,以19岁的科学家Benjamin Gompertz的名字命名th英国数学家、天文学家。

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

在这两种模型中,增长都是有限的,因为近似项接近\(α\),而\(t \)接近无穷大。

在所有三种指数模型中,参数\(\ alpha\)、\(b\)以及可能的\(c\)均呈现非线性。原则上,我可以使用最小二乘拟合在两个或三个维度中寻找符合人口普查数据的最小二乘。但我还有一个选择,取一两个对数,得到a可分离最小二乘法模型中最多有一个参数\(\alpha\)呈非线性显示。

对于指数模型,取一个对数。

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

用直线拟合数据的对数,然后取指数。不需要搜索。

对于logistic模型,取一个对数。

\[\text{log}\:(\alpha/p-1)\approx\text{log}\:b-ct\]

对于任何值的\(\alpha\),参数log \(b\)和\(c\)线性出现,不需要搜索就可以找到。所以,使用一维最小值来搜索\(\)。我可以用fminbnd或者教科书版本,fmintx从…起MATLAB的数值方法

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

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

再次,做一个一维的搜索,求最小的\(\),在每一步求出log \(b)和\(c)。

我应该指出,取对数会改变拟合标准。我在做一个最小二乘法拟合数据日志,而不是实际数据。

\:

结果

以下是三种拟合结果,从200多年的时间推断到2250年。

指数模型推断超过200年。

到那时,纯指数模型将达到50亿,而且增长速度更快。我认为这是不合理的。

在Gompertz匹配中,\(\alpha\)的值是4309.6,因此种群数量将被限制在43亿。但200年后才达到15亿。再一次,不太可能。

逻辑拟合中的\(\alpha\)值为756.4,因此预测的美国人口在未来200年中将略微增加一倍以上。尽管人口普查局观察到我们的增长速度已经放缓,但我们甚至还没有达到最终人口限制的一半。

我让你来判断这个预言。

发布于2017 - 93130v00

查看相关功能的文章