【问题标题】:pca of psych r package: how to obtain only total % explained variance and model fit measure?psych r 包的 pca:如何仅获得总解释方差百分比和模型拟合度量?
【发布时间】:2014-04-29 19:09:57
【问题描述】:

在我正在构建的闪亮应用程序中,我只想显示主函数(r 包 psych)输出的解释方差和模型拟合度量。我调查了输出的结构,但不幸的是(也许有点奇怪)我找不到这些值的确切位置。有谁知道如何从输出中获取这些值?

【问题讨论】:

  • 你能解释一下“模型拟合度量”这个术语吗?
  • 我想我的意思是“基于非对角线值拟合”。或者我认为这是一个模型拟合度量是完全错误的?

标签: r shiny principal psych


【解决方案1】:

首先,如果您需要帮助,您应该提供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 中给出了参数“基于非对角线值拟合”,如文档中所述。

【讨论】:

  • 非常感谢您的回答和努力! (很抱歉没有给出可重复的例子。)您使用“prop.table”的解决方案真的是我从未想过的。
  • 请问您建议我使用哪种合适的尺码?
猜你喜欢
  • 1970-01-01
  • 2019-12-09
  • 1970-01-01
  • 1970-01-01
  • 2017-10-02
  • 2017-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多