如何测试 PCA 的第一个因素解释的方差在重复测量条件下是否不同?

机器算法验证 r 相关性 统计学意义 主成分分析
2022-04-05 13:13:26

语境:

我有一项研究,其中在两个重复测量实验条件(n = 200)中的每一个中测量六个数值变量。让我们调用条件AB和变量A1,A2,...,A6B1,B2,...,B6. 从理论上讲,我希望在条件B变量的更多方差应由主成分分析 (PCA) 的第一个因素来解释。

典型值为:

  • PCA 的第一个因素A1,...,A6占方差的 30%
  • PCA 的第一个因素B1,...,B6 占方差的 40%。

问题:

  • 我如何检验这种差异是否具有统计学意义?
  • 这如何在 R 中实现?
4个回答

只是一个(也许是愚蠢的)想法。保存条件 A (PC1A) 的第一主成分分数变量和条件 B (PC1B) 的第一主成分分数变量。分数应该是“原始的”,即它们的方差或平方和等于它们的特征值。然后使用Pitman 检验比较方差。

我得到你的答案了吗?- 你想测试两个条件之间是否存在统计上的显着差异?

也许 vegan::adonis() 适合你?不知道这是否是您要找的。

它适用于距离矩阵并比较条件内的距离大于条件之间的距离。例如,在 NMDS 中,您会看到两种情况的明显分离。

这是一些示例代码:

df <- data.frame(cond = rep(c("A", "B"), each = 100), 
 v1 <- jitter(rep(c(20, 100), each = 100)),
 v2 <- jitter(rep(c(0, 80), each = 100)),
 v3 <- jitter(rep(c(40, 5), each = 100)),
 v4 <- jitter(rep(c(42, 47), each = 100)),
 v5 <- jitter(rep(c(78, 100), each = 100)),
 v6 <- jitter(rep(c(10, 100), each = 100)))

# PCA
require(vegan)
pca <- rda(df[ ,-1], scale = TRUE)
ssc <- scores(pca, display = "sites")
ordiplot(pca, type = "n")
points(ssc[df$cond == "A", ], col = "red", pch = 16)
points(ssc[df$cond == "B", ], col = "blue", pch = 16)

# NMDS
nmds <- metaMDS(df[ ,-1], distance = "euclidian")
nmsc <- scores(nmds, display = "sites")
ordiplot(nmds, type = "n")
points(nmsc[df$cond == "A", ], col = "red", pch = 16)
points(nmsc[df$cond == "B", ], col = "blue", pch = 16)

# use adonis to test if there is a difference between the conditions
adonis(df[ ,-1] ~ df[ ,1], method = "euclidean")
## There is a statistically significant difference between the two conditions

置换检验

要直接检验原假设,请使用置换检验。

让第一台 PC 处于状态A解释a<100% 方差,并且第一台 PC 处于状态B解释b<100%的方差。你的假设是b>a,所以我们可以定义c=ba作为感兴趣的统计量,假设是c>0. 要拒绝的原假设是c=0.

要执行置换测试,请使用您的N=200+200来自两个条件的样本,并将它们随机拆分为条件AB. 由于分裂是随机的,因此之后的解释方差应该没有差异。对于每个排列,您可以计算c,重复这个过程很多次(比如说,10000) 次,得到分布c在原假设下ctrue=0. 比较你的经验值c这种分布将产生一个p-价值。

自举

获得置信区间c,使用自举。

在引导方法中,您将随机选择N=200从现有样本中替换样本A和另一个N=200B. 计算c,并重复很多次(再次,比如说,10000) 次。您将获得一个自举发行版c值,其百分位区间将对应于经验值的置信区间c. 所以你可以估计p-通过查看该分布的哪一部分位于上方来获得价值0.

置换检验是一种更直接(并且可能较少依赖任何假设)的方法来检验原假设,但引导程序还有一个额外的好处是可以在c.

这只是一个想法的轮廓。方差的比例定义为

λ1λ1+...+λ6,

在哪里λi是协方差矩阵的特征值。现在如果我们使用相关矩阵的特征值,那么λ1+...+λ6=6,因为矩阵的特征值之和等于矩阵的迹,并且对于相关矩阵,迹是一个之和。

因此,如果我们使用相关矩阵,我们需要检验关于样本相关矩阵的两个最大特征值之差的假设。当然可以在文献中找到相关矩阵的最大特征值的渐近分布。所以问题然后减少到某种配对或非配对 t 检验。