核心方法
拟合、预测、快速预测、交叉验证和绘图的方法
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
方法来计算预测区间。目前并非所有模型都能计算它们,因此我们只获取已实现该功能的模型的区间。
保形预测区间
您也可以使用以下代码添加保形区间。
您也可以使用以下代码计算所有支持保形区间的模型的保形区间,