【发布时间】:2014-07-18 16:20:10
【问题描述】:
我有一个时间序列,其中包含一些建筑物每小时的燃气消耗量。我需要用 ARIMA 和 R 预测它们,但我不是 R 专家。
我试图查看一周内是否有周期性。
来源:
fmt <- '%Y-%m-%d %H:%M:%S'
dat <- read.zoo('740.csv', format=fmt, header=TRUE, sep=',', tz='GMT', stringsAsFactors=FALSE)
#suppress warning of duplicates index in zoo
dat.ts <- dat2$gas..m3.[duplicated(index(dat2$gas..m3.)) == FALSE]
dat.ts <- as.xts(dat2.ts)
eats.week <- dat.ts["2008-02-04::2008-02-08"]
fit <- stl(eats.week, s.window="periodic")
头:
2008-02-04 00:00:00 53
2008-02-04 01:00:00 54
2008-02-04 02:00:00 55
2008-02-04 03:00:00 53
2008-02-04 04:00:00 54
2008-02-04 05:00:00 53
2008-02-04 06:00:00 66
2008-02-04 07:00:00 55
2008-02-04 08:00:00 112
2008-02-04 09:00:00 54
2008-02-04 10:00:00 113
2008-02-04 11:00:00 55
2008-02-04 12:00:00 108
2008-02-04 13:00:00 55
2008-02-04 14:00:00 101
2008-02-04 15:00:00 54
2008-02-04 16:00:00 99
2008-02-04 17:00:00 57
2008-02-04 18:00:00 92
2008-02-04 19:00:00 65
为什么不是周期性的? 我需要指定频率吗? (以防万一?)
【问题讨论】:
-
请提供一些示例数据供其他人测试和调整您的代码,例如将
dput(head(dat, 20))的输出添加到您的问题中。 -
你的数据的时间跨度是多少?当您的时间序列小于一个完整观察窗口长度的两倍时,通常会发生这种情况。例如,如果我每周采样一次数据并使用
frequency = 52创建一个ts对象,但只有100 周的数据,stl()将产生错误。另外,是的,您应该在ts()中明确指定频率/周期。 -
@nrussell 数据每小时采样一次。如您所见,在我分析一周的样本中
标签: r stl-decomposition