在我正在建立的一个闪亮的应用程序中,我想只显示解释的方差和主要函数(r包精神)的输出的模型拟合度量。我调查了输出的结构,但不幸的是(也许有点奇怪)我无法找到这些值的确切位置。有没有人知道如何从输出中获取这些值?
答案 0 :(得分:4)
首先,如果您需要帮助,则应提供reproducible example,其中包含您的数据样本。这就是为什么你的问题被低估了(不过我)。
由第i个主分量引起的方差由相关矩阵的第i个特征值给出。由于PC根据定义是正交的(不相关的),因此总方差由各个方差之和=特征值之和给出。特征值在principal(...)$values
中返回。因此,每台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
中给出,如文档中所述。