【问题标题】:the coeff of pca in matlab is not a p*p matrixmatlab中pca的系数不是p*p矩阵
【发布时间】:2015-06-18 19:21:03
【问题描述】:

我的数据矩阵是X,即4999*37152。然后我在 Matlab 中使用这个命令: [coeff, score, latent, tsquared1, explained1] = pca(X);

输出:coeff37152*4998score4999*4998latent4998*1。根据http://www.mathworks.com/help/stats/pca.html,系数应该是p*p。那么我的代码有什么问题?

【问题讨论】:

    标签: matlab pca


    【解决方案1】:

    正如 Matlab 文档所说,“X 的行对应于观察值,列对应于变量”。因此,您输入的矩阵只有 4999 个观测值,而 37152 个观测值。在几何上,在 37152 维空间中有 4999 个点。这些点包含在一个 4998 维的仿射子空间中,因此 Matlab 为您提供了 4998 个方向(每个方向表示为具有 37152 个分量的向量)。

    有关更多信息,请参阅统计网站:

    编写 MATLAB 文档的前提是您至少拥有与变量一样多的观察值,这也是人们通常使用 PCA 的方式。

    当然,您的数据可能实际上有 4999 个变量的 37152 个观测值,在这种情况下您需要转置 X。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-20
      • 2019-04-22
      • 2014-08-17
      • 2020-02-04
      • 2014-02-04
      • 1970-01-01
      • 1970-01-01
      • 2018-10-31
      相关资源
      最近更新 更多