使用 Python 的 ARIMA 模型预测商品销量

本文将介绍如何使用 Python 的 ARIMA 模型对商品销量进行预测,并提供代码示例,帮助你实现基于天为单位的未来七天销量预测。

示例代码:

import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.seasonal import seasonal_decompose
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
from statsmodels.tsa.arima_model import ARIMA

# 读取数据
sales_data = pd.read_excel('总表 (1).xlsx')
print(sales_data)
data=pd.DataFrame(sales_data)
data
sales_data.set_index('销售日期',drop=False,append=False,inplace=True,verify_integrity=False)

# 将数据按天进行重采样
daily_data = sales_data.resample('D').sum()

# 循环预测每个品类的销售总量
for category in sales_data['分类名称'].unique():
    category_sales = sales_data[sales_data['分类名称'] == category]
    monthly_data = category_sales.resample('S').sum()
    
    # 绘制时间序列图
    plt.plot(monthly_data.index, monthly_data['销量(千克)'])
    plt.xlabel('销售日期')
    plt.ylabel('销量(千克)')
    plt.title(f'{category}时间序列图')
    plt.xticks(rotation=15)
    plt.show()
    
    decomposition = seasonal_decompose(monthly_data['销量(千克)'], model='additive')
    trend = decomposition.trend
    seasonal = decomposition.seasonal
    residual = decomposition.resid
    
    plot_acf(monthly_data['销量(千克)'])
    plot_pacf(monthly_data['销量(千克)'])
    plt.show()
    
    model = ARIMA(monthly_data['销量(千克)'], order=(7,1,0))
    model_fit = model.fit()
    forecast = model_fit.forecast(steps=7)[0]
    print(f'{category}预测销售总量:{forecast}')

代码解释:

  1. 读取数据并重采样: 使用 pd.read_excel() 读取 Excel 文件,并使用 resample('D') 将数据按照天为单位进行重采样,以便进行每天的销售总量预测。
  2. 循环预测每个品类: 使用 for 循环遍历每个品类,并对每个品类进行以下操作:
    • 获取该品类的销售数据 category_sales
    • 使用 resample('S') 将该品类的销售数据按照秒为单位进行重采样,并对每个品类的销量数据进行时间序列分解,并绘制时间序列图。
    • 使用 plot_acf()plot_pacf() 绘制自相关函数 (ACF) 和偏自相关函数 (PACF) 图,帮助确定模型参数。
    • 使用 ARIMA() 创建 ARIMA 模型,并将模型参数设置为 (7, 1, 0)
    • 使用 model.fit() 拟合模型,并使用 model_fit.forecast() 预测未来 7 天的销量。
  3. 输出预测结果: 循环遍历每个品类的预测结果,并输出预测结果。

结论:

本示例代码展示了如何使用 Python 的 ARIMA 模型进行商品销量预测。你可以根据自己的实际情况修改模型参数、预测时间等,以获得更准确的预测结果。

注意:

  • 本示例代码仅供参考,实际应用中需要根据数据的具体情况进行调整。
  • ARIMA 模型假设时间序列数据具有平稳性,在实际应用中,可能需要对数据进行预处理,例如差分等。
  • 预测结果仅供参考,实际销量可能会受到多种因素的影响。
Python 时间序列分析:基于 ARIMA 模型预测商品销量

原文地址: https://www.cveoy.top/t/topic/nRvl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录