我有一堆使用包geomorph
收集的形态学数据。这些数据如下所示:
259个矩阵(每个人一个文件),其中x
和y
坐标(列中)为20个地标。
[,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个矩阵之一。