是的,我已经看过这里了,但这对我谦虚的头脑来说太高调了(这并不是我想要的)。
想象一下,我们有一个时间进程,x 轴上有时间,y 轴上有一些值(例如信号)。现在我可以对这个时间过程进行采样以获得多维向量空间中的向量。
我的问题:如果我对此数据执行 PCA 意味着什么?什么是单个向量(例如时间序列)的 PCA,如何解释生成的特征向量?
是的,我已经看过这里了,但这对我谦虚的头脑来说太高调了(这并不是我想要的)。
想象一下,我们有一个时间进程,x 轴上有时间,y 轴上有一些值(例如信号)。现在我可以对这个时间过程进行采样以获得多维向量空间中的向量。
我的问题:如果我对此数据执行 PCA 意味着什么?什么是单个向量(例如时间序列)的 PCA,如何解释生成的特征向量?
在单变量时间序列(或更一般地说,单个向量)上运行 PCA 没有意义。要对时间序列数据运行 PCA,您需要有一个多变量时间序列或多个单变量时间序列。有多种方法可以将单变量时间序列转换为多变量时间序列(例如小波或时频变换、时间延迟嵌入等)。例如,单变量时间序列的频谱图为您提供每个频率、每个时刻的功率。
假设我们有一个具有维/变量的多元时间序列。或者,我们可能有一组个单变量时间序列,其中每个时间点在时间序列中具有一些共同的含义(例如,相对于某个事件的时间)。在这两种情况下,都有时间点。有几种方法可以运行 PCA:
将每个时间点视为一次观察。维度对应于多变量时间序列的变量,或者对应于不同的单变量时间序列。维空间中有个点。在这种情况下,特征向量对应于跨维度/时间序列的瞬时模式。在每个时刻,我们将跨维度/时间序列的幅度表示为这些模式的线性组合。
将多元时间序列(或每个单变量时间序列)的每个变量视为一个观察值。尺寸对应于时间点。维空间中有个点。在这种情况下,特征向量对应于时间基函数,我们将每个时间序列表示为这些基函数的线性组合。
鉴于上述情况,很明显为什么 PCA 对于单个单变量时间序列没有意义。要么你有观察和 1 个维度(在这种情况下,PCA 没有什么可做的),要么你有一个具有维度的观察(在这种情况下,问题完全不确定,所有解决方案都是等价的)。
也许,“在单个时间序列上执行 PCA”意味着应用奇异谱分析 (SSA),有时也称为时间序列的 PCA。在 SSA 中,多元数据由初始时间序列的滞后(移动)子序列构成。然后将 PCA(通常是 SVD,即没有居中/标准化的 PCA)应用于获得的多变量数据。
R中的示例:
library(Rssa)
s <- ssa(co2)
# Plot eigenvectors
plot(s, type = "vectors")
# Reconstruct the series, grouping elementary series.
r <- reconstruct(s, groups = list(Trend = c(1, 4), Season1 = c(2,3), Season2 = c(5, 6)))
plot(r)