PCA 可以应用于时间序列数据吗?

机器算法验证 时间序列 主成分分析
2022-02-06 01:06:17

我知道主成分分析(PCA)基本上可以应用于横截面数据。通过将年份指定为时间序列变量并正常运行 PCA,PCA 是否可以有效地用于时间序列数据?我发现动态 PCA 适用于面板数据,而 Stata 中的编码是为面板数据设计的,而不是时间序列。是否有任何特定类型的 PCA 适用于时间序列数据?

更新。让我详细解释一下。

我目前正在为印度的基础设施构建一个指数,其中包含道路长度、铁路长度、发电能力、电话用户数量等变量。我在 1 个国家/地区的 22 年内有 12 个变量。尽管我已经回顾了将 PCA 应用于时间序列甚至面板数据的论文,但 PCA 是为假设 iid 假设的横截面数据而设计的。面板和横截面数据违反了它,PCA 没有考虑其中的时间序列维度。我已经看到动态 PCA 仅应用于面板数据。我想知道是否有一个特定的 PCA 应用于时间序列或运行静态 PCA 并将年份定义为时间序列变量将完成这项工作?

2个回答

一种方法可能是采用 12 个变量的第一次时间差来确保平稳性。然后计算12×12协方差矩阵并对其执行 PCA。这将是整个时间跨度内的某种平均 PCA,并且不会说明不同时滞如何相互影响。但这可能是一个很好的起点。

如果您也对分解时域感兴趣,我会按照评论中的建议查看SSA

当您的系列(假设)静止时,单个协方差矩阵是有意义的。如果您的数据是 1 或更高阶的积分,我怀疑它们可能是,单个协方差矩阵的估计将不会产生一致的结果。例如,一个随机游走是 1 阶积分,两个随机游走的估计协方差并没有说明它们的协动,这里需要协整分析。

正如评论中所建议的,PCA 本身并不关心平稳性,因此您可以为 PCA 提供任何正半定矩阵,并且 PCA 分解在 PCA 意义上会很好。

但是,如果您估计的协方差矩阵不能代表任何对数据有意义的东西,那么 PCA 当然也不会。

是的,时间序列的 PCA 一直在金融工程(量化金融)和神经病学中进行。

在金融工程中,数据矩阵由代表特征的列中的资产(例如股票)和代表日终交易的天(或对象)的行构成。因此,数据矩阵Xt×p拥有t行和p列。但是,请注意日志返回,rt=log(Pt)log(Pt1)=log(Pt/Pt1), 之所以被使用,是因为每日价格是对数正态分布的——即右尾偏斜。由于每年有 250 个交易日,因此获取代表 4 年交易的 1000 天数据是合适的。由于相同的单位(例如美元)通常用于每日对数价格回报,因此p×p特征的协方差矩阵用于特征分解。否则,如果使用不同的货币,则使用相关矩阵进行特征分解,因为相关均值零标准化了X. 在资产上运行 PCA 后,您可以查看哪些股票在哪些 PC 上加载,这是一种聚类方法,或者使用 PC 分数作为其他分析的输入。PCA 也运行在t×t天的协方差矩阵,资产成行,以便将关联在一起的天折叠到单个 PC 中,因为一般的想法是天可以是多余的 - 当将数据输入例如神经网络时,你不希望数据行是冗余的或特征是相关的(你希望它们是正交的),因为神经网络会浪费时间来学习相关性。然而,这种方法并不关注自相关。

在量化金融中,首先找到许多资产的协方差(相关)矩阵的特征值中的噪声截止值以改进(马科维茨)投资组合优化,因为您想要一个位于“有效前沿”的投资组合,这也引起了人们极大的兴趣" 与不相关的资产。这种方法利用了 Marcenko-Pastur 定律和比率γ=t/n数据矩阵X用于拟合特征值密度,并找到噪声截止值,称为λ+,高于其特征值表示信号,低于其特征值表示噪声。一旦识别出噪声特征值,新数据集将基于原始数据对代表噪声特征向量的 PC 分数的(多变量)回归,Y=Fnβ,然后将残差用作去噪数据集,即X^=YY^. 使用从新数据集(残差)派生的权重构建的投资组合的财富值(累积回报)已被证明比不使用这种方法要大得多。最后,还有一种基本方法可以通过回归代表主要(最大)特征值的第一台 PC 上的资产数据来消除“市场效应”或股票收益之间的广泛相关性,Y=f1β,并拉回残差以表示新数据,这将消除广泛的市场相关性。(因为第一台 PC 总是代表具有高度多重共线性的股票)。这种方法解决了与“羊群心理”有关的市场情绪。

在神经病学中,PCA 在时间序列上运行,以获得从 EEG 获得的不同波段的动作电位。将动作电位转换为正交(不相关)PC 评分向量并将 PC 输入到其他分析中是在行为遗传学的复杂性状的统计遗传建模中增加统计能力的主要手段(因为表型例如双极、新颖性-寻求、分裂型、精神分裂症经常重叠)。澳大利亚的大型遗传双胞胎研究有助于分析行为遗传学中的这些重叠特征,因为如果一起抚养(在同一个家庭长大)的同卵双胞胎之间存在疾病差异,因果推断可能指向暴露于不同环境时他们年龄更大,而不是相同的基因。