2

我有一堆使用包收集的形态学数据geomorph。这些数据如下所示:

259 个矩阵(每个人一个文件)xy20 个地标的坐标(列)。

           [,1]         [,2]
 [1,] -0.2820496783 -0.003257662
 [2,] -0.2501083238  0.020960228
 [3,] -0.2250506399  0.049100368
 [4,] -0.2015860633  0.024673340
 [5,] -0.2246826220  0.001103431
 [6,] -0.0750488845  0.133714363
 [7,]  0.0006292017  0.133626261
 [8,]  0.0679419574  0.117149206
 [9,]  0.1239612670  0.097834963
[10,]  0.2008532330  0.063564419
[11,]  0.2763894852  0.026529132
[12,]  0.3606700636  0.038228394
[13,]  0.3665535317 -0.065490660
[14,]  0.2728682794 -0.086504965
[15,]  0.1113276708 -0.147876722
[16,] -0.0742222455 -0.158015857
[17,] -0.0746248649 -0.117267412
[18,] -0.0775485339 -0.055400903
[19,] -0.1122735300  0.041616289
[20,] -0.1839993037 -0.114286212

该软件包geomorph包含执行主成分分析 (PCA) 的工具,但我认为它不包含任何用于线性判别分析 (LDA) 的工具。还是有什么?

如何对此类数据执行 LDA?

解决方案可能来自包geomorph或来自另一个包。修改geomorph包中的功能plotTangentSpace(例如功能。这个包的功能通常不是很长!)以创建我需要的功能。或者,也许这只是转换数据的问题,以便使用 MASS:::lda 可行(请参阅评论中的讨论)


笔记:

在上面列出的 20 个地标中,我有 4 个半地标(滑块)!半地标用于评估的不是点位置而是曲线。下面是我的矩阵,其中包含半地标的信息。该矩阵被调用semi$sliders并用作 `gpagen 函数的参数,如下所示:

> gpagen(3D_Array_With_All_Individuals, curves = semi$sliders, ShowPlot = T)

> semi$sliders

     [,1] [,2] [,3]
[1,]    6    7    8
[2,]    7    8    9
[3,]    8    9   10
[4,]    9   10   11

3D_Array_With_All_Individuals是一个 3D 数组,其中每一层都是 259 个矩阵之一。

4

0 回答 0