2016-06-25 58 views
-1

我的目標是按季節調整數據並僅保存季節性因素。我的數據由60多個時間序列組成。如你所見,我的一個問題是 是我需要一次調整的很多時間系列。這裏是我的嘗試R中做到這一點:多元時間序列在R中使用循環和季節性調整

library("timeDate") 
library("timeSeries") 
library("seasonal") 

mDxts <- structure(c(35.8, 41.6, 35.9, 36.9, 42.43, 36.067,28.67, 29.53, 32.83, 29.867,23.9, 20.8, 21.167, NA, NA, NA, NA, NA, NA, NA, 149.67,108.89, 89.067, 83.33, 77.2,64.91, 50.2, 48, 62.13, 52.93,43.2, 38.8, 37.9, 19, 18, 17, 16.5, 16, 15.5, 15), class = c("xts","zoo"), .indexCLASS = "yearqtr", tclass = "yearqtr", .indexTZ = "", tzone = "", index = structure(c(946684800,954547200, 962409600, 970358400, 978307200, 986083200, 993945600,1001894400, 1009843200, 1017619200, 1025481600, 1033430400, 1041379200,1491004800, 1498867200, 1506816000, 1514764800, 1522540800, 1530403200,1538352000), tzone = "", tclass = "yearqtr"), .Dim = c(20L, 2L), .Dimnames = list(NULL, c("depall", "ref"))) 
ll<-lapply(mDxts, function(e) ts(e,start=c(2000,1),frequency=4)) 
#I. Seasonal adjustment and saving only d10 component: 
sf<-sapply(ll,function(e) try(seas(e,x11="",na.action=na.exclude, transform.function = "none",x11.mode="logadd",arima.model="(0 1 1) (0 1 0)",regression.aictest = NULL, outlier=NULL,x11.save="d10"))) 

據我所知,我的主要問題是執行sf<-sapply(st,function(e) try(seas(e, x11.save="d10"))我得到一個列表,其中每個元素與所有D10,D11清單等(看看通過SF.df<-as.data.frame(SF))。

回答

2

好吧,時間流逝了,現在我可以回答這些問題。 我需要同時調整大量數據,然後一次重新計算它們。

  1. 首先,一個問題是季節性調整的結果被保存爲列表。答案是使用機能的研究finalseasonal

    sa<-sapply(st,function(e) try(final(seas(e,x11="",na.action=na.exclude, 
    transform.function = "none",x11.mode="logadd",arima.model="(0 1 1) (0 1 0)", 
    regression.aictest = NULL, outlier=NULL)))) 
    
  2. 要保存需要從同一個包裝的功能series季節性因素:

    sf<-sapply(st,function(e) try(series(seas(e,x11="",na.action=na.exclude, 
    transform.function = "none",x11.mode="logadd",arima.model="(0 1 1) (0 1 0)", 
    regression.aictest = NULL, outlier=NULL),"d10")))