天猫双11数据过于完美?我们用Python来看看

【线上直播】11月21日晚8点贝壳技术总监侯圣文《数据安全之数据库安全黄金法则》

双11结束了,大家已经无手可剁 。

天猫官方公布了今年的双11成交额为2684亿元,成功刷新了自己创下的商业纪录。按理说大家已经习惯了逐年增长,没想到由于过于完美,引发网友提出质疑。

天猫双11数据过于完美?我们用Python来看看

该微博在天猫公布2019年销售额后,引发大量讨论,成功登上热搜。

一些人提出了相反意见:如大V@阑夕表示天猫双11数据是精确地控制了交易额,从而形成了理想的曲线。

而天猫相关负责人回应称,符合趋势就假?造谣要负法律责任。

我们且不评论是真是假,先想想我们能干点什么呢?

不如先照着这位微博网友的步骤来复现一遍吧。

利用Excel进行拟合

这位微博网友使用的工具似乎是Excel,我安装的是WPS,应该也能胜任。

先将天猫2009年-2018年的双十一历年销售额历史数据导入到一张表里。

天猫双11数据过于完美?我们用Python来看看

点击插入一张散点图。

天猫双11数据过于完美?我们用Python来看看

天猫双11数据过于完美?我们用Python来看看

左键点击一下任意一个散点数据,出现散点数据选择状态。

鼠标右击,弹出提示框,点击“添加趋势线”。

在WPS表格右侧,找到趋势线属性按钮,左键单击一下,弹出趋势线属性框。

天猫双11数据过于完美?我们用Python来看看

选择三次多项式,得到结果√

天猫双11数据过于完美?我们用Python来看看

其中R²=0.9994,这与微博网友的预测值一致,说明我们的方法是对的。

天猫双11数据过于完美?我们用Python来看看

over。

停一停,

作为一个经常使用python进行数据分析的公众号,怎么能能少了Python呢?

利用Python进行拟合并预测

我们在python中可以利用numpy求解多项式以及多项式拟合。

尝试用numpy的polyfit函数进行拟合,并作图。

代码如下:

  1. import matplotlib.pyplot as plt 
  2. import numpy as np 
  3.  
  4. x = np.array([year for year in range(2009,2019)]) 
  5. y = np.array([0.5,9.36,52,191,352,571,912,1207,1682.69,2135]) 
  6. z1 = np.polyfit(x, y, 3) # 用3次多项式拟合 
  7. p1 = np.poly1d(z1) 
  8.  
  9. yvals=p1(x) 
  10. plot1=plt.plot(x, y, '*',label='实际销售额'
  11. plot2=plt.plot(x, yvals, 'r',label='拟合销售额'
  12. plt.xlabel('年份'
  13. plt.ylabel('销售额(亿)'
  14. plt.legend(loc=4) # 指定legend的位置 
  15. plt.title('2009-2018淘宝双十一销售额拟合曲线'
  16. plt.figure(figsize=(10, 10)) 
  17. plt.show() 
  18.  
  19. print('拟合多项式:',p1) #打印拟合多项式 
  20. p1 = np.poly1d(z1) 
  21. print("-"*40) 
  22. print('2019年预测值:',p1(2019))  #打印预测值 

运行结果:

天猫双11数据过于完美?我们用Python来看看

天猫双11数据过于完美?我们用Python来看看

利用三次多项式预测的数据与公布的结果确实很相近。

我们继续搞事情。

将今年2019年的2684亿导入,预测一下后面三年:

天猫双11数据过于完美?我们用Python来看看

按照网上的阴谋论,后面几年的数据应该如此。

碎碎谈

看了网络上的好几篇文章,众说纷纭。

作为一个技术er,就不去对此事做评价了。

只写一些其中跟我们相关的数据知识就够了。

网络大众对此事的看法到底如何?

不妨看下腾讯科技发起的一个投票。