2

我想测量汉明序列相似性,其中替换成本不是基于观察到的序列中的替换率,而是基于不同状态研究区域内的空间自相关(因此状态与 DNA 无关,而是与其他事物有关) )。

我将我的研究区域划分为相同大小的网格单元(例如 1000m),并测量在相邻单元中观察到相同“状态”的频率(Rook 案例)。因此,权重矩阵表明从状态AA(在相同状态内移动)比从ABBCA到的概率要高得多C。这已经表明状态具有很高的空间自相关性。

问题是,如果要测量序列相似性,替换矩阵应该0在对角线上。因此,我想知道是否存在一种从“自相关矩阵”到替换矩阵的转换,其0值沿对角线。通过这种方式,我们希望在我们的序列相似性度量中考虑研究区域中的空间自相关。为了进行分析,我正在使用包TraMineR

R 中由四种状态(A、B、C、D)组成的序列的示例矩阵: 序列示例:AAAAAABBBBCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDAAAAAAAAA

自相关矩阵:

A = c(17.50,3.00,1.00,0.05)
B = c(3.00,10.00,2.00,1.00)
C = c(1.00,2.00,30.00,3.00)
D = c(0.05,1.00,3.00,20.00)
subm = rbind(A,B,C,D)
colnames(subm) = c("A","B","C","D")

如何将此矩阵转换为替换矩阵?

4

1 回答 1

1

首先,TraMineR 计算汉明距离,即相异性,而不是相似性。

简单的汉明距离只是两个序列之间不匹配的计数。例如,和之间的汉明距离AABBCCABBBAC2,和之间AAAAAA的汉明距离AAAAAA为 0,因为没有不匹配。

广义汉明允许用替代成本对不匹配(不匹配!)进行加权。例如,如果 和 之间的替代成本AB1.5, 和 之间是 2 BC那么距离将是错配的加权和,即前两个序列之间的 3.5。在一个序列和它自身之间它仍然是零。

据我了解,显示的矩阵不是替代成本矩阵。它是您所谓的“空间自相关”矩阵,您寻找如何将这些信息转化为替代成本。

这个想法是在自相关(在您的情况下为比率)较低时分配高替代成本(不匹配权重),即当在状态 A 附近找到状态 B 的概率较低时,并分配低概率高时的替代成本。由于您的概率矩阵是对称的,因此一个简单的解决方案是对所有非对角项使用 $1 - p(A|B)$,并出于上述原因在对角线上保留 0。

sm <- 1 - subm/100
diag(sm) <- 0
sm

对于非对称概率,您可以使用与用于从转换率得出成本的公式类似的公式,即 $2 - p(A|B) - p(B|A)$。

于 2014-09-23T08:10:10.117 回答