You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用sm.tsa.statespace.SARIMAX拟合自回归遇频率警告,求设置方法

解决SARIMAX的频率信息警告问题

嘿,这个警告我之前也碰到过!本质是你的训练数据train的时间索引没有明确设置频率,statsmodels只能自动推断为MS(每月起始),虽然推断通常没问题,但手动指定能彻底消除警告,也让代码逻辑更清晰。

这里有两种简单的解决方法,你可以根据自己的需求选:

方法1:提前给时间序列设置频率

如果你的train数据的索引已经是datetime类型,可以在预处理阶段直接给它指定频率:

# 将train的时间索引设置为每月起始频率(MS)
train = train.asfreq('MS')

# 再正常拟合模型
fit1 = sm.tsa.statespace.SARIMAX(
    train.Demand, 
    order=(1, 0, 0), 
    enforce_stationarity=False, 
    enforce_invertibility=False
).fit()

要是你是刚创建datetime索引,也可以一步到位指定频率:

# 创建datetime索引时直接指定freq参数
train.index = pd.to_datetime(train.index, freq='MS')

方法2:直接在SARIMAX模型中指定freq参数

SARIMAX类本身支持freq参数,不用修改原数据,直接把频率字符串传进去就行:

fit1 = sm.tsa.statespace.SARIMAX(
    train.Demand, 
    order=(1, 0, 0), 
    enforce_stationarity=False, 
    enforce_invertibility=False,
    freq='MS'  # 这里手动指定频率
).fit()

常见频率代码参考

根据你的数据周期选对应的字符串就行:

  • MS:每月第一天(和警告里推断的频率一致)
  • M:每月最后一天
  • D:每日
  • W:每周
  • Q:每季度(季度末)
  • QS:每季度起始

这样修改后,警告就会消失,模型也会严格按照你指定的频率来处理时间序列啦。

内容的提问来源于stack exchange,提问作者Lê Ngọc Thạch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:42:08