为何Python Statsmodels中ARIMA在d≠0时默认无常数项?
为什么statsmodels的ARIMA在d≠0时默认无常数项?
首先得明确ARIMA的核心逻辑:ARIMA(p,d,q)本质是对原序列做d次差分,得到平稳序列后再用ARMA(p,q)建模。这个设定的原因主要有以下几点:
差分的核心目的是消除趋势:我们做差分就是为了把非平稳的趋势序列转换成平稳序列,平稳序列的核心特征之一是均值恒定。如果给差分后的平稳序列加常数项,相当于给原序列强行引入一个确定性的线性趋势——因为差分序列加常数,积分回去就是原序列多了一条直线趋势。但ARIMA的默认假设是:原序列的非平稳性来自随机趋势(比如随机游走),而非确定性的线性趋势,所以不需要额外加常数项。如果确实存在确定性趋势,你可以手动通过
trend='c'参数添加。避免模型误设:如果在d≠0时默认加常数项,很可能会让差分后的序列偏离平稳假设(因为常数项会改变差分序列的均值,导致它不再是零均值平稳过程),进而让后续的ARMA建模失去统计合理性。把是否加常数项的选择权交给用户,能避免这种不必要的误设。
遵循经典时间序列建模传统:绝大多数经典教材里,当用差分处理非平稳序列时,都假设差分后的平稳序列是零均值的,对应的ARMA模型不需要常数项。statsmodels的实现延续了这个传统,保证和主流理论框架一致。
内容的提问来源于stack exchange,提问作者ycenycute
相关产品推荐
相关产品推荐

