我正在尝试计算34个时间序列的分解来研究季节性成分的相似性,正如解释this tutorial
我从CSV开始,经过一些转换和切片后,它将转换为34行(时间序列)和108列(特定日期的植被值)的data.frame。使用我开发的以下函数,我获得了时间序列的分解:
None of the following initializations work
signals_ndvi_seasonal = data.frame()
signals_ndvi_seasonal = vector()
decompose_signal <- function(ts, site, i){
a_signal_ndvi = data.frame(ts)
ts_ndvi = ts(a_signal_ndvi, frequency=12, start=c(2006,1))
# Apparently, if we dont do this second step, the type of
# ts_ndvi is "mts" instead of "ts". To be able to decompose
# the signal, we need a type "ts". Why? To me it makes no sense.
ts_ndvi2 = ts(ts_ndvi[1,], frequency=12, start=c(2006,1))
dec_ndvi = decompose(ts_ndvi2)
signals_ndvi_seasonal[i] = dec_ndvi$season
plot(dec_ndvi)
}
现在,我想访问dec_ndvi$season
,其中包含我的季节性组件的时间序列,并将其附加到某种数组/向量/列表/无论,以便我可以进一步使用包dtw
来研究组件的相似性。像这样:
distMatrix <- dtwDist(signals_ndvi, method="DTW")
最后是一个不错的情节:
corrplot(distMatrix, is.corr = FALSE, method = "circle")
这里的令人伤心的事情是我成功地计算了与信号的所有组件的相似性,但我对R(通常我做Python)来说太新了R语法和数据类型是我不太清楚。 我猜我的数据类型非常紧张。我正在获取空数据帧,不连接的连接和绑定,包含空值的向量和其他不同的东西,除了重新组合时间序列数组的任何内容。
因此,我需要一种方法来打包我的时间序列,这样我就可以将它们传递给dtwDist
,就像我对变量signals_ndvi
中未分解的时间序列所做的那样。谢谢!