作者:手机用户2502893613 | 来源:互联网 | 2024-11-12 16:57
根据天猫官方数据,2019年双11成交额达到了2684亿元,再次刷新了历史记录。为了进一步分析这一趋势,我们使用多项式拟合方法对过去十年的数据进行建模,并预测未来几年的销售情况。
以下是具体的代码实现,环境为Python 3.6 和 Jupyter Notebook。
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import font_manager as fm
# 设置中文字体
zhongwen_fOnt= fm.FontProperties(fname='C:\Windows\Fonts\simsun.ttc')
# 年份和对应的销售额(单位:亿元)
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)
p1 = np.poly1d(z1)
yvals = p1(x)
# 绘制实际销售额和拟合销售额
plt.plot(x, y, '*', label='实际销售额')
plt.plot(x, yvals, 'r', label='拟合销售额')
# 设置坐标轴刻度
_xticks_labels = ["{}年".format(i) for i in x]
plt.xticks(x, _xticks_labels, rotation=45, fOntproperties=zhongwen_font)
plt.xlabel('年份', fOntproperties=zhongwen_font)
plt.ylabel('销售额(亿)', fOntproperties=zhongwen_font)
# 绘制网格
plt.grid(alpha=0.4)
# 添加图例
plt.legend(loc='best', prop=zhongwen_font)
# 设置标题
plt.title('2009-2018年淘宝双11销售额拟合曲线', fOntproperties=zhongwen_font)
# 保存图像
plt.figure(figsize=(18, 18), dpi=80)
plt.savefig('./taobao201911.png')
plt.show()
# 打印拟合多项式
print('拟合多项式:', p1)
print('-' * 40)
print('2019年预测值:', p1(2019))
print('2020年预测值:', p1(2020))
print('2021年预测值:', p1(2021))
print('2022年预测值:', p1(2022))
运行上述代码后,得到的拟合多项式和预测结果如下:
Using matplotlib backend: Qt5Agg
拟合多项式: 3 2
0.159 x - 930.2 x + 1.813e+06 x - 1.176e+09
----------------------------------------
2019年预测值: 2689.0133340358734
2020年预测值: 3301.523639678955
2021年预测值: 3980.3633403778076
2022年预测值: 4726.486259460449
通过三次多项式拟合,我们可以看到预测的2019年销售额与实际公布的2684亿元非常接近。接下来,我们将2019年的实际数据纳入模型,继续预测2020年至2022年的销售额。
预测结果如下:
2019年预测值: 2689.0133340358734
2020年预测值: 3301.523639678955
2021年预测值: 3980.3633403778076
2022年预测值: 4726.486259460449
根据以上预测,未来几年的销售额将继续保持增长趋势。然而,需要注意的是,多项式拟合虽然能提供一定的预测参考,但实际销售情况还会受到多种因素的影响,如市场环境、消费者行为等。
欢迎关注我的更多数据分析内容。