调用adfuller()时Google Colab占满RAM崩溃该如何解决
问题原因
statsmodels的adfuller为纯CPU实现,完全无法调用Colab GPU资源,你启用的GPU对该计算无任何优化作用- ADF检验默认使用
autolag='AIC'逻辑自动搜索最优滞后阶数,当输入的时间序列长度较高时,遍历计算所有滞后阶数对应信息准则的内存占用会随序列长度快速上升,和原始数据集总大小没有直接关联
解决方法
- 方案1:手动指定固定滞后阶数
跳过高消耗的自动搜索步骤,通常设置1~12阶即可覆盖绝大多数时间序列的周期特征
# maxlag设为固定值,关闭自动滞后搜索 result = adfuller(dataset.Sales.dropna(), maxlag=12, autolag=None)
- 方案2:对细颗粒度序列做降采样
如果你的时间序列颗粒度过高(例如分钟级、小时级),可先聚合为日/周级序列再检验,大幅降低计算量的同时对平稳性判断结果影响极小
# 示例:索引为datetime格式时,降采样为周度销售额序列 weekly_sales = dataset.Sales.resample('W').sum().dropna() result = adfuller(weekly_sales)
- 方案3:拆分序列分批检验
如果需要保留原始颗粒度,可将长序列拆分为多个等长子序列分别计算ADF结果,取统计量和p值的均值即可,结论可靠性不受影响
内容的提问来源于stack exchange,提问作者Stranger
相关产品推荐
相关产品推荐

