快速开始
StatsForecast 最小示例
StatsForecast 遵循 sklearn 模型 API。对于这个最小示例,您将创建 StatsForecast 类的一个实例,然后调用它的 fit 和 predict 方法。如果您对速度要求不是特别高,并且想探索拟合值和参数,我们推荐此选项。
提示
如果您想预测多个序列,我们建议使用
forecast方法。请查看这篇多时间序列入门指南。
StatsForecast 的输入始终是采用长格式的数据帧,包含三列:unique_id、ds 和 y
- 
unique_id(字符串、整数或类别)表示序列的标识符。
- 
ds(日期戳)列应采用 Pandas 期望的格式,日期格式最好为 YYYY-MM-DD,时间戳格式最好为 YYYY-MM-DD HH:MM:SS。
- 
y(数值)表示我们希望预测的度量值。
作为一个例子,我们来看看 US Air Passengers 数据集。该时间序列包含 1949 年至 1960 年美国航空公司乘客的月总数。CSV 文件可从此处获取。
我们假设您已经安装了 StatsForecast。请查看这篇指南,了解如何安装 StatsForecast的说明。
首先,我们将导入数据
| 唯一ID | 日期戳 | 值 y | |
|---|---|---|---|
| 0 | AirPassengers | 1949-01-01 | 112 | 
| 1 | AirPassengers | 1949-02-01 | 118 | 
| 2 | AirPassengers | 1949-03-01 | 132 | 
| 3 | AirPassengers | 1949-04-01 | 129 | 
| 4 | AirPassengers | 1949-05-01 | 121 | 
我们通过实例化一个新的StatsForecast 对象来拟合模型,该对象需要两个参数:https://nixtla.github.io/statsforecast/src/core/models.html * models:模型列表。从模型中选择您想要使用的模型并导入它们。本例中,我们将使用AutoARIMA 模型。我们将 season_length 设置为 12,因为我们预期每 12 个月出现一次季节性效应。(参见:季节周期)
- freq:表示数据频率的字符串。(参见pandas 可用频率别名。)
任何设置都会传递给构造函数。然后您调用其 fit 方法并传入历史数据帧。
注意
StatsForecast 通过 Numba 使用 JIT 编译实现了惊人的速度。首次调用 statsforecast 类时,fit 方法可能需要大约 5 秒。第二次调用(Numba 编译设置后)应该不到 0.2 秒。
predict 方法接受两个参数:预测未来 h 步(horizon)和 level。
- 
h(int):表示预测未来 h 步。在本例中,即提前 12 个月。
- 
level(浮点数列表):此可选参数用于概率预测。设置预测区间的level(或置信百分位)。例如,level=[90]意味着模型预期真实值有 90% 的时间落在此区间内。
这里的 forecast 对象是一个新的数据帧,包含一列模型名称和 y hat 值,以及不确定性区间的列。
| 唯一ID | 日期戳 | AutoARIMA | AutoARIMA-lo-90 | AutoARIMA-hi-90 | |
|---|---|---|---|---|---|
| 7 | AirPassengers | 1961-08-01 | 633.236389 | 590.009033 | 676.463745 | 
| 8 | AirPassengers | 1961-09-01 | 535.236389 | 489.558899 | 580.913940 | 
| 9 | AirPassengers | 1961-10-01 | 488.236389 | 440.233795 | 536.239014 | 
| 10 | AirPassengers | 1961-11-01 | 417.236389 | 367.016205 | 467.456604 | 
| 11 | AirPassengers | 1961-12-01 | 459.236389 | 406.892456 | 511.580322 | 
您可以通过调用 StatsForecast.plot 方法并传入您的 forecast 数据帧来绘制预测结果。
后续步骤

