【问题标题】:Using R, how can I create and index using principal components?使用 R,如何使用主成分创建和索引?
【发布时间】:2021-05-19 17:53:10
【问题描述】:

我已经完成了 PCA 分析 - 并获得了三个主要成分 - 但我不知道如何将它们转换为索引。 例如,我知道在 Stata 中有一个命令“预测索引,分数”,但我没有找到在 R 中执行此操作的方法。 我想做的是使用 PCA 从教育水平、互联网接入等变量创建一个社会经济指数。 谢谢!

【问题讨论】:

  • 您有三个分量,因此您有 3 个由主分量分数表示的索引。 predict 函数将获取新数据并估计分数。如果没有更多信息和可重复的数据,就不可能更具体。
  • 您可能有更好的时间在 R 中查找有关 PCA 的教程,尝试一些代码,然后回到这里就您拥有的代码和数据提出具体问题。再次查看minimal reproducible example 指导
  • 一个索引等于1分?意味着您想将 3 个主要成分合并为 1 个指标
  • @StupidWolf 是的!确切地说:我不知道哪个命令可以帮助我做到这一点。
  • 你有因变量吗?或者你打算用这个指标做什么?我怀疑stata命令的作用是使用PC进行预测,分数就是概率

标签: r indexing pca


【解决方案1】:

一般来说,我使用 PCA 分数作为索引。请参阅下面的示例:

# Load the psych package, you could also use princomp in the stats package
library(psych)

# Example data
df <- data.frame(x1 = rnorm(100, 0, .5)
                 , x2 = rnorm(100, 0, 1)
                 , x3 = rnorm(100, .02, 1)
)


# run the PCA
PCA_results <- principal(df, nfactors = 1)

# add our PCA scores as an index
df$index <- PCA_results$scores 

如果您希望分数为 0-1,您可以重新调整分数。

【讨论】:

  • 是的!我正在考虑使用分数。但是我在 R 中找不到命令 tu 执行此操作。您向我展示的内容可能会对我有所帮助,谢谢!但我做 PCA 的方式不同。我用了 my_pca&lt;-prcomp(ind.scale) ,应该 df$index &lt;- PCA_results$scores 帮助我吗?
  • @Queen_S,是的!如果您使用 stats 包函数,我会使用 princomp() 而不是 prcomp,因为它提供更多输出,例如 PCA_results &lt;- princomp(df) df$index &lt;- PCA_results$scores[1]
  • @Jacob,您好我也在尝试使用 PCA 获取索引,请问您为什么建议使用 PCA_results$scores 作为索引? PCA_results$scores 是 PC1 对吗?
  • @kaix,你是对的! PCA_results$scores 提供 PC1。 PCA 分数上有很多东西,所以我不会在这里写完整的回复,但总的来说,因为这是 x1、x2、x3 的组合(在我的示例代码中),它捕获了最大值单个变量内的方差。基本上,您可以在可以从 1 到 0 缩放的单个索引变量中获得三个变量的解释值。另外,如果您觉得我的初步回复有帮助,请随时点赞!
猜你喜欢
  • 2013-08-20
  • 1970-01-01
  • 1970-01-01
  • 2016-10-21
  • 1970-01-01
  • 2013-08-02
  • 1970-01-01
  • 1970-01-01
  • 2015-02-06
相关资源
最近更新 更多