爱吱声

标题: 转:双十一销售额造假?学了统计学你就知道这有多滑稽... [打印本页]

作者: 松叶牡丹    时间: 2019-11-22 00:19
标题: 转:双十一销售额造假?学了统计学你就知道这有多滑稽...
本帖最后由 松叶牡丹 于 2019-11-22 00:27 编辑

双十一销售额造假?学了统计学你就知道这有多滑稽了 | 袁岚峰

@煮酒正熟 煮酒兄一个贴子引发了大家讨论统计学的热情,这里转贴一个类似话题。


导读

“拟合度……几乎为1……数据过于完美……属于小概率事件,在实际生活中几乎是不可能发生的事。因此可以断定,阿里……对销售额数据进行了人工修饰,存在造假事实。”这些话对外行可能显得很有说服力,对真正做过拟合的人来说,却只会笑掉大牙。



最近,发生了一场关于双十一销售额是不是造假的热烈争论。这里涉及到不少统计学知识,因此,这正是一个向大家介绍统计学的好例子。

这场争论的源头,是2019年4月24日,一位叫做“尹立庆”的网友发了一条微博,内容如下:

“#淘宝双11骗局# 从天猫双十一的全天销售额来看,实际生产数据几乎完美地分布在三次回归曲线上,拟合度均超过99.94%,几乎为1,而且生产数据有10年之久,每一年的数据都这么高度拟合,数据过于完美,销售额与年份的增长趋势仿佛按预期的设定的线性公式发展,属于小概率事件,在实际生活中几乎是不可能发生的事。因此可以断定,阿里为了吸引双十一的购物热度,对销售额数据进行了人工修饰,存在造假事实。可断定淘宝历年双11全天销售额数据存在假造,并且从一开始就在造假。马云真的是个大骗子,骗了全世界人民,并且骗了十年。如果继续如此造假,可预测2019年淘宝双11当天销售额为2675.37亿或者2689.00亿。”



尹立庆2019年4月24日的微博

11月12日,2019年双十一的销售额出炉了:2684亿。这时许多人翻出了尹立庆半年前的预测,惊呼“神推算”,类似下面这样:



2019年11月12日网民认为尹立庆神推算的微博

观众朋友们,请问你们对此怎么看?真的是神推算吗?真的是阿里造假被抓现行了吗?请仔细思考后回答。

我在这里可以告诉大家答案:这根本不是什么阿里造假的证据,而是作者对统计学半通不通的证据。因为他论证的逻辑完全是错误的,而最终的销售额用其他合理得多的方法也能预测个八九不离十。

具体而言,我们可以提出三个灵魂问题:

一,你真的相信,多项式函数的拟合度接近1是小概率事件吗?

二,如果马云要造假,你认为他应该用多项式函数还是指数函数?

三,如果你用指数函数来外推,会得到什么样的预测?

下面来详细解释一下。

尹立庆的微博说:“拟合度……几乎为1……数据过于完美……属于小概率事件,在实际生活中几乎是不可能发生的事。”这些话对外行可能显得很有说服力,对真正做过拟合的人来说,却只会笑掉大牙。因为,多项式函数拟合度接近1实在是太容易做到了,不接近1的都不好意思出来见人。

为了具体说明这个问题,我们需要对原文的数据做一些拟合的数值实验。其实像WPS和excel这样常用的软件就可以做拟合,欢迎大家去看我的朋友、风云学会会员陈经11月13日在我们的微信公众号“风云之声”发表的文章《解密天猫双11成交数据的“神奇”拟合:统计的障眼法》(解密天猫双11成交数据的“神奇”拟合:统计的障眼法 | 陈经),那里介绍了具体的操作方法。

尹立庆使用的原始数据,是2009年至2018年的双十一销售额,如下图(以下都以亿元为单位):



2009年至2018年的双十一销售额

我在excel上,把年份减去2009作为横坐标,也就是说2009年对应x = 0,2018年对应x = 9,对这些数据进行二次多项式拟合,得到如下所示的结果:



对2009年至2018年双十一销售额的二次多项式拟合

拟合出来的二次多项式是

y= 30.095 x2 - 33.99 x + 6.3011,

拟合度(goodness of fit)R2 = 0.9994,也就是99.94%。

光看这个,你也许会觉得这拟合真是太准确了,99.94%啊!且慢,让我们做些数值实验,看看这个拟合度的含金量有多高。

首先,把2018年的数据调高10%,也就是从2135增加到2348.5,然后再去拟合。你觉得会怎么样呢?直觉的想法是,拟合度会变得很差,对吧?

但当你真的算了以后,你就会发现,拟合度仍然高达99.67%!



对2009年至2018年双十一销售额的二次多项式拟合,2018年数据调高10%

再从相反的方向试验一下,把2018年的数据调低10%,也就是从2135降低到1921.5。这时你会发现,拟合度仍然高达99.52%。



对2009年至2018年双十一销售额的二次多项式拟合,2018年数据调低10%

有兴趣的观众可以尝试一下,要对2018年的数据做多大的变化,才能让拟合度小于99%。再来对前面年份的数据做类似的试验,答案会让你感到很滑稽。

由此可见,这些数据在很大的变动范围内,都会显得好像完美符合拟合的曲线!因此,拟合度接近1几乎是默认的,不接近1才是怪事。其实,用3个参数拟合区区10个点,想不准都难啊。把拟合度接近1作为造假的证据,实在是少见多怪,贻笑大方。

如果你对统计学的理论不感兴趣,那么你了解到这个程度就够了。如果你想理解拟合度为什么这么容易接近1,我们来解释一下。

这里的关键,是搞清拟合度的定义。如果听到一个东西的拟合度为99%,外行可能会理解为:这件事有99%的可能是真的。但其实,根本不是这个意思!

所谓拟合,就是寻找一条曲线,使它尽可能地靠近已知的若干个点。什么叫做“尽可能靠近”呢?最容易想到的判据是,每一点的真实值和拟合值之间都有个误差,令这些误差的绝对值之和最小。但这样在数学上不容易处理,因此真正常用的判据是,令这些误差的平方和最小。由此推出的算法,叫做最小二乘法(method of least squares)。

在最小二乘法的框架下,拟合度的定义是

R2= SSR / SST = 1 - SSE / SST,

其中的SSR、SSE和SST是三个数量。它们是什么意思呢?

定义这三个量,需要用到三类关于单个数据点的数值:第一类是真实值,例如上面例子中2009年的0.5和2018年的2135等真实销售额;第二类是拟合值,在上面的例子中就是拟合出来的二项式函数在各个年份的计算值;最后一类是所有真实值的平均值,在上面的例子中等于711.055。如果一组数据有n个点,那么我们就有n个真实值和n个拟合值,而平均值总是只有一个。

有了这些基础以后,SSR、SSE和SST这三个量的定义就是:



SSR、SSE和SST的定义(网页链接)

SSR叫做回归平方和(Sum of Squares for Regression),它是每一点的拟合值与平均值的差值的平方和;

SSE叫做残差平方和(Sum of Squares for Error),它是每一点的真实值与拟合值的差值的平方和;

SST叫做总离差平方和(Sum of Squares for Total),它是每一点的真实值与平均值的差值的平方和。同时它也刚好等于SSE + SSR,这并不是显而易见的,但可以由最小二乘法的定义证明。有兴趣的观众,可以在统计学的资料中找到证明。

知道这个定义,就容易明白为什么拟合度经常接近1了。

对于一组真实的数据,各个点的真实值往往差别很大。例如在上面的双十一销售额数据中,最小值是0.5,最大值是2135。因此,大多数点真实值跟平均值的差别都不小,在上面的例子中是几百上千的量级。这些差别的平方和就是总离差平方和SST,它是一个很大的值。

另一方面,只要这组数据不是太畸形,那么在每一个点上,真实值跟拟合值的差别都可以做到比较小。在上面的例子中,就是几到几十的量级。这些差别的平方和就是残差平方和SSE,显然它比总离差平方和SST小得多。

回顾一下,拟合度

R2= 1 - SSE / SST,

因此它接近于1,不是理所当然的吗?

以上,我们解答了第一个灵魂问题:你真的相信,多项式函数的拟合度接近1是小概率事件吗?

了解了这个基本道理,所谓造假的指控就已经烟消云散了。如果你还想学到更多,那么还可以再去思考后面两个灵魂问题。我在这里给出最简略的回答,陈经的文章(解密天猫双11成交数据的“神奇”拟合:统计的障眼法 | 陈经)里有详细的数值,欢迎大家去阅读。

第二个灵魂问题:如果马云要造假,你认为他应该用多项式函数还是指数函数?

回答是:指数函数才是合理的,因为可以保证是个增函数。而多项式不是单调函数,这会造成很可笑的后果。你仔细看一下拟合出来的二次多项式

y= 30.095 x2 - 33.99 x + 6.3011,

x= 0对应的是2009年的拟合值,等于常数项6.3011,

x= 1对应的是2010年的拟合值,等于

30.095 - 33.99 + 6.3011 = 2.4061。

也就是说,2010年的销售额会比2009年的低。什么人会白痴到制定这样的造假计划啊!

第三个灵魂问题:如果你用指数函数来外推,会得到什么样的预测?



2009年至2019年的双十一销售额增长率(解密天猫双11成交数据的“神奇”拟合:统计的障眼法 | 陈经)

回答是:根据前几年的增长率,一个正常的感觉是2019年的增长率会在25%左右。这样得到的预测值是2668.75,跟真实值2684也十分接近。

我的朋友黄文政博士是一位统计学专家,在哈佛大学等学校给研究生讲过高等统计回归方法。他对此事还有四点评论。



黄文政在哈佛大学办公室

第一,在新闻上看到小概率事件,是常有的事。因为狗咬人不是新闻,人咬狗才是新闻,被报道出来的是已经被筛选过的。但人们看报道时往往忘记了这一点,所以大惊小怪。

第二,对于这种全都大于0但数量级跨度很大的数据,标准的处理方法是先求对数再拟合,也就是我前面说的用指数函数拟合。直接在原始尺度上做拟合,是非常不专业的做法。这样会导致拟合结果过度依赖于数值最大的一些点,而对数值小的点可能相对误差已经很大了,绝对误差却在大图上看不出来。上面的例子中就是这样,x = 0也就是2009年的拟合值等于6.3011,而真实值是0.5,相对误差高达1160.22%!

第三,阿里很可能确实有一定的销售目标,有很多手段去帮助达到这些目标。其实我觉得正常的企业都会有这样的目标和手段,没有就怪了。但这不叫造假啊!

第四,从长远来看,人口决定消费的长期趋势。根据2010年人口普查,中国的出生人口从1990年的2800万在十年内降至1999年的约1500万,这些人是双十一的购物主体。由于中国的生育率远低于更替水平,未来中国的人口会快速下降,这是一个重大的危机。

现在,大家知道为什么内行对此事一眼就能看明白了吧?大家对统计学,也理解得深入多了吧?

在数据分析中,拟合是一个相当有用的工具。但为了向人们提醒它的局限性,伟大的数学家冯·诺依曼(John von Neumann,1903 - 1957)有一句名言:



冯·诺依曼

“用四个参数我可以拟合出一头大象,而用五个参数我可以让它的鼻子摇起来。”

这话最初只是开玩笑,但后来真有人去研究如何用四个参数拟合大象,而且还真让他们给研究出来了(网页链接)。2010年6月,尤根·迈尔(Jürgen Mayer)等三位德国分子生物学家在《美国物理学期刊》(American Journal of Physics)发表了一篇文章,标题是《用四个复参数画出一头大象》(Drawing an elephant with four complex parameters)。他们发现,用四个复参数可以大致勾勒出大象的形状,再引入一个复参数就可以让大象的鼻子摆动起来(网页链接)。



拟合大象

严格地说,这里用到的参数不止四个,因为一个复数相当于两个实数。不过无论如何,这大象是不是充满了灵性?!

扩展阅读:

为什么我们说不要轻易和数学家吵架之辛普森悖论 | 科技袁人

从蓝眼睛问题,看群众理解能力的巨大差异 | 袁岚峰

奇妙的数学:蓝眼睛岛和强弱共识 | 袁岚峰

“只写答案不给分”,这真的是为了你好!| 科技袁人



作者:风云之声
链接:https://xueqiu.com/4826147079/136141799
来源:雪球
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
作者: 独角兽    时间: 2019-11-22 01:09
太棒了,涨知识! 之前李永乐老师也发了一个这个主题的视频,也非常有意思,涨知识。
作者: 老兵帅客    时间: 2019-11-22 04:41
第三,阿里很可能确实有一定的销售目标,有很多手段去帮助达到这些目标。其实我觉得正常的企业都会有这样的目标和手段,没有就怪了。但这不叫造假啊!

俺可啥都没说哈。
作者: 煮酒正熟    时间: 2019-11-24 11:03
老兵帅客 发表于 2019-11-21 15:41
第三,阿里很可能确实有一定的销售目标,有很多手段去帮助达到这些目标。其实我觉得正常的企业都会有这样的 ...

哈哈,他这第三点确实是嘴巴大了些,话说得极不严谨。

1 阿里不是很可能有销售目标,而是绝对有销售目标

2 有很多手段去帮助达到这些目标。这句话特别逗。如果手段正当,比如依靠先进算法预先通知各供货商存够货,热点产品打深折并预先宣传,最终达到了这些目标,那不叫造假。但是如果通过其他手段 比如影子公司出手购买、虚报销售额这些,这些难道不也是手段么?但是使用这些欺诈手段难道不是造假吗?
当然,我没断定马云造假,我只是针对这篇文字作者的措辞

那篇质疑马云造假的文章诚然缺乏统计学常识,但这篇反驳文章既然在纠别人的错,自己的行文最好严谨一点


作者: 煮酒正熟    时间: 2019-11-24 12:48
本帖最后由 煮酒正熟 于 2019-11-24 12:30 编辑

尹立庆拿天猫的高拟合为证据说天猫销售额造假,这个确实太武断了。他也许确实是做数据的,但同样是做数据的还有个天份和后天经验的高下之别。天猫的这个东西是time series,自变量只有一个,就是年份;而且天猫网购还处于“前平台期”,在这个阶段的销售额肯定是节节高,你让个初中生来看看这些年的数据让他蒙一下2019的销售额估计也不会差很多。但是我们现实中遇到的销售额确实较少见到连续这么多年,年年都增长的。

确实有,比如我记得2007年霉果某知名fashion retail brand 的 CEO 因为当年首次实现网购一百万美元而欢呼雀跃,如果你把这个公司从2007-2018的网购销售额plot出来,也和天猫差不多。但这样的情况毕竟是非常非常少,比如同样是这家公司,你把它从2007-2018的总销售额 (线上+线下)plot 出来,它绝对不可能是一直增长的,你无论那什么函数或者复合函数去拟合都很难贴近 100% R-squared.  

所以尹立庆的指责所采用的证据虽然是错的,但他对于现实数据的整体感觉并不错,在现实的销售数据中你能够用简单函数就能做到99%以上拟合度的情况,确实是比较少的。我自己就亲手做过我们公司过去7-8年的年度销售plotting,因为有两年下降,有一年暴增,导致一般的函数比如 linear, univariate quadratic, exponential, square root, log 等等都无法达到很好的拟合

其实最最关键的问题是,高拟合有吮马用高拟合 = 准确预测?如果为了解释已经发生的事情,那是在做一个解释型的模型,这种情况下你可以尽情地往里面扔features,以最大限度提高拟合度(R2),但是这种工作基本上没有太大 value adding。真正需要的是 predictive model,这种情况下过于追求高拟合度反而可能导致 overfitting,进而导致 the model does not generalize well on new auidence

正因为对于样本不随机容易导致overfitting的问题,机器学习里才会搞出 n-fold 这种“平均主义”,虽然降低了拟合,但不会在generalize的时候出现悲剧性结果
作者: 老兵帅客    时间: 2019-11-24 16:36
煮酒正熟 发表于 2019-11-23 22:03
哈哈,他这第三点确实是嘴巴大了些,话说得极不严谨。

1 阿里不是很可能有销售目标,而是绝对有销售目标 ...

我的意思就在这里,所谓的专业人士,说话居然如此不严谨,以至于完全可以被别人理解出自己所需要的结果来。

你知道我是做软件的,我们这行当经常有技术方案讨论,哪位要是像这位这么说话的话,会被大笑和继之以鄙视的。
作者: 包子    时间: 2019-11-27 01:19
数学确实是很有意思的。

不过,就双十一或618这种大规模促销而言,淘宝的降价非常不透明,而且没有价保。我是很奇怪,什么人会在淘宝上买东西。淘宝要找便宜东西效率太低,错误太高,售后也费劲,除非张大妈有推荐。我基本这几年促销季都是光顾刘强奸了。

当然,淘宝还是有优势的,比方说小零件,小食品什么的,哪怕停产多年的电子管都有,但大件耐用品还是得去京东,除了退换方便还有增值的延保服务可以买,确实能够做到后顾无忧。
作者: zilewang    时间: 2019-11-30 22:33
这种东西不用整高大上的数学统计来证实或证伪。只要有一定生活常识和经验的,屁股都知道数据有问题。
我就讲讲我所知道的,方法无外几种:
1,刷单。这是一个完整产业链,我有认识的人就做这个。如果要做网店生意,没这个产业领路,是开不网店的。他们的业务主要就是给你增加信用评分。所以,淘宝的商家信用看看就好,别当真。
2,虚拟交易。就是先下订单,然后取消。
3,积压。故意将前后一定时间的订单累积算这一天的成交。
4,促销。这个算是正规合法的营销手段。但成本主要转嫁给商家,很多商家苦不堪言。
我不清楚那些说网店取代实体店的观点是如何成立的,就我所知,网店的成本一点都不亚于实体店。如果说实体店的主要开销来源于租金的话,网店也有租金的,还有名目众多的促销,推广,刷单等开支,成本也不小。

另外,今年的双11,就我的感觉,明显比前几年降温不少。首先我就只买了一本书。而我经常路过的快递取货点,今天的11后的取货人数也大大地不如往年。我认为,这个感受跟今年整体经济的进一步萧条是相吻合的。




欢迎光临 爱吱声 (http://129.226.69.186/bbs/) Powered by Discuz! X3.2