核心方法
拟合、预测、快速预测、交叉验证和绘图的方法
StatsForecast 的核心方法包括:
- StatsForecast.fit
- StatsForecast.predict
- StatsForecast.forecast
- StatsForecast.cross_validation
- StatsForecast.plot
来源
StatsForecast
*StatsForecast 类允许您高效地为大量时间序列拟合多个 StatsForecast 模型。它对至少包含 ids、times 和 targets 三列的 DataFrame df 进行操作。
该类具有内存高效的 StatsForecast.forecast 方法,可避免存储部分模型输出。而具有 Scikit-learn 接口的 StatsForecast.fit 和 StatsForecast.predict 方法则存储拟合好的模型。
StatsForecast 类提供了使用 Dask、Spark 和 Ray 后端的并行化工具。请参阅此处的分布式计算示例。*
来源
StatsForecast.fit
*拟合统计模型。
将 models 拟合到 DataFrame df 中的大量时间序列,并存储拟合好的模型以便后续检查。*
| 类型 | 默认值 | 详情 | |
|---|---|---|---|
| df | Union | 包含 ids、times、targets 和 exogenous 的 DataFrame。 | |
| prediction_intervals | Optional | None | 用于校准预测区间的配置 (保形预测)。 | 
| id_col | str | unique_id | 标识每个序列的列。 | 
| time_col | str | ds | 标识每个时间步长的列,其值可以是时间戳或整数。 | 
| target_col | str | y | 包含目标的列。 | 
| 返回 | StatsForecast | 返回带有存储的 StatsForecast拟合models。 | 
来源
StatsForecast.predict
*预测统计模型。
使用存储的拟合 models 从 DataFrame df 预测大量时间序列。*
| 类型 | 默认值 | 详情 | |
|---|---|---|---|
| h | int | 预测范围。 | |
| X_df | Union | None | 包含 ids、times 和未来外部因子的 DataFrame。 | 
| level | Optional | None | 用于预测区间的置信水平,介于 0 到 100 之间。 | 
| 返回 | pandas 或 polars DataFrame | DataFrame,包含用于点预测和概率预测的 models列所有拟合 models的预测。 | 
来源
StatsForecast.fit_predict
*使用统计模型进行拟合和预测。
此方法避免了对象存储带来的内存负担。它类似于 Scikit-Learn 的 fit_predict 方法,但不存储信息。它需要提前知道预测范围 h。
与 StatsForecast.forecast 不同,此方法存储部分模型输出。*
| 类型 | 默认值 | 详情 | |
|---|---|---|---|
| h | int | 预测范围。 | |
| df | Union | 包含 ids、times、targets 和 exogenous 的 DataFrame。 | |
| X_df | Union | None | 包含 ids、times 和未来外部因子的 DataFrame。 | 
| level | Optional | None | 用于预测区间的置信水平,介于 0 到 100 之间。 | 
| prediction_intervals | Optional | None | 用于校准预测区间的配置 (保形预测)。 | 
| id_col | str | unique_id | 标识每个序列的列。 | 
| time_col | str | ds | 标识每个时间步长的列,其值可以是时间戳或整数。 | 
| target_col | str | y | 包含目标的列。 | 
| 返回 | Union | DataFrame,包含用于点预测和概率预测的 models列所有拟合 models的预测。 | 
来源
StatsForecast.forecast
*内存高效的预测。
此方法避免了对象存储带来的内存负担。它类似于 Scikit-Learn 的 fit_predict 方法,但不存储信息。它需要提前知道预测范围 h。*
| 类型 | 默认值 | 详情 | |
|---|---|---|---|
| h | int | 预测范围。 | |
| df | Union | 包含 ids、times、targets 和 exogenous 的 DataFrame。 | |
| X_df | Union | None | 包含 ids、times 和未来外部因子的 DataFrame。 | 
| level | Optional | None | 用于预测区间的置信水平,介于 0 到 100 之间。 | 
| fitted | bool | False | 存储样本内预测。 | 
| prediction_intervals | Optional | None | 用于校准预测区间的配置 (保形预测)。 | 
| id_col | str | unique_id | 标识每个序列的列。 | 
| time_col | str | ds | 标识每个时间步长的列,其值可以是时间戳或整数。 | 
| target_col | str | y | 包含目标的列。 | 
| 返回 | Union | DataFrame,包含用于点预测和概率预测的 models列所有拟合 models的预测。 | 
来源
StatsForecast.forecast_fitted_values
*访问样本内预测。
执行 StatsForecast.forecast 后,您可以访问每个模型的样本内预测值。要获取它们,您需要将 fitted=True 传递给 StatsForecast.forecast 方法,然后使用 StatsForecast.forecast_fitted_values 方法。*
来源
StatsForecast.cross_validation
*时间序列交叉验证。
通过多个训练窗口(链式或滚动方式)高效地拟合一系列 StatsForecast 模型。
StatsForecast.models 的速度有助于克服这种评估技术的高计算成本。时间序列交叉验证通过增加测试集的长度和多样性,提供了更好的模型泛化能力衡量标准。*
| 类型 | 默认值 | 详情 | |
|---|---|---|---|
| h | int | 预测范围。 | |
| df | Union | 包含 ids、times、targets 和 exogenous 的 DataFrame。 | |
| n_windows | int | 1 | 用于交叉验证的窗口数量。 | 
| step_size | int | 1 | 每个窗口之间的步长。 | 
| test_size | Optional | None | 测试集长度。如果传递,将 n_windows设置为None。 | 
| input_size | Optional | None | 每个窗口的输入大小,如果不是 None,则为滚动窗口。 | 
| level | Optional | None | 用于预测区间的置信水平,介于 0 到 100 之间。 | 
| fitted | bool | False | 存储样本内预测。 | 
| refit | Union | True | 是否为每个窗口重新拟合模型。 如果为整数,则每 refit个窗口训练模型。 | 
| prediction_intervals | Optional | None | 用于校准预测区间的配置 (保形预测)。 | 
| id_col | str | unique_id | 标识每个序列的列。 | 
| time_col | str | ds | 标识每个时间步长的列,其值可以是时间戳或整数。 | 
| target_col | str | y | 包含目标的列。 | 
| 返回 | Union | DataFrame,包含用于点预测和概率预测的样本内 models列所有拟合 models的预测。 | 
来源
StatsForecast.cross_validation_fitted_values
*访问样本内交叉验证预测。
执行 StatsForecast.cross_validation 后,您可以访问每个模型和窗口的样本内预测值。要获取它们,您需要将 fitted=True 传递给 StatsForecast.cross_validation 方法,然后使用 StatsForecast.cross_validation_fitted_values 方法。*
来源
StatsForecast.plot
绘制预测和样本内值。
| 类型 | 默认值 | 详情 | |
|---|---|---|---|
| df | Union | 包含 ids、times、targets 和 exogenous 的 DataFrame。 | |
| forecasts_df | Union | None | 包含 ids、times 和 models 的 DataFrame。 | 
| unique_ids | Union | None | 要绘制的 ids。如果为 None,则随机选择。 | 
| plot_random | bool | True | 随机选择要绘制的时间序列。 | 
| models | Optional | None | 要绘制的模型列表。 | 
| level | Optional | None | 如果传递,则绘制的预测区间列表。 | 
| max_insample_length | Optional | None | 要绘制的最大训练/样本内观测数量。 | 
| plot_anomalies | bool | False | 为每个预测区间绘制异常点。 | 
| engine | str | matplotlib | 用于绘图的库。'plotly'、'plotly-resampler' 或 'matplotlib'。 | 
| id_col | str | unique_id | 标识每个序列的列。 | 
| time_col | str | ds | 标识每个时间步长的列,其值可以是时间戳或整数。 | 
| target_col | str | y | 包含目标的列。 | 
| resampler_kwargs | Optional | None | 要传递给 plotly-resampler 构造函数的 Kwargs。 如需进一步自定义 (“show_dash”),请调用方法, 存储绘图对象并向其添加额外参数 show_dash方法。 | 
来源
StatsForecast.save
该函数将保存带有特定设置的 StatsForecast 类,以使其可重现。
| 类型 | 默认值 | 详情 | |
|---|---|---|---|
| path | Union | None | 要保存的文件路径。如果为 None,将在当前目录中使用当前的 UTC 时间戳创建文件。 | 
| max_size | Optional | None | StatsForecast 对象不应超过此大小。 可用字节命名:[‘B’, ‘KB’, ‘MB’, ‘GB’] | 
| trim | bool | False | 删除任何推理不需要的属性。 | 
来源
StatsForecast.load
自动将模型加载到就绪的 StatsForecast 中。
| 类型 | 详情 | |
|---|---|---|
| path | Union | 保存的 StatsForecast 文件路径。 | 
| 返回 | sf: StatsForecast | 之前保存的 StatsForecast | 
其他
整数日期戳
StatsForecast 类也可以接收整数作为日期戳,以下示例展示了如何操作。
外部回归因子
y 之后的每一列都被视为外部回归因子,并将传递给允许使用它们的模型。如果您使用它们,则必须向 StatsForecast.forecast 方法提供未来的值。
预测区间
您可以将参数 level 传递给 StatsForecast.forecast 方法来计算预测区间。目前并非所有模型都能计算它们,因此我们只获取已实现该功能的模型的区间。
保形预测区间
您也可以使用以下代码添加保形区间。
您也可以使用以下代码计算所有支持保形区间的模型的保形区间,

