psyc-r包的主成分分析:如何只获得解释方差的总百分比和模型拟合测度



在我正在构建的一个闪亮的应用程序中,我只想显示(r包心理)主函数输出的解释方差和模型拟合度量。我研究了输出的结构,但很难(也许有点奇怪)找到这些值的确切位置。有人知道如何从输出中获得这些值吗?

首先,如果您希望得到帮助,您应该提供一个可复制的示例,其中包括数据样本。这就是为什么你的问题被否决的原因(虽然不是我)。

由第i个主分量引起的方差由相关矩阵的第i个特征值给出。由于PC根据定义是正交的(不相关的),因此总方差由个体方差之和=特征值之和给出。特征值在CCD_ 1中返回。因此,每个PC解释的总方差的比例由以下公式给出:

 prop.table(principal(...)$values)

由于您没有提供任何数据,我将使用内置的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

因此,第一个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

principal(...)$fit.off中给出了参数"基于非对角线值的拟合",如文件中所述。

最新更新