Доступ к элементу времени во временном ряду - PullRequest
1 голос
/ 27 января 2012

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

Обычно я ставлю ежеквартальные цели на основе данных за последние несколько лет.

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

В идеале я хочу сделать это автоматически в скрипте, который я запускаю.

Например, допустим, у меня есть месячные данные за прошлый год, и я прогнозирую год

library(forecast)
StartingData <- (1:12)+rnorm(1:12)
forecast(ts(StartingData,start=c(2011,1), frequency =12),h=12)

Затем я получаю данные за следующие три месяца, которые равны «10» вместо продолжения линейного тренда.

StartingData[13:15] <- 10
forecast(ts(StartingData,start=c(2011,1), frequency =12),h=12)

Что я хотел бы сделать, так это получить доступ к данным прогноза, чтобы выполнить это сравнение по значению времени, указанному в выходных данных, чтобы сравнить мой новый прогноз с моим старым прогнозом. Однако я не могу найти объект, связанный со значением времени строки.

Есть ли способ получить доступ к этим значениям времени, чтобы помочь мне сопоставить старый прогноз с новым прогнозом? Или мне нужно написать код, чтобы выяснить, сколько данных в моем новом наборе данных больше, чем в моем старом наборе данных?

Спасибо-

1 Ответ

1 голос
/ 27 января 2012

Это один из способов сделать это.Если вам нужны старые и новые бок о бок, то вы можете перезаписать данные.

library(forecast)
StartingData <- (1:12)+rnorm(1:12)
d1=data.frame(forecast(ts(StartingData,start=c(2011,1), frequency =12),h=12))
d1$times=row.names(d1)
d1$fcast='old'

StartingData[13:15] <- 10
d2=data.frame(forecast(ts(StartingData,start=c(2011,1), frequency =12),h=12))
d2$times=row.names(d2)
d2$fcast='new'

combined=rbind(d1,d2)
row.names(combined)=NULL

combined

> combined
   Point.Forecast     Lo.80    Hi.80     Lo.95    Hi.95    times fcast
1        12.58567 11.652976 13.51837 11.159237 14.01211 Jan 2012   old
2        13.53736 12.604661 14.47005 12.110921 14.96379 Feb 2012   old
3        14.48904 13.556345 15.42174 13.062605 15.91548 Mar 2012   old
4        15.44073 14.508029 16.37342 14.014289 16.86716 Apr 2012   old
5        16.39241 15.459713 17.32511 14.965973 17.81885 May 2012   old
6        17.34409 16.411397 18.27679 15.917657 18.77053 Jun 2012   old
7        18.29578 17.363081 19.22848 16.869341 19.72222 Jul 2012   old
8        19.24746 18.314765 20.18016 17.821024 20.67390 Aug 2012   old
9        20.19915 19.266449 21.13185 18.772708 21.62559 Sep 2012   old
10       21.15083 20.218133 22.08353 19.724391 22.57727 Oct 2012   old
11       22.10252 21.169816 23.03522 20.676075 23.52896 Nov 2012   old
12       23.05420 22.121500 23.98690 21.627758 24.48064 Dec 2012   old
13       11.06443  8.716179 13.41269  7.473087 14.65578 Apr 2012   new
14       11.33021  8.925497 13.73491  7.652521 15.00789 May 2012   new
15       11.56613  9.111298 14.02095  7.811791 15.32046 Jun 2012   new
16       11.77555  9.276224 14.27488  7.953161 15.59794 Jul 2012   new
17       11.96145  9.422619 14.50028  8.078643 15.84426 Aug 2012   new
18       12.12647  9.552565 14.70038  8.190020 16.06293 Sep 2012   new
19       12.27296  9.667908 14.87802  8.288876 16.25705 Oct 2012   new
20       12.40300  9.770290 15.03571  8.376618 16.42938 Nov 2012   new
21       12.51843  9.861164 15.17569  8.454494 16.58236 Dec 2012   new
22       12.62089  9.941825 15.29996  8.523612 16.71817 Jan 2013   new
23       12.71185 10.013418 15.41028  8.584955 16.83874 Feb 2013   new
24       12.79259 10.076963 15.50822  8.639396 16.94579 Mar 2013   new
> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...