使用Kats做销量预测时,是否支持输入协变量(如广告支出)?
在Kats中使用协变量进行销量预测的实现方法
完全可以实现将未来广告支出作为协变量输入到Kats的预测模型中,以下是具体的操作步骤和代码示例:
1. 确认支持协变量的模型
Kats中多数主流预测模型都支持协变量输入,包括但不限于:
- Prophet
- ARIMA/SARIMA
- LSTM
- TBATS
注意:部分简单模型(如Naive、SNaive)不支持协变量,需避开这类模型。
2. 数据准备要求
需要两类数据:
- 历史数据:包含时间戳、目标变量(销量)、对应历史广告投入(协变量)
- 未来协变量数据:包含预测时间段的时间戳、已确定的未来广告支出数据
两类数据的时间列需为datetime类型,且未来数据的时间范围要和预测步数完全匹配。
3. 具体代码实现
以Prophet模型为例(最常用的支持协变量的模型之一):
导入依赖
import pandas as pd from kats.consts import TimeSeriesData from kats.models.prophet import ProphetModel, ProphetParams
构造历史时间序列(含协变量)
假设你已经有了包含历史销量和广告投入的DataFrame historical_df,转换为Kats的TimeSeriesData格式:
# 指定时间列、目标值列、协变量列 ts_data = TimeSeriesData( historical_df, time_col='time', value_col='sales', covariates_col=['ad_spend'] )
初始化并训练模型
# 设置Prophet模型参数(可根据业务调整) prophet_params = ProphetParams(seasonality_mode='additive', yearly_seasonality=True) model = ProphetModel(data=ts_data, params=prophet_params) model.fit()
准备未来协变量数据并预测
假设你已经有了未来4周的广告支出数据future_ad_df,执行预测(这里预测28天,对应4周):
# steps对应预测的时间步数,future_covariates传入未来协变量数据 forecast_result = model.predict(steps=28, future_covariates=future_ad_df)
forecast_result中会包含预测的销量值,以及对应的置信区间等信息。
4. 其他模型的协变量使用方式
对于ARIMA、LSTM等模型,协变量的传入逻辑类似:
- 历史数据需包含协变量列并传入
TimeSeriesData - 预测时通过
future_covariates参数传入未来协变量数据
你可以参考对应模型的官方文档确认具体参数细节。
内容的提问来源于stack exchange,提问作者Funzo
相关产品推荐
相关产品推荐

