我对转换成本矩阵存在逻辑问题。我正在使用R包Traminer处理序列不相似性。
我试着给你一个简单的例子(非常简单,但我希望能解释我的问题):
有三个序列,我想计算相异矩阵。 字母表是:H(健康状况),I(在家里生病),IH(在医院生病),D(死亡)
我观察了3个受试者进行了5次观察。这些是序列:
H – H – I – D – D
H – I – I – I – D
I – I – H – IH – IH
替代成本矩阵是4x4表(状态x状态)。 它必须是对称的? 这是我的逻辑问题:虽然可以从状态H,I或IH“转移”到状态Died,但相反是不合逻辑的。
我可以在TraMineR中使用非对称替代成本矩阵吗?
如果在我的数据库中,从状态“I”到“D”的替换成本(例如,用sm = "TRATE"
计算)低于(0.5)从状态“I”到“IH”的替换成本'(0.6),OM算法用“I”替换“H”代替“HI”。
答案 0 :(得分:2)
转换率(估计的转换概率)不应与替代成本相混淆。替代成本应该反映出各州之间的差异。
转换率矩阵(由seqtrate
返回)不对称。
用于计算距离的替代成本,例如最佳匹配距离,必须是对称的。否则,结果将不是距离矩阵,并且将这样的非对称矩阵输入到例如聚类过程将导致意外结果。
从转换率中获得替代成本只是定义替代成本的几种可能性之一。让$ p(i | j)$成为从$ j $过渡到$ i $的概率,它包括将替代成本定义为
$ c(i,j)= 2 - p(i | j) - p(j | i)$
答案 1 :(得分:1)
在我看来,您正在寻找自定义成本矩阵。使用TRATE
或CONSTANT
方法不是强制性的。
要创建自定义矩阵,您只需执行以下操作:
myscm <- matrix(c(0,1,2,
1,0,2,
2,2,0), nrow=3, ncol=3)
dist.om <- seqdist(my.seq, method="OM", sm=myscm)
其中myscm
是您的自定义矩阵
这取自http://lists.r-forge.r-project.org/pipermail/traminer-users/2011-July/000075.html
我相信你有两个选择:
1)为所有过渡和完整的自定义矩阵创建基本原理
2)获取您已经生成的转换矩阵(使用seqsubm(your.seq, method = "TRATE")
)并仅更改不一致的值。这就是我在上次分析中所做的。