matlab中pca的系数不是一个p*p矩阵
我的数据矩阵是matlab中pca的系数不是一个p*p矩阵,matlab,pca,Matlab,Pca,我的数据矩阵是X,它是4999*37152。然后我在Matlab中使用这个命令: [coeff,score,潜伏期,tsquared1,explained1]=pca(X) 输出:coeff为37152*4998,score为4999*4998,潜在为4998*1。根据,系数应该是p*p。那么我的代码有什么问题 正如Matlab文档所说,“X行对应于观测值,列对应于变量”。因此,在一个矩阵中,37152个观测值中只有4999个观测值。几何上,在37152维空间中有4999个点。这些点包含在一个4
X
,它是4999*37152
。然后我在Matlab中使用这个命令:
[coeff,score,潜伏期,tsquared1,explained1]=pca(X)代码>
输出:coeff
为37152*4998
,score
为4999*4998
,潜在
为4998*1
。根据,系数应该是p*p。那么我的代码有什么问题 正如Matlab文档所说,“X行对应于观测值,列对应于变量”。因此,在一个矩阵中,37152个观测值中只有4999个观测值。几何上,在37152维空间中有4999个点。这些点包含在一个4998维仿射子空间中,因此Matlab可以得到4998个方向(每个方向表示为一个包含37152个分量的向量)
有关更多信息,请参阅统计网站:
MATLAB文档是在假设您至少有与变量一样多的观察值的情况下编写的,这是人们通常使用PCA的方式
当然,有可能你的数据实际上有37152个观察值,4999个变量,在这种情况下你需要转换X