我发现“功能性 PCA”是一个不必要的混淆概念。它根本不是一个单独的东西,它是应用于时间序列的标准 PCA。
FPCA是指观察中的每一个都是在个时间点观察到的时间序列(即“函数”)的情况,因此整个数据矩阵的大小为。通常,例如一个可以有时间点采样。分析的重点是找到几个“特征时间序列”(长度也为),即协方差矩阵的特征向量,它们将描述观察到的时间序列的“典型”形状。ntn×tt≫n201000t
绝对可以在这里应用标准 PCA。显然,在您的引文中,作者担心由此产生的特征时间序列会过于嘈杂。这确实可能发生!两种明显的处理方法是(a)在 PCA 之后平滑得到的特征时间序列,或(b)在进行 PCA 之前平滑原始时间序列。
一种不太明显、更花哨但几乎等效的方法是用个基函数逼近每个原始时间序列,从而有效地将维数从降低到。然后可以执行 PCA 并获得由相同基函数近似的特征时间序列。这是人们通常在 FPCA 教程中看到的内容。人们通常会使用平滑基函数(高斯或傅里叶分量),所以据我所知,这基本上等同于上面的脑死简单选项(b)。ktk
关于 FPCA 的教程通常会冗长地讨论如何将 PCA 推广到无限维的功能空间,但它的实际相关性完全超出了我的范围,因为在实践中,功能数据总是从一开始就离散化。
这是取自 Ramsay 和 Silverman 的“功能数据分析”教科书的插图,这似乎是关于“功能数据分析”的权威专着,包括 FPCA:
可以看出,对“离散数据”(点)进行 PCA 分析与在傅里叶基础(线)中对相应函数进行 FPCA 分析产生的结果几乎相同。当然,可以先进行离散 PCA,然后在同一个傅里叶基中拟合一个函数;它会产生或多或少相同的结果。
PS。在这个例子的小数。也许在这种情况下作者所认为的“功能性 PCA”应该导致“功能”,即“平滑曲线”,而不是 12 个单独的点。但这可以通过插值然后平滑得到的特征时间序列来轻松解决。同样,“功能性 PCA”似乎不是一个单独的东西,它只是 PCA 的一个应用。 t=12n>t