我刚刚学习在统计工具箱中使用函数 pca,当我尝试下面的简单示例时,它返回了错误但我找不到任何错误?
pca_test_2=[1 1 1 1 1 ; 1.9 2.1 2 2 1.8]
我通过它的转置将它们倍增以获得:
pca_test_2=pca_test_2*pca_test_2';
>> [coeff,score,latent]=pca(pca_test_2);
??? Undefined function or method 'pca' for input arguments of type 'double'.
我看过但找不到任何描述如何解决此类错误的内容?
工具箱肯定是安装好的。当我在协方差矩阵上使用 pcacov 它可以工作(对于不同的数据集)?
有人可以解释我做错了什么吗?
当我将相同的数据与具有相同数据集的 svd 一起使用时,它是否也有效?
[u s v]=svd(pca_test_2)
u =
-0.4537 -0.8912
-0.8912 0.4537
s =
24.2493 0
0 0.0107
v =
-0.4537 -0.8912
-0.8912 0.4537
按照建议,我使用 princomp() 再次运行它,见下文;
但是,当将结果与来自 scd 的结果进行比较时,我仍然有点困惑:为什么“coeff”的“u”不一样?(尽管它们显然相似)。
为什么潜在不等于s的对角线?显然它们是完全不同的(我假设它是一个缩放的东西,但鉴于潜在的第二个特征值为零,很难看出可以使用什么缩放?)
[usv]=svd(pca_test_3)
你=
-0.4537 -0.8912
-0.8912 0.4537
小号 =
24.2493 0
0 0.0107
v =
-0.4537 -0.8912
-0.8912 0.4537
[系数、分数、潜伏]=princomp(pca_test_2)
系数 =
0.4525 0.8918
0.8918 -0.4525
分数 =
-5.3040 0
5.3040 0
潜伏=
56.2658
0