【发布时间】:2014-05-02 05:46:33
【问题描述】:
我是 R 新手,我正在尝试获取一组时间序列并通过条件推理树运行它们,以帮助对时间序列的形状进行分类。问题是并非所有的时间序列都具有相同的周期数。我正在尝试将每个时间序列扩展为 30 个周期,但仍保持相同的“形状”。这是据我所知
Require(zoo)
test<-c(606,518,519,541,624,728,560,512,777,728,1014,1100,930,798,648,589,680,635,607,544,566)
accordion<-function(A,N){
x<-ts(scale(A), start=c(1,1), frequency=1)
X1 <- zoo(x,seq(from = 1, to = N, by =(N-1)/(length(x)-1) ))
X2<-merge(X1, zoo(order.by=seq(start(X1), end(X1)-1, by=((N-1)/length(x))/(N/length(x)))))
X3<-na.approx(X2)
return(X3)}
expand.test<-accordion(test,30)
plot(expand.test); lines(scale(test))
length(expand.test)
上面的代码对时间序列进行缩放,然后将其平均间隔为 30 个周期并插入缺失值。然而,返回序列的长度是 42 个单位而不是 30,但它保留了与原始时间序列相同的“形状”。有谁知道如何修改它,使函数accordian 产生的结果有 30 个周期长并且时间序列形状保持相对不变?
【问题讨论】:
-
此代码无法运行。在为它赋值的同一行中调用
X2。更好地定义“形状”也可能会有所帮助。我不熟悉这个名字/技术。 -
Richard,我编辑了代码...应该读的是 X1 而不是 X2,抱歉。 “形状”是指保持相同的相对幅度,但降低频率。
标签: r time-series expand