1

我之前在二维数组上使用过 PCA,并且我使用了第一个最能最好地描述分析中所有其他列的方差的 PC 得分向量。下面是一个 R 示例,它显示了最能描述感兴趣的二维数组的方差的 Comp.1 向量。

data <- array(data=sample(12), c(4,3))
data
     [,1] [,2] [,3]
[1,]   11    2   12
[2,]    4    3   10
[3,]    8    7    1
[4,]    6    9    5

output=princomp(data)
output$scores
        Comp.1    Comp.2     Comp.3
[1,]  6.422813  2.865390  0.4025040
[2,]  3.251842 -3.617633 -0.9814571
[3,] -5.856500  1.848419 -1.3819379
[4,] -3.818155 -1.096176  1.9608909

我的问题是如何在 3D 阵列上执行相同的程序?例如,如果我有一个大小为 4 x 5 x 3 的数组,我如何获得与上面找到的 Comp.1 向量等效的 4 x 5 2D 数组?

我在下面提供了一个带有代码和输出的 R 示例。当我查看分数时,它只输出一个组件(而不是预期的 3 个),长度为 60。这是否意味着前 20 个元素对应于第一台 PC,接下来的 20 个对应于第二台 PC,最后 20 个到第三台电脑?如果是这样,princomp 如何安排条目,以便我可以使用前 20 个元素(第一台 PC)返回到原始的 4 x 5 2D 数组?谢谢您的帮助。

data=array(data=sample(48), c(4,5,3))
data
, , 1

     [,1] [,2] [,3] [,4] [,5]
[1,]   47   21   45   41   34
[2,]    1   16   32   31   37
[3,]   39    8   35   10    6
[4,]   48   14   25    3   11

, , 2

     [,1] [,2] [,3] [,4] [,5]
[1,]   12   43   15   36   23
[2,]   17    4    7   26   46
[3,]    2   13   33   20   40
[4,]   18   19   28   44   38

, , 3

     [,1] [,2] [,3] [,4] [,5]
[1,]   42   24   47   21   45
[2,]    5   22    1   16   32
[3,]   30   29   39    8   35
[4,]   27    9   48   14   25

output=princomp(data)
output$scores
           Comp.1
 [1,]  21.8833333
 [2,] -24.1166667
 [3,]  13.8833333
 [4,]  22.8833333
 [5,]  -4.1166667
 [6,]  -9.1166667
 [7,] -17.1166667
 [8,] -11.1166667
 [9,]  19.8833333
[10,]   6.8833333
[11,]   9.8833333
[12,]  -0.1166667
[13,]  15.8833333
[14,]   5.8833333
[15,] -15.1166667
[16,] -22.1166667
[17,]   8.8833333
[18,]  11.8833333
[19,] -19.1166667
[20,] -14.1166667
[21,] -13.1166667
[22,]  -8.1166667
[23,] -23.1166667
[24,]  -7.1166667
[25,]  17.8833333
[26,] -21.1166667
[27,] -12.1166667
[28,]  -6.1166667
[29,] -10.1166667
[30,] -18.1166667
[31,]   7.8833333
[32,]   2.8833333
[33,]  10.8833333
[34,]   0.8833333
[35,]  -5.1166667
[36,]  18.8833333
[37,]  -2.1166667
[38,]  20.8833333
[39,]  14.8833333
[40,]  12.8833333
[41,]  16.8833333
[42,] -20.1166667
[43,]   4.8833333
[44,]   1.8833333
[45,]  -1.1166667
[46,]  -3.1166667
[47,]   3.8833333
[48,] -16.1166667
[49,]  21.8833333
[50,] -24.1166667
[51,]  13.8833333
[52,]  22.8833333
[53,]  -4.1166667
[54,]  -9.1166667
[55,] -17.1166667
[56,] -11.1166667
[57,]  19.8833333
[58,]   6.8833333
[59,]   9.8833333
[60,]  -0.1166667
4

0 回答 0