Я относительно новичок в R, поэтому, пожалуйста, несите меня. Я пытаюсь справиться с основным нерегулярным анализом временных рядов.R: использование stl() на объекте xts
Вот как выглядит мой файл данных, около 40 тыс. Строк. Интервал не всегда ровно 20 секунд.
Time, Avg
04/03/2015 00:00:23,20.24
04/03/2015 00:00:43,20.38
04/03/2015 00:01:03,20.53
04/03/2015 00:01:23,20.54
04/03/2015 00:01:43,20.53
data <- read.zoo("data.csv",sep=",",tz='',header=T,format='%d/%m/%Y %H:%M:%S')
Я рад агрегировать по минутам
data <- to.minutes(as.xts(data))
Использование «открытой» колонки в качестве примера
head(data[,1])
as.xts(data).Open
2015-03-04 00:00:43 20.24
2015-03-04 00:01:43 20.53
2015-03-04 00:02:43 20.47
2015-03-04 00:03:43 20.38
2015-03-04 00:04:43 20.05
2015-03-04 00:05:43 19.84
data <- data[,1]
А вот где все это разваливается для меня
fit <- stl(data, t.window=15, s.window="periodic", robust=TRUE)
Error in stl(data, t.window = 15, s.window = "periodic", robust = TRUE) :
series is not periodic or has less than two periods
Я искал ошибку m но мне это не совсем понятно. Период = частота? Для моего набора данных я ожидал бы, что сезонный компонент будет еженедельным.
frequency(data) <- 52
fit <- stl(data, t.window=15, s.window="periodic", robust=TRUE)
Error in na.fail.default(as.ts(x)) : missing values in object
?
head(as.ts(data))
[1] 20.24 NA NA NA NA NA
Ух, что?
Что я делаю неправильно? Как мне подготовить объект xts, чтобы он мог правильно передать его в stl()?
спасибо.
Будет легче помочь, если вы предоставите [воспроизводимый пример] (http://stackoverflow.com/q/5963269/271616). –