【发布时间】:2022-01-25 18:17:34
【问题描述】:
我尝试在时间序列数据集(股票 sp-500)上使用 ARIMA 模型。
在将数据输入到 ARIMA 模型之前,我想知道时间序列是否具有平稳性。
所以,我选择股票代码为“APA”(Apache Corporation)的股票,我使用包statsmodels.tsa.stattools中的adfuller来测试时间序列是否具有平稳性。
我还使用了 pmdarima.arima 包中的 ndiff 来找到适合 ARIMA 模型的差异数(据我了解,在 ARIMA 模型上设置此数字会使时间序列具有平稳性)。
而adfuller的p值大于0.05,所以我认为时间序列没有平稳性(我在这里找到结论:How to interpret adfuller test results?)
但是ndiff的结果是0。
据我了解,这有点奇怪,因为adfuller 表明时间序列没有平稳性,而ndiff 表明不需要设置 ARIMA 差分项。
我的问题是:如果时间序列非平稳,ndiff 的结果不应该大于0 吗?
数据集:https://www.kaggle.com/hanseopark/prediction-of-price-for-ml-with-finance-stats/data
完整代码:https://gist.github.com/bab6426c0e8a10472c924755c1f5ff67.git
【问题讨论】:
-
不是一个 programming 问题,因此这里离题了;请参阅stackoverflow.com/tags/machine-learning/info 中的介绍和注意事项。我建议您将其移至交叉验证(在您将屏幕截图替换为代码的实际文本之后)。
标签: python statistics time-series statsmodels arima