问题标签 [princomp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
7115 浏览

matlab - Matlab:如何在 matlab 中使用 PCA 查找数据集中的哪些变量可以丢弃?

由于与其他变量高度相关,我正在使用 PCA 找出我的数据集中的哪些变量是多余的。我正在对先前使用 zscore 标准化的数据使用 princomp matlab 函数:

我知道特征值告诉我数据集有多少变化覆盖了每个主成分,而系数告诉我第 i 个原始变量中有多少在第 j 个主成分中(其中 i - 行,j - 列)。

所以我假设要找出原始数据集中哪些变量是最重要的,哪些是最少的,我应该将系数矩阵乘以特征值-数值表示每个组件具有的每个变量的多少,而特征值说明该组件的重要性是。所以这是我的完整代码:

但这并没有真正显示任何东西 - 我在下面的一组中尝试了它,其中变量 1 与变量 2 完全相关(v2 = v1 + 2):

但我的计算结果如下:

这并没有真正显示出任何东西。我希望变量 2 的结果表明它远没有 v1 或 v3 重要。我的哪个假设是错误的?

0 投票
1 回答
670 浏览

r - R长形式的PCA

我想对长格式的数据帧进行 PCA:

时间1 id1 数据11

时间1 id2 数据12

时间2 id1 数据21

等等

有没有一种简单的方法可以做到这一点,或者是标准的方法reshape,然后再做princomp。我的数据集非常大,大约有 40,000 次和 4,000 个 id。

0 投票
1 回答
8396 浏览

r - 当协方差矩阵为零时,如何在R中使用princomp()函数?

在 R 中使用princomp()函数时,遇到以下错误:"covariance matrix is not non-negative definite"

我认为,这是由于协方差矩阵中的某些值为零(实际上接近零,但在舍入期间变为零)。

当协方差矩阵包含零时,是否可以继续使用 PCA?

[仅供参考:获取协方差矩阵是princomp()调用中的中间步骤。可以从这里下载重现此错误的数据文件 - http://tinyurl.com/6rtxrc3]

0 投票
3 回答
1837 浏览

r - R - summary.princomp 的限制输出

我正在对包含 1000 多个变量的数据集进行主成分分析。我正在使用 R Studio,当我运行摘要以查看组件的累积方差时,我只能看到最后几百个组件。如何将摘要限制为仅显示前 100 个组件?

0 投票
2 回答
16352 浏览

r - 在使用 R 进行 PCA 分析之前省略 NA 和数据插补

我正在尝试使用princompR 中的函数进行 PCA 分析。

以下是示例代码:

我试图NA从数据集中删除 ,但它不起作用。

即使我可以删除NA's,它也可能无济于事,因为每一行或每一列都至少有一个缺失值。是否有任何 R 方法可以估算数据进行 PCA 分析?


更新:根据答案:

这有效,但默认值na.action不起作用。

是否有任何方法可以估算数据,因为在实际数据中,我几乎每列都缺少值?这种NA遗漏的结果会给我〜0行或列。

0 投票
1 回答
10083 浏览

matlab - 主成分分析

我必须编写一个用于人类动作识别的分类器(高斯混合模型)。我有 4 个视频数据集。我选择其中 3 个作为训练集,其中 1 个作为测试集。在我将 gm 模型应用于训练集之前,我在其上运行 pca。

在测试步骤中我应该做什么?我应该对测试数据执行新的 princomp

或者我应该使用我为训练数据计算的 pca_coeff?

0 投票
1 回答
2144 浏览

r - 如何在具有大型数据集的 R 中使用 princomp() 或 prcomp() 函数,而不转换数据?

我刚刚开始了解 PCA,我希望将它用于超过 4,00,000 行的巨大微阵列数据集。我有样本形式的列,以及基因/基因座形式的行。我确实浏览了一些关于使用 PCA 的教程,并且遇到了 princomp() 和 prcomp() 以及其他一些。

现在,正如我在这里了解到的那样,为了在双图中绘制“样本”,我需要将它们放在行中,将基因/基因座放在列中,因此我必须在将数据用于主成分分析。

但是,由于行数超过 4,00,000,我无法将它们转换为列,因为列是有限的。所以我的问题是,有没有办法使用这些 R 函数对我的数据执行 PCA 而不转置它?如果没有,你们中的任何人都可以建议我这样做的任何其他方式或方法吗?

0 投票
1 回答
40503 浏览

r - 主成分分析 - 如何获得每个参数对 Prin.Comp. 的贡献 (%)?

我想知道测量/参数对计算出的主成分之一的贡献程度。

真实世界的描述:

  1. 我有五个关于物种地理分布的气候参数
  2. 我用这五个参数执行了 PCA
  3. PC1 与 PC2 的图显示了一个有趣的模式

问题:如何获得(每个参数的)对每台 PC 的贡献百分比?

我所期望的:PC1 由参数 1 的 30%、参数 2 的 50%、参数 3 的 20%、参数 4 的 0% 和参数 5 的 0% 组成。PC2由...

带有 5 个虚拟参数的示例:

我的信息隐藏在哪里?

0 投票
1 回答
5527 浏览

r - 从 R 中的 princomp 加载构建分数

我希望能够使用其负载构建主成分分析的分数,但我无法弄清楚 princomp 函数在计算数据集的分数时实际上在做什么。一个玩具例子:

我的理解是分数是负载和重新调整的原始数据的线性组合。通过“手”尝试:

这些列分别偏离了 1.707825、2 和 1.333333 倍。为什么是这样?由于玩具数据矩阵在每一列中具有相同的方差,因此这里不需要进行归一化。任何帮助是极大的赞赏。

谢谢!

0 投票
1 回答
1535 浏览

r - SAS中的proc princomp和R中的princomp命令之间的区别?

我目前正在尝试使用 SAS 中的 proc princomp 命令和 R 中的 princomp() 命令(在 stats 包中)获得等效的结果。我得到的结果非常相似,这让我怀疑这不是两个命令中不同选项设置的问题。然而,输出也有很大的不同,以至于每个数据行的组件得分明显不同。它们也是符号反转的,但这并不重要,当然。

此分析的最终目标是从 PCA 生成一组系数,以便在 PCA 例程之外对数据进行评分(即,可以应用于新数据集以轻松生成评分数据的公式)。

在不发布我的所有数据的情况下,我希望有人可以提供一些关于这两个命令在计算中可能有何不同的信息。我对 PCA 数学知之甚少,无法确定这是过程中的概念差异还是只是内部舍入差异。为简单起见,我将仅发布 PC1 和 PC2 的特征向量。

在 SAS 中:

返回

在 R 中:

返回

如您所见,这些值相似(符号相反),但不相同。得分数据的差异很重要,第一行如下所示:

如果我使用 GLM(在 SAS 中)或 lm()(在 R 中)从评分数据中计算系数,我会得到非常相似的数字(反号),但截距除外。像这样:

在 SAS 中:

在 R 中:

返回

因此,模型截距似乎正在改变评分数据中的值。任何关于为什么会发生这种情况(为什么截距不同)的想法将不胜感激。