本篇文档是关于一个包含六种模型的时序预测包的详细说明,主要关注于统计类模型的实现和使用。文件名为"statistic_model.train_model.py",其中的核心功能是`stats_call`函数,该函数负责调用不同类型的统计类时序预测模型进行分析和预测。
1. **统计类模型种类**:
- 多维时序模型:
- **LinearRegression**:多元线性回归,适用于预测多个相关的时间序列数据。
- **VAR** (向量自回归模型):用于处理多个变量之间的动态关系,适用于多序列预测。
- **VAR-ARIMA**:结合了VAR和ARIMA模型,适用于具有趋势和季节性特征的多序列预测。
- 一维时序模型:
- **SES (Single Exponential Smoothing)**:简单指数平滑,适用于单个时间序列的预测,特别适合数据变化平缓的情况。
- **LES (Linear Trend Exponential Smoothing)** 或 **二次指数平滑**:在SES的基础上加入了线性趋势,适合处理带有趋势的数据。
- **TES (Holt-Winters' Seasonal Exponential Smoothing)** 或 **三次指数平滑**:适用于季节性数据,且季节内数据变化较小的情况,考虑了季节性因素。
2. **函数调用与参数**:
- `stats_call`函数接受多个关键参数:
- `data`:输入的DataFrame数据,每一列代表一个可能的时间序列。
- `maindatacolumn_num`:主预测列的列号,从1开始计数。
- `timeseries`:时间日期序列,格式为pandas的Series类型。
- `model_name`:用户可以选择的模型,如'SES', 'LES', 'LinearRegression', 'VAR', 'VAR-ARIMA'等。
- `pred_len`:预测每个点所需的过去历史点数。
- `test_ratio`:划分训练集和测试集的比例。
- `freq`:日期频率,如'D'表示每天。
- `output_len`:预测的步数。
- `supara`:特定模型的超参数,如在SES中,初始平滑系数alpha需在[0,1]范围内指定;而在LES中,初始参数可能包括alpha和beta,不指定时会自动计算最优参数。
3. **参数设置示例**:
- 对于`LinearRegression`和`VAR`/`VAR-ARIMA`这类多序列模型,`supara`默认为None,意味着模型会自行估计参数。
- 对于`SES`,如果指定了`supara`,例如`supara=0.5`,则使用这个初始平滑系数。
- 对于`LES`,需要提供初始的alpha和beta值,例如`supara=[0.6, 0.2]`。
4. **注意事项**:
- 在使用函数时,确保数据格式正确,模型名称选择对应实际需求。
- 超参数的处理依赖于具体模型,根据文档说明进行合理设置或自动优化。
通过本文档,用户可以了解如何使用这些统计类时序预测模型来处理和预测数据,以及如何根据具体场景调整参数以优化预测性能。对于数据分析人员来说,这是一份实用的工具和指南。