首先,如果您需要帮助,则应提供一个可重现的示例,其中包括数据样本。这就是为什么您的问题被否决的原因(虽然不是我的)。
由第i个主成分引起的方差由相关矩阵的第i个特征值给出。根据定义,由于PC是正交的(不相关),因此总方差由各个方差之和=特征值之和给出。特征值在中返回principal(...)$values。因此,每个PC解释的总方差的比例为:
prop.table(principal(...)$values)
Run Code Online (Sandbox Code Playgroud)
由于您未提供任何数据,因此我将使用内置mtcars数据集作为工作示例:
library(psych)
df <- mtcars[c("hp","mpg","disp","wt","qsec")]
pca <- principal(df)
prop.table(pca$values)
# [1] 0.73936484 0.19220335 0.03090626 0.02623083 0.01129473
Run Code Online (Sandbox Code Playgroud)
因此,第一台PC解释了总变化的74%,第二台PC解释了总变化的19%,依此类推。这与使用的结果完全吻合,请prcomp(...)记住principal(...)默认情况下会缩放,而prcomp(...)不会缩放。
pc <- prcomp(df,scale.=T)
summary(pc)
# Importance of components:
# PC1 PC2 PC3 PC4 PC5
# Standard deviation 1.9227 0.9803 0.39310 0.36215 0.23764
# Proportion of Variance 0.7394 0.1922 0.03091 0.02623 0.01129
# Cumulative Proportion 0.7394 0.9316 0.96247 0.98871 1.00000
Run Code Online (Sandbox Code Playgroud)
如principal(...)$fit.off文档中所述,参数“基于偏离对角线的值进行拟合”在中给出。