食用菌销售时间序列预测:基于ARIMA模型

本程序使用Python中的Pandas、Matplotlib和Statsmodels库对食用菌销售数据进行时间序列分析和预测,并使用ARIMA模型进行预测。

步骤:

  1. 导入库:
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
  1. 读取数据:
sales_data = pd.read_excel('总表(1).xlsx')
  1. 设置索引:
sales_data.set_index('销售日期', inplace=True)
  1. 提取食用菌销售数据:
category_sales = sales_data[sales_data['分类名称'] == '食用菌']
  1. 按月汇总数据:
monthly_data = category_sales.resample('M').sum()
  1. 绘制时间序列图:
# 绘制时间序列图
plt.plot(monthly_data.index, monthly_data['销量(千克)'])
plt.xlabel('Date')
plt.ylabel('Value')
plt.title('Time Series')
plt.xticks(rotation=45)
plt.show()
  1. 时间序列分解:
decomposition = seasonal_decompose(monthly_data['销量(千克)'], model='additive')
trend = decomposition.trend
seasonal = decomposition.seasonal
residual = decomposition.resid
  1. 绘制自相关函数 (ACF) 和偏自相关函数 (PACF) 图:
plot_acf(monthly_data['销量(千克)'])
plot_pacf(monthly_data['销量(千克)'])
plt.show()
  1. 建立ARIMA模型:
model = ARIMA(monthly_data['销量(千克)'], order=(p, d, q))
model_fit = model.fit()
  1. 预测未来7个月的销量:
forecast = model_fit.forecast(steps=7)[0]

说明:

  • '总表(1).xlsx' 是您的销售数据文件,请根据实际情况修改。
  • (p, d, q) 是ARIMA模型的阶数,需要根据ACF和PACF图确定。

代码示例:

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')
sales_data.set_index('销售日期', inplace=True)

category_sales = sales_data[sales_data['分类名称'] == '食用菌']

monthly_data = category_sales.resample('M').sum()

# 绘制时间序列图
plt.plot(monthly_data.index, monthly_data['销量(千克)'])
plt.xlabel('Date')
plt.ylabel('Value')
plt.title('Time Series')
plt.xticks(rotation=45)
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()

# 假设ARIMA模型的阶数为 (5, 1, 0)
model = ARIMA(monthly_data['销量(千克)'], order=(5, 1, 0))
model_fit = model.fit()
forecast = model_fit.forecast(steps=7)[0]

print(f'未来7个月的预测销量:{forecast}')

注意:

  • 本程序仅供参考,实际应用中需要根据您的具体情况进行调整。
  • ARIMA模型的阶数需要根据ACF和PACF图确定,并进行模型评估和选择最佳模型。
  • 数据质量会影响模型预测效果,请确保数据准确可靠。
食用菌销售时间序列预测:基于ARIMA模型

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

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