PCA 后分数仍然相关

机器算法验证 物流 主成分分析 多重共线性 定心
2022-03-28 04:27:17

我有 22 个变量,超过 6000 个观察值。它们高度相关。我知道这些数据可以作为二分事件(目前不存在)的重要解释变量。因此,我打算通过二元逻辑回归将它们组合起来,为了避免多重共线性,我想到了使用 PCA 对原始数据进行“正交化”。然后我可以选择主要的可变模式(甚至所有 PC),并将它们用作我的回归中的解释变量,一旦 PC 根据定义是正交和独立的。

我在 MATLAB 中使用 function 运行它pca这些变量几乎是正态分布的,并且首先在 0 +/- 2 个标准差之间进行归一化(大约为零,因为我相信保留它们的信号以供将来分析会很有趣)。一旦它们已经标准化,我还选择不在 MATLAB 函数中将数据居中。

现在,陷阱来了。我的前 2 个 PC(分数)与 r=0.7891 相关!对此有任何提示吗?关于我可能犯的错误有什么建议吗?

散点图 Pc1 和 Pc2

编辑:如果它减轻了场景,这里是一个双标图。让 PCA 以数据为中心,我相信云只会移动到原点周围,但仍保持其格式/相关性,对吗?

在此处输入图像描述

1个回答

记住 PCA 的工作原理:它首先找到数据集中变化最大的单一维度(方向)。那变成PC1。然后它找到与之成直角的最大变化方向。变成PC2。等等。

要认识到的重要一点是,如果您的数据没有居中,则最大变化的方向很可能是从空间的原点(例如,)到质心(平均向量)你的数据。随后的每个主成分都受第一个主成分的约束:它们都必须与之成直角。这意味着生成的 PC 可能不会取消关联您的数据。 (0,0)

这是一个快速说明(用 R 编写):

library(MASS)   # we'll use this package
set.seed(7668)  # this makes the example exactly reproducible
X = mvrnorm(100, mu=c(-5, 0), Sigma=rbind(c(1,  1.6),   # here I generate data
                                          c(1.6,  4) ))

windows(height=4, width=7)
  layout(matrix(1:2, nrow=1))

  plot(X[,1], X[,2], xlim=c(-8, 1))
  abline(h=0, col="gray");  abline(v=0, col="gray")
  points(mean(X[,1]), 0, pch="*", cex=2, col="red")

  biplot(prcomp(X, center=FALSE))

在此处输入图像描述