【问题标题】:How to Create a R TimeSeries for Hourly data如何为每小时数据创建 R 时间序列
【发布时间】:2013-06-13 21:58:57
【问题描述】:

我有一个从 2012-05-15-0700 到 2013-05-17-1800 的事件的每小时快照。如何在此数据上创建时间序列并对其执行 HoltWinters?

我尝试了以下

EventData<-ts(Eventmatrix$X20030,start=c(2012,5,15),frequency=8000) 
HoltWinters(EventData)

但我在分解时遇到错误(ts(x[1L:wind], start = start(x), frequency = f),seasonal) :时间序列的周期数不少于或少于 2 个

我应该从频率中输入什么值?

【问题讨论】:

  • Hyndman 的 postanswer 解释了您应该选择哪个频率。除了使用@dickoa 建议的xts,您还可以使用forecastpackage 中的msts 函数/对象,还有一个额外的好处,它允许您指定多个季节/周期。该包还包括一个函数hw,它是forecast(ets(...))的方便包装函数。

标签: r


【解决方案1】:

我认为您应该考虑使用 forecast 包中的 ets 来执行指数平滑。阅读this post 以比较HoltWintersets

require(xts)
require(forecast)

time_index <- seq(from = as.POSIXct("2012-05-15 07:00"), 
                  to = as.POSIXct("2012-05-17 18:00"), by = "hour")
set.seed(1)
value <- rnorm(n = length(time_index))

eventdata <- xts(value, order.by = time_index)
ets(eventdata)

现在如果您想了解更多关于ets 的语法,请查看该函数的帮助和Rob Hyndman 的在线书籍(Chap 7 section 6

【讨论】:

  • 谢谢,但假设我想使用 tf 函数创建一个 TimeSeries,对于这个每小时数据,如何进行。抱歉,我是 R 新手。
  • @DotDot xts 扩展了ts 类,并且每个与ts 一起使用的函数都与常规xts 对象一起使用。所以基本上,没有必要使用ts 来获取每小时数据。 zootimeSeries 包也可用于创建每小时时间序列。
【解决方案2】:

请看下面可能回答问题的帖子:

Decompose xts hourly time series

它解释了如何使用 POSIXct 对象创建 xts 对象。这个 xts 对象可以手动设置它的频率属性,然后您可能就可以使用 HoltWinters

【讨论】:

  • 这应该是一条评论!
  • @PareshMayani 此海报没有足够的声誉来发表评论。 Samy,仅链接的答案不适合 Stack Overflow。您能否编辑您的答案以包含链接答案中的详细信息,以阐明如何将其用于此问题?
  • @josilber 是的,同意!我正要发表另一条评论,但后来失去了联系!感谢您发表有用的评论。
猜你喜欢
  • 2016-02-20
  • 1970-01-01
  • 1970-01-01
  • 2015-03-04
  • 2014-05-03
  • 1970-01-01
  • 2017-06-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多