我的目标是季节性调整数据并仅保存季节性因素。 我的数据包含60多个时间序列。如你所见,我的一个问题是那里 是我需要立即调整的很多时间序列。这是我尝试在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)
查看)。
答案 0 :(得分:2)
好吧,时间过去了,现在我能够回答问题了。 我需要同时季节性地调整大量数据,然后一次重新计算它们。
首先,一个问题是季节性调整的结果被保存为列表。答案是使用final
中的函数seasonal
:
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))))
要保存季节性因素,需要来自同一个包的函数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")))