在时间序列中创建平稳性的问题

Posted

技术标签:

【中文标题】在时间序列中创建平稳性的问题【英文标题】:Problem with creating stationarity in a time series 【发布时间】:2019-04-15 19:36:58 【问题描述】:

我的代码有问题。我想用 R 中的 ARIMA 模型预测股票收益,但我无法让我的数据保持稳定。除了将股票价格转化为回报之外,我还尝试了 diff 函数来区分我的时间序列。我总是假设数据通过使用这两种方法之一变得静止。但是,当我运行增强的 dickey fuller 测试(R 中的 adf.test)时,我的 p 值显示数据保持非平稳。我做错了什么?

enter image description here

提前致谢。

【问题讨论】:

确保在文本中而不是在图像中包含代码。请参阅***.com/questions/5963269/…。 【参考方案1】:

您必须将时间序列分解为数据、季节性、趋势和残差:

library('forecast')
library('tseries')

data$moving_average=ma(data$original, order=7)
moving_average = ts(na.omit(data$moving_average), frequency=30)
decomposition = stl(moving_average, s.window="periodic")
stationary <- seasadj(decomposition)
plot(decomposition)

你会得到:

【讨论】:

首先,谢谢。但是,我计算的回报怎么可能是平稳的,但是一旦我将它们转换为时间序列格式,它们就会变成非平稳的?它实际上是相同的数据,只是格式不同。还是我错过了什么?

以上是关于在时间序列中创建平稳性的问题的主要内容,如果未能解决你的问题,请参考以下文章

在 Clickhouse 中创建类似 SQL 的序列

在 Pandas 中创建时间范围

如何在 MySQL 中创建序列?

在python中创建日期时间索引

使用 JPA 以编程方式在 Oracle 中创建序列

在 vue 中创建项目需要时间