R xts: не удается создать объект xts для данных многомерной панели

У меня возникли проблемы с созданием объекта xts для данных многомерной панели. Данные выглядят так:

Object  Factor  Quarter     Units
A       x       01.01.2013  255
A       x       01.04.2013  240
A       x       01.07.2013  310
A       x       01.10.2013  420
A       x       01.01.2014  520
A       y       01.01.2013  170
A       y       01.04.2013  160
A       y       01.07.2013  207
A       y       01.10.2013  280
A       y       01.01.2014  347
B       x       01.01.2013  1199
B       x       01.04.2013  1330
B       x       01.07.2013  1450
B       x       01.10.2013  1214
B       x       01.01.2014  1429
B       y       01.01.2013  827
B       y       01.04.2013  764
B       y       01.07.2013  924
B       y       01.10.2013  844
B       y       01.01.2014  893

Ориентируюсь на этот пост здесь, мой код R выглядит так:

library(xts)
Data2 <- read.csv('TestData.csv')
Data2List <- split(Data2, Data2$Object)
xtsData2 <- lapply(Data2List, function(x){
  attrCol <- c("Object", "Factor")
  numCol <- c("Units")
  y <- xts(x[,numCol], as.Date(x$Quarter, format = '%d.%m.%Y'))
  xtsAttributes(y) <- as.list(x[1,attrCol]) 
  y
})

Резюме A выглядит так, для меня это выглядит нормально:

str(xtsData2$A)
An ‘xts’ object on 2013-01-01/2014-01-01 containing:
  Data: int [1:10, 1] 255 170 240 160 310 207 420 280 520 347
  Indexed by objects of class: [Date] TZ: UTC
  xts Attributes:  
List of 2
 $ Object: Factor w/ 2 levels "A","B": 1
 $ Factor: Factor w/ 2 levels "x","y": 1

Но как-то сбивается периодичность:

 > periodicity(xtsData2$A)
0 seconds periodicity from 2013-01-01 to 2014-01-01 

Это также видно в функции axTicksByTime:

axTicksByTime(xtsData2$A)
Jan 01 00:00:00 Apr 01 00:00:00 Jul 01 00:00:00 Okt 01 00:00:00 Jan 01 00:00:00 Jan 01 00:00:00 
              1               3               5               7               9              10 

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

Как правильно ввести многомерные данные, если R все еще распознает формат данных?


person s-heins    schedule 11.09.2015    source источник
comment
xts не предназначен для обработки временных рядов панелей. periodicity возвращает ноль, потому что в вашем индексе есть повторяющиеся записи для каждого наблюдения, а медианная разница в значениях индекса равна нулю. То, как вы правильно вводите многомерные данные в xts, зависит от того, что вы хотите делать с данными, которые вы не указали. Поэтому я мог бы помочь, если бы вы могли предоставить более подробную информацию о том, что вы в конечном итоге хотите сделать.   -  person Joshua Ulrich    schedule 11.09.2015
comment
Эй, Джошуа, спасибо за ответ! На данный момент у меня есть прогноз для каждого объекта (A/B/...) в единицах, и я хочу сделать прогноз для факторов (x/y/...) в процентах от этого количества единиц. Итак, скажем, прогноз для A составляет 60 000, я бы хотел иметь прогноз, например, 30%/18 000 для x и 70 %/42 000 для y. Однако мой пример из реальной жизни немного сложнее: у меня есть 62 объекта, 21 фактор и различные типы единиц, для которых я хочу изучить корреляции, чтобы сделать хороший прогноз.   -  person s-heins    schedule 14.09.2015
comment
Кажется, вы должны просто сделать свои данные широкими. одна строка на отметку времени, один столбец на прогноз или фактор. Затем ваша модель работает с этими столбцами. если ваши факторы существуют независимо, то у вас может быть объект для факторов и один для прогнозов, но из вашего примера не ясно, насколько они разделимы/   -  person Brian G. Peterson    schedule 19.09.2015