我有 28 种不同货币的 10 年每日回报数据。我希望提取第一个主成分,而不是在整个 10 年内运行 PCA,我想滚动应用 2 年窗口,因为货币的行为会演变,所以我希望反映这一点。但是我有一个主要问题,即在相邻的 PCA 分析(即相隔 1 天)中,princomp()
和prcomp()
函数通常会从正负载跳到负负载。查看欧元货币的加载图表:
显然我不能使用它,因为相邻的载荷会从正值跳到负值,所以我使用它们的系列将是错误的。现在看一下欧元货币加载的绝对值:
问题当然是我仍然无法使用它,因为您可以从顶部图表中看到负载确实会从负变为正并有时会返回,这是我需要保留的特征。
有什么办法可以解决这个问题吗?我可以强制特征向量方向在相邻 PCA 中始终相同吗?
顺便说一句,FactoMineR PCA() 函数也会出现此问题。rollapply 的代码在这里:
rollapply(retmat, windowl, function(x)
summary(princomp(x))$loadings[, 1], by.column = FALSE,
align = "right") -> princomproll