报告标准偏差而不是方差
我认为您是对的,因为每台 PC 的标准偏差可能比其方差更合理或更直观(对于某些人而言)衡量其“影响”。实际上它甚至有一个清晰的数学解释:PC 的方差是协方差矩阵的特征值,但标准差是中心数据矩阵的奇异值 [仅按比例缩放1/n−1−−−−−√]。
所以,是的,报告它是完全可以的。此外,例如 R 确实报告了 PC 的标准偏差,而不是它们的方差。例如运行这个简单的代码:
irispca <- princomp(iris[-5])
summary(irispca)
结果是:
Importance of components:
Comp.1 Comp.2 Comp.3 Comp.4
Standard deviation 2.0494032 0.49097143 0.27872586 0.153870700
Proportion of Variance 0.9246187 0.05306648 0.01710261 0.005212184
Cumulative Proportion 0.9246187 0.97768521 0.99478782 1.000000000
这里有标准偏差,但没有方差。
解释方差
包含 95% 数据方差的 PC 可能仅包含以标准差衡量的数据中 80% 的变化:后者不是更好的描述吗?
但是,请注意,在呈现标准偏差之后,R 不会显示“标准偏差的比例”,而是显示方差的比例。这是有充分理由的。
在数学上,总方差(作为协方差矩阵的迹线)在旋转下被保留。这意味着原始变量的方差之和等于 PC 的方差之和。在相同的 Fisher Iris 数据集的情况下,这个和等于4.57,因此我们可以说 PC1 的方差为2.052=4.20解释92%的总方差。
但是标准差的总和没有被保留!原始变量的标准差之和为3.79. PC 的标准差之和为2.98. 他们不平等!所以如果你想说PC1有标准差2.05解释x%在“总标准差”中,你认为这个总数是多少?没有答案,因为它根本没有意义。
最重要的是,查看每台 PC 的标准差,甚至将它们相互比较是完全可以的,但如果你想谈论“解释”的东西,那么只有“解释的方差”才有意义。