【问题标题】:Converting Data for Timeseries analysis using ets()使用 ets() 转换数据以进行时间序列分析
【发布时间】:2016-10-03 08:17:59
【问题描述】:

我有一个包含以下数据的 csv 文件:

Year    1000 Barrels/Day
1/15/2000   239
2/15/2000   267
3/15/2000   162
4/15/2000   264
5/15/2000   170
6/15/2000   210
7/15/2000   264
8/15/2000   405
9/15/2000   352
10/15/2000  337

我运行以下代码将其转换为时间序列格式进行处理。

library(xts)
library(forecast)
df<- read.csv("US-OIL.csv")
stocks <- xts(df[,-1], order.by=as.Date(df[,1], "%m/%d/%Y"))
ets(stocks)

但是当我运行最后一行时,我得到了一个 ETS(A,N,N) 模型的输出。 我不确定为什么会发生这种情况,因为当我在library(fpp) 中使用预加载的数据集elecequip 运行ets() 时,我得到ETS(M,Ad,M) 的输出 不知道为什么会出现这种差异。请在这件事上提供您的 cmets。

【问题讨论】:

    标签: r time-series


    【解决方案1】:

    您让 ets 自动选择基于 AIC、AICcm 或 BIC 的模型。 elecquip数据集的数据不同,所以模型也不同。

    参见幻灯片 24:

    http://robjhyndman.com/talks/RevolutionR/6-ETS.pdf

    【讨论】:

    • 这是否意味着我的数据集没有任何季节性趋势?你能推荐一个ets() 的替代品吗?它可以用来根据这个数据预测接下来的 5 个时期。???谢谢
    • 我的建议是您阅读预测包作者的这本很棒的书:otexts.org/fpp。我认为您需要更多数据来进行预测,因为您甚至没有一整年我不知道您如何估计季节性(robjhyndman.com/hyndsight/short-time-series)。我会预测接下来 5 个时期的平均值 (267)。
    • 以上是我附上的数据样本。实际数据由 172 行组成(从 2000 年到 2014 年)。此外,当我尝试运行HoltWinters(stocks) 时,我收到以下错误Error in decompose(ts(x[1L:wind], start = start(x), frequency = f), seasonal) : time series has no or less than 2 periods。有cmets吗??
    • 提供一个可重现的例子。也接受此答案为正确并打开一个新问题。
    • 但这不是解决办法吗??我将为另一部分提出一个新问题。但你推测我没有超过一年的数据,而我有。所以问题仍然存在,为什么模型简单?要我提供数据转储吗
    猜你喜欢
    • 2021-12-05
    • 2022-01-04
    • 1970-01-01
    • 2021-05-17
    • 2017-05-12
    • 2021-09-16
    • 1970-01-01
    • 2018-04-11
    相关资源
    最近更新 更多