前言

淘宝双十一的数字每年都创新高,今年更是达到了2684亿。然后在数字的背后,有人提出了质疑,其中最著名是今年四月的一则微博,作者用双十一前10年的数据进行拟合,并成功预测今年双十一的数据区间为2675.37 - 2689,如下图所示。

三次项回归 三次回归曲线_逻辑推理


那么事实是不是这样,他说的有没有道理。今天我们就用Python来验证一下。

准备知识

首先,我们先简单介绍一下拟合的工作原理。如上图的散点图所示,如果有了近十年的数据,那么就可以形成一条曲线。学过数学的都知道,常见的曲线函数为 三次项回归 三次回归曲线_双十一造假_02。这是一个曲线的特例,我们可以进一步一般化的格式为:三次项回归 三次回归曲线_逻辑推理_03。这个函数是一般意义的曲线,由于三次项回归 三次回归曲线_数据_04的指数为2,所以称之为二次多项式。同理,我们还有三次多项式的曲线的一般形式 三次项回归 三次回归曲线_逻辑推理_05。在原文中,提到了三次回归曲线,这里指的就是三次多项式的曲线。

原文还有另外一个概念回归。为了理解这个概念,我们先看一个概念拟合。学过中学数学知道,对于一次多项式,即直线方程 三次项回归 三次回归曲线_Python验证_06,只要有两个点就可以将系数 三次项回归 三次回归曲线_Python验证_07三次项回归 三次回归曲线_数据_08

计算工具

为了简化计算过程,这里使用了Python的一个非常好的发行版 Anaconda,它包括了很多数学的计算工具,其中就包括拟合计算。Anaconda的下载和使用请参见相关文章。

以下是计算使用代码

import numpy as np  # 引入数学计算包
x = np.arange(0, 10, 1) # 生成[0, 1,..., 9] 表示 2009 - 2018这十年
y = np.array([0.52, 9.36, 33.60, 191.00, 362.00, 571.00, 912.00, 1207.00, 1682.00, 2135.00]) # 淘宝2009-2018的实际数据,网上可查。
abcd = np.polyfit(x, y, 3) # 三次多项式拟合,计算abcd的值
f = np.poly1d(abcd) # 利用计算的系数值,生成这个多式项函数f
# 以下为打印结果
print(abcd) 
print(f)
print(f(10)) # f(10)即是2019年的数据。

运行结果如下所示:

三次项回归 三次回归曲线_三次项回归_09

结果分析

从以上结果可以看到,三次多项式的系数 [a, b, c d] 分别是[ 0.05889666 29.18307692 -29.76850039 0.66198601]。所以,函数的表达式为 三次项回归 三次回归曲线_Python验证_10。最后,当我们将2019年的数据代入(即三次项回归 三次回归曲线_逻辑推理_11),可得2019年的数据为 2680.18亿,与实际的2684亿相差不到4亿,非常精确!为了更好地让你看清数据,这里使用Excel制作了一个曲线图,其中曲线为拟合的函数生成的曲线,而散点为真实的数据。如图所示,所有点与拟合结果都高度一致。

三次项回归 三次回归曲线_Python验证_12

结论

可以看到拟合的结果非常符合实际值,即我们可以得到一个结论:使用三次回归函数,我们可以精确地利用前10年的数据推断出第11年,即2019年的淘宝数据。也就是说,博客原文中关于数据精度的结论是正确的

但是,请特别注意,虽然数据计算的结论是正常的,但是最后关于骗子的结论在逻辑上是错误的。也就是说,虽然第11年的数据符合三次回归的计算结果,并不能说明数据造假!为什么?道理很简单,符合预计这个现象只表示一个客观结果,不能说明这个数据是人为的,还是巧合,或者背后有另外的经济或市场规律在起作用。举个例子来说,如果某人根据过去10年的天气数据进行预测,精确推断出今年晴天的天数,你就能说大自然在作弊和欺骗?再举一反例,每次考试结束后,通用都会用正泰分布对考试成绩进行分析,如果数据不符合正泰分布,反而说明是有问题的,可能造假的。也就是说,最终考试的成绩分布,是一定要基本符合正泰分布才是合理的,我们在考试之前就已经能够预知考试的分布,这个算是造假或作弊吗?以上的示例如果你觉得还不够具体,我们看一个现实世界中真实的案例:摩尔定律[百度百科]。

摩尔定律是由英特尔(Intel)创始人之一戈登·摩尔(Gordon Moore)提出来的。其内容为:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18-24个月翻一倍以上。这一定律揭示了信息技术进步的速度 。尽管这种趋势已经持续了超过半个世纪,摩尔定律仍应该被认为是观测或推测,而不是一个物理或自然法。

这个定律自然不用多说,计算机业内无人不知道,摩尔定律连续几十年有效,直到近几年由于CPU单核瓶颈才开始失效,但是如果考虑多核心的总体性能,仍然是符合的。你能说现在整个CPU业都在造假?表象背后自然有很多更深刻的原因。双十一的数据背后,何止是一个淘宝网那么简单,而是整个中国经济的反应,其繁杂程度远远超过了一家公司的控制能力,更不是一个三次回归曲线所能表达的。

所以,原文作者的整个计算过程的结果都是正确的,但是最终根据计算结果作出关于造假或欺骗的结论却是错误的。当然,我们也不能得出数据就没有造假的结论,本文也没有有说数据就没有造假。本文的结论是:数据是否造假,与是否符合三次回归无关,无论三次回归的结果如何,都无法证明淘宝是否造假。

最后,本文的分析方法都是基于数学和逻辑,最终的结论是一个逻辑上的推断,如有不同意见,欢迎讨论。