雙十一銷售額造假?學了統計學你就知道這有多滑稽了 | 袁嵐峯_風聞
风云之声-风云之声官方账号-2019-11-21 22:21
導讀
“擬合度……幾乎為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的定義(https://blog.csdn.net/S20144144/article/details/99672706)
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)有一句名言:
馮·諾依曼
“用四個參數我可以擬合出一頭大象,而用五個參數我可以讓它的鼻子搖起來。”
這話最初只是開玩笑,但後來真有人去研究如何用四個參數擬合大象,而且還真讓他們給研究出來了(http://blog.sciencenet.cn/blog-3779-803730.html)。2010年6月,尤根·邁爾(Jürgen Mayer)等三位德國分子生物學家在《美國物理學期刊》(American Journal of Physics)發表了一篇文章,標題是《用四個復參數畫出一頭大象》(Drawing an elephant with four complex parameters)。他們發現,用四個復參數可以大致勾勒出大象的形狀,再引入一個復參數就可以讓大象的鼻子擺動起來(https://www.zhihu.com/question/64001603/answer/216061603)。
擬合大象
嚴格地説,這裏用到的參數不止四個,因為一個複數相當於兩個實數。不過無論如何,這大象是不是充滿了靈性?!