r - 在 R 中生成非平稳数据和 auto.arima

标签 r time-series analytics

我生成了自己虚构的销售数据以执行时间序列分析。

它应该代表一家成长中的公司,因此我与趋势合作。但是,我阅读了一些教程并经常阅读信息,即 auto.arima 函数不应预测非平稳时间序列。

但是我收到了有意义的结果,如果我要区分数据(我也是这样做的),输出就没有多大意义。

所以我的问题来了:我可以使用 auto.arima用我的数据函数,那显然有趋势?

最好的问候和提前致谢,
弗朗西斯科

eps <- rnorm(100, 30, 20)
trend <- seq(1, 100, 1)
trend <- 3 * trend
Sales <- trend + eps
timeframe<-seq(as.Date("2008/9/1"),by="month",length.out=100)
Data<-data.frame(Sales,timeframe) 

plot(Data$timeframe,Data$Sales)

ts=ts(t(Data[,1]))
plot(ts[1,],type='o',col="black")

md=rwf(ts[1,],h=12,drift=T,level=c(80,95))
auto.arima(ts[1,])

使用预测函数,我们可以绘制下一年的预期销售额:plot(forecast(auto.arima(ts[1,]),h=12))
将预测功能与我们的自动化 ARIMA 结合使用可以帮助我们计划下一个季度
forecast(auto.arima(ts[1,]),h=4)
plot(forecast(auto.arima(ts[1,])))

另一种方法是使用自动绘图功能
fc<-forecast(ts[1,])
autoplot(fc)

下一步是分析我们的时间序列。我执行 adf test ,它具有数据非平稳的零假设。
因此,对于 5% 的默认阈值,我们的 p 值必须大于 0.05 才能被证明是非平稳的。
library(tseries)
adf=adf.test(ts[1,])
adf

输出表明数据是非平稳的:
acf
acf=Acf(ts[1,])
Acf(ts[1,])

自相关几乎稳步下降,这也指向非平稳数据。做一个 kpss.test应该验证我们的数据是非平稳的,因为它的零假设与 adf 检验相反。

我们是否期望值小于 0.05
kpss=kpss.test(ts[1,])
kpss

我们得到 0.01 的 p 值,进一步证明数据有趋势
ndiffs(ts[1,])

diff.data=diff(ts[1,])
auto.arima(diff.data)
plot(forecast(diff.data))

最佳答案

回答您的问题 - ,您可以对非平稳数据使用预测包中的 auto.arima() 函数。

如果您查看 auto.arima() 的帮助文件(通过键入对数据进行一次差分,二阶意味着对数据进行两次差分等。您也可以选择不指定此参数,在这种情况下,auto.arima() 函数将使用“kpss”测试确定适当的差分顺序。还有其他单位根测试,例如 Augmented Dickey-Fuller,您可以通过设置 test="adf"选择在 auto.arima 函数中使用。这真的取决于你的喜好。

有关 auto.arima 功能的更多信息,请参阅第 11 页和后续页面:

https://cran.r-project.org/web/packages/forecast/forecast.pdf

关于r - 在 R 中生成非平稳数据和 auto.arima,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41213940/

相关文章:

pandas - 使用 Pandas 中的线性插值比较具有不同采样时间的时间序列

firebase - 在 Firebase Analytics 中查看事件的设备模型

Azure Log Analytics - 加入失败 - 数据类型不一致

python - 在 python 中精确复制 R 文本预处理

r - Microsoft Graph API - 错误 403 "Insufficient privileges to complete the operation"

替换数据框中出现的所有字符串

machine-learning - 时间序列预测: weekly vs daily predictions

数据库实现帮助: Time-Series data

r - 不同长度的 data.frames 的哑 rbind

r - 在浏览器中打开时,传单 map 未在 Rmarkdown、R Notebook 中呈现