天貓雙11數據過於完美?我們用python來看看
- 2019 年 11 月 28 日
- 筆記
雙11結束了,大家已經無手可剁 。
天貓官方公布了今年的雙11成交額為2684億元,成功刷新了自己創下的商業紀錄。按理說大家已經習慣了逐年增長,沒想到
由於過於完美,引髮網友提出質疑。
▼

該微博在天貓公布2019年銷售額後,引發大量討論,成功登上熱搜。
一些人提出了相反意見:如大V@闌夕表示天貓雙11數據是精確地控制了交易額,從而形成了理想的曲線。
而天貓相關負責人回應稱,符合趨勢就假?造謠要負法律責任。
我們且不評論是真是假,先想想我們能幹點什麼呢?
不如先照著這位微博網友的步驟來複現一遍吧。
利用Excel進行擬合
這位微博網友使用的工具似乎是Excel,我安裝的是WPS,應該也能勝任。
先將天貓2009年-2018年的雙十一歷年銷售額歷史數據導入到一張表裡。

點擊插入一張散點圖。


左鍵點擊一下任意一個散點數據,出現散點數據選擇狀態。
滑鼠右擊,彈出提示框,點擊「添加趨勢線」。
在WPS表格右側,找到趨勢線屬性按鈕,左鍵單擊一下,彈出趨勢線屬性框。

選擇三次多項式,得到結果√

其中R²=0.9994,這與微博網友的預測值一致,說明我們的方法是對的。

over。
停一停,
作為一個經常使用python進行數據分析的公眾號,怎麼能能少了Python呢?
利用Python進行擬合併預測
我們在python中可以利用numpy求解多項式以及多項式擬合。
嘗試用numpy的polyfit函數進行擬合,並作圖。
程式碼如下:
import matplotlib.pyplot as plt import numpy as np x = np.array([year for year in range(2009,2019)]) y = np.array([0.5,9.36,52,191,352,571,912,1207,1682.69,2135]) z1 = np.polyfit(x, y, 3) # 用3次多項式擬合 p1 = np.poly1d(z1) yvals=p1(x) plot1=plt.plot(x, y, '*',label='實際銷售額') plot2=plt.plot(x, yvals, 'r',label='擬合銷售額') plt.xlabel('年份') plt.ylabel('銷售額(億)') plt.legend(loc=4) # 指定legend的位置 plt.title('2009-2018淘寶雙十一銷售額擬合曲線') plt.figure(figsize=(10, 10)) plt.show() print('擬合多項式:',p1) #列印擬合多項式 p1 = np.poly1d(z1) print("-"*40) print('2019年預測值:',p1(2019)) #列印預測值
運行結果:


利用三次多項式預測的數據與公布的結果確實很相近。
我們繼續搞事情。
將今年2019年的2684億導入,預測一下後面三年:

按照網上的陰謀論,後面幾年的數據應該如此。
碎碎談
看了網路上的好幾篇文章,眾說紛紜。
作為一個技術er,就不去對此事做評價了。
只寫一些其中跟我們相關的數據知識就夠了。
網路大眾對此事的看法到底如何?
不妨看下騰訊科技發起的一個投票。

大眾的看法就像這個投票。
作者:朱小五,互聯網公司數據分析師。熱衷於Python爬蟲,數據分析,可視化,個人公眾號《凹凸玩數據》,有趣的不像個技術號~


