построение графика с данными временных рядов - PullRequest
1 голос
/ 17 января 2012

Я пытаюсь использовать stl для получения разбивки сезонных данных и трендов в моих данных временных рядов.У меня есть тиковые данные, и я создал объект ts.

Я запустил SQL-запрос, чтобы получить данные в приведенной ниже форме

    > x
         datetime       price
1  2010-09-08 1501        9110
2  2010-09-08 1501        9110
3  2010-09-08 1501        9110
4  2010-09-08 1501        9110
5  2010-09-08 1501        9115
6  2010-09-08 1501        9115
7  2010-09-08 1501        9110
8  2010-09-08 1502        9115
9  2010-09-08 1502        9115
10 2010-09-08 1502        9115
11 2010-09-08 1503        9120
12 2010-09-08 1503        9115
13 2010-09-08 1503        9115
14 2010-09-08 1503        9115
15 2010-09-08 1503        9115
16 2010-09-08 1503        9115
17 2010-09-08 1503        9115
18 2010-09-08 1503        9115
19 2010-09-08 1503        9115
20 2010-09-08 1503        9115
21 2010-09-08 1503        9115
22 2010-09-08 1503        9110
23 2010-09-08 1503        9105
24 2010-09-08 1503        9105
25 2010-09-08 1503        9110
26 2010-09-08 1504        9110
27 2010-09-08 1504        9110
28 2010-09-08 1504        9110
29 2010-09-08 1504        9110
30 2010-09-08 1504        9115
31 2010-09-08 1504        9115
32 2010-09-08 1504        9115
33 2010-09-08 1504        9115
34 2010-09-08 1504        9115
35 2010-09-08 1504        9115
36 2010-09-08 1504        9115
37 2010-09-08 1504        9120

, и преобразовал их в ts, запустивследующее:

> xt<-ts(x[,2])
> xt
Time Series:
Start = 1 
End = 37 
Frequency = 1 
 [1] 9110 9110 9110 9110 9115 9115 9110 9115 9115 9115 9120 9115 9115 9115 9115
[16] 9115 9115 9115 9115 9115 9115 9110 9105 9105 9110 9110 9110 9110 9110 9115
[31] 9115 9115 9115 9115 9115 9115 9120

> drg<-stl(log(xt),"per")
Error in stl(log(xt), "per") : 
  series is not periodic or has less than two periods

> is.ts(xt)
[1] TRUE

любое предложение о том, как я могу исправить ошибку, чтобы увидеть разбивку различных компонентов тренда ...

1 Ответ

11 голосов
/ 17 января 2012

Ошибка прямо здесь, чтобы вы увидели

 > drg<-stl(log(xt),"per")
 Error in stl(log(xt), "per") : 
   series is not periodic or has less than two periods

Для функции stl() требуется как объект временной серии , так и частота (или равное приращение), так что часть сезонная имеет какой-то смысл. Для более длинных макроэкономических рядов это обычно 1/12 для месячных или 1/4 для квартальных данных. См. help(ts) для получения подробной информации и более подробно рассмотрите примеры для ts() и stl() и тип используемых там данных.

Делать это с ежедневными бизнес-данными ... сложнее, так как календарь, ну, нерегулярный. С вашими внутри-дневными данными вы должны придумать какую-то схему. Такие данные принципиально отличаются: рынки открываются и закрываются, тогда как макроданные могут быть концептуализированы как непрерывные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...