2012-01-26 3 views
1

Я использую пакет прогнозов в 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) 

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

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

Thanks-

+0

Чтобы просто задать вопрос, вы хотите получить доступ к обоим наборам данных для дальнейшего сравнения, не так ли? – Maiasaura

+0

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

ответ

1

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

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 
> 
+1

Конечно, я хотел добавить, что вы можете преобразовать даты в поле даты, но пока я не беспокоился об этом. – Maiasaura

Смежные вопросы