Разложение xts Time Serie с помощью STL () - PullRequest
1 голос
/ 08 марта 2019

Я пытаюсь разложить серию времени xts и создать фрейм данных, содержащий 2 столбца.

  1. дата наблюдения
  2. Значения тренда разложенной временной серии

Базовый фрейм данных имеет следующую структуру:

Date        x     y        z
2016-01-01 40419.35 12595 3.20
2016-01-02 44283.35 13904 3.18
2016-01-03 36277.23 10355 3.50
2016-01-04 42545.05 11929 3.56
2016-01-05 42402.22 13737 3.08
2016-01-06 49919.22 13661 3.65
...
2018-12-30 48719.22 13563 3.65
2018-12-31 49919.22 13661 3.65

Вот что я сделал до сих пор.

#1. Creating an xts object with weekly frequency
TimeSeries <- xts(x=Data[,-1],order.by=as.Date(Data$Date,"%Y/%m/%d")) 
TimeSeriesWeekly <- period.apply(TimeSeriesWeekly, INDEX = endpoints(TimeSeriesWeekly, on = "weeks"), FUN = colSums) 
attr(TimeSeriesWeekly, 'frequency') <-52
TimeSeriesWeekly<-TimeSeriesWeekly[,1] #keeping only the X variable I want to decompose

#2. Converting to a TS object in order to apply stl() decomposition formula
TimeSeriesWeekly <- ts(TimeSeriesWeekly[,1],frequency=52)

#3. Decomposing the TS object and distilling the trend
TimeSeriesWeeklyDecomposed<-stl(TimeSeriesWeekly, s.window="periodic")
TimeSeriesWeeklyTrend     <- as.data.frame(TimeSeriesWeeklyDecomposed$time.series[,2])

Моя проблема в том, что фрейм данных TimeSeriesWeeklyTrend не содержит переменную даты.Как я могу передать это?

1 Ответ

0 голосов
/ 12 марта 2019

Решил проблему с кодом ниже:

#2. Converting to a TS object in order to apply stl() decomposition formula
ts_data  <- ts(as.numeric(TimeSeriesWeekly[,1]),frequency=52)

#3. Decomposing the TS object with STL()
TimeSeriesWeeklyDecomposed<-stl(ts_data , s.window="periodic")

#4 Appending it to the initial xts object
TimeSeriesWeekly <- merge(TimeSeriesWeekly,TimeSeriesWeeklyDecomposed$time.series[,2])
names(TimeSeriesWeekly)[ncol(TimeSeriesWeekly)]<-"Trend" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...