Я хочу разложить почасовые временные ряды с decompose
, ets
, или stl
или любую другую функцию. Ниже приведен пример код и его вывод:Разделить xts почасовые временные ряды
require(xts)
require(forecast)
time_index1 <- seq(from = as.POSIXct("2012-05-15 07:00"),
to = as.POSIXct("2012-05-17 18:00"), by="hour")
head(time_index1 <- format(time_index1, format="%Y-%m-%d %H:%M:%S",
tz="UTC", usetz=TRUE)
# [1] "2012-05-15 05:00:00 UTC" "2012-05-15 06:00:00 UTC"
# [3] "2012-05-15 07:00:00 UTC" "2012-05-15 08:00:00 UTC"
# [5] "2012-05-15 09:00:00 UTC" "2012-05-15 10:00:00 UTC"
head(time_index <- as.POSIXct(time_index1))
# [1] "2012-05-15 05:00:00 CEST" "2012-05-15 06:00:00 CEST"
# [3] "2012-05-15 07:00:00 CEST" "2012-05-15 08:00:00 CEST"
# [5] "2012-05-15 09:00:00 CEST" "2012-05-15 10:00:00 CEST"
Почему часовой пояс для time_index
изменений обратно в ЦЭСТ?
set.seed(1)
value <- rnorm(n = length(time_index1))
eventdata1 <- xts(value, order.by = time_index)
tzone(eventdata1)
# [1] ""
head(index(eventdata1))
# [1] "2012-05-15 05:00:00 CEST" "2012-05-15 06:00:00 CEST"
# [3] "2012-05-15 07:00:00 CEST" "2012-05-15 08:00:00 CEST"
# [5] "2012-05-15 09:00:00 CEST" "2012-05-15 10:00:00 CEST"
ets(eventdata1)
# ETS(A,N,N)
#
# Call:
# ets(y = eventdata1)
#
# Smoothing parameters:
# alpha = 1e-04
#
# Initial states:
# l = 0.1077
#
# sigma: 0.8481
#
# AIC AICc BIC
# 229.8835 230.0940 234.0722
decompose(eventdata1)
# Error in decompose(eventdata1) :
# time series has no or less than 2 periods
stl(eventdata1)
# Error in stl(eventdata1) :
# series is not periodic or has less than two periods
Когда я называю tzone
или indexTZ
нет часовых поясов, но index
ясно показывают, что время определяется с часовым поясом.
Кроме того, почему только ets
работает? Может ли он использоваться для разложения временного ряда?
Спасибо за ответ Джошуа :). Хотя маленький вопрос. Является ли частота = 24 значение для указания программе, что она является часовыми значениями? когда я закладываю разложение, я получаю две вещи, которые я не понимаю. Диапазон значений времени от 1.0 до 3.5 -> что это? а трендовые и случайные кривые имеют меньший временной интервал. Не могли бы вы объяснить, что здесь происходит? –
@SamyGeronymos: Я не понимаю процедуру разложения, поэтому я не могу помочь с этой частью. Это также означает, что я выбрал несколько «частоту = 24» несколько произвольно. Вы можете попробовать установить его на 1/24 ... но, опять же, я не эксперт здесь. –
@JoshuaUlrich, см. Объяснение атрибута 'frequency' здесь: http://robjhyndman.com/hyndsight/seasonal-periods/ – bonna