TraMineR:seqici 为相同的序列提供不同的结果
TraMineR: seqici provide different result for the same sequence
不知seqici()是否依赖上下文?
我有一个序列,我计算复杂度 seqici(mySeq)。
我在一组序列中有相同的序列,我计算复杂度并有不同的值。
有人可以帮忙知道发生了什么吗?
谢谢,
我想我明白了。是的,复杂性取决于 "context"。
当您将所有序列放在一起时,seqici() 使用 "common" 字母表来计算复杂度。因此,如果一个序列中没有字母表的元素,那么该序列的复杂性将在单独计算与在序列集中计算时发生变化。
如图所示,
d1 <- data.frame(s1 = c("A", "B", "A", "C", "B", "A"))
d2 <- data.frame(s2= c("A", "C", "B", "B", "D"))
d1 <- zoo(d1)
d2 <- zoo(d2)
nm <- list("d1", "d2")
d <- zoo()
for(i in 1:length(nm))
d <- merge(d, get(nm[[i]]))
d <- t(d)
seq <- seqdef(d)
seqici(seq)
//s1 0.8541510
//s2 0.8489541
d1 <- t(d1)
d2 <- t(d2)
seq1 <- seqdef(d1)
seq2 <- seqdef(d2)
seqici(seq1)
//s1 0.9594894
seqici(seq2)
//s2 0.8489541
结果的差异是因为 "D" 在 d2 而不是 d1。
希望这对其他人有帮助:-)
Gabadinho 的复杂性指数取决于序列的总体可能状态(字母表)。根据定义,这是 。这是一个基于您自己的示例:
myseq <- t(data.frame(s1 = c("A", "B", "A", "C", "B", "A")))
seq1a <- seqdef(myseq, alphabet = c("A","B","C"))
seqici(seq1a) # 0.9594894
seq1b <- seqdef(myseq, alphabet = c("A","B","C","D"))
seqici(seq1b) # 0.854151
如果您在创建序列数据时没有指定字母表,TraMineR 将使用您的数据中存在的不同状态来设置它。因此,根据您输入的数据,字母表可能会有所不同,然后您可能会根据字母表获得不同的度量结果。
为避免混淆,最好始终明确定义嵌入序列的字母表。
不知seqici()是否依赖上下文? 我有一个序列,我计算复杂度 seqici(mySeq)。 我在一组序列中有相同的序列,我计算复杂度并有不同的值。 有人可以帮忙知道发生了什么吗?
谢谢,
我想我明白了。是的,复杂性取决于 "context"。 当您将所有序列放在一起时,seqici() 使用 "common" 字母表来计算复杂度。因此,如果一个序列中没有字母表的元素,那么该序列的复杂性将在单独计算与在序列集中计算时发生变化。 如图所示,
d1 <- data.frame(s1 = c("A", "B", "A", "C", "B", "A"))
d2 <- data.frame(s2= c("A", "C", "B", "B", "D"))
d1 <- zoo(d1)
d2 <- zoo(d2)
nm <- list("d1", "d2")
d <- zoo()
for(i in 1:length(nm))
d <- merge(d, get(nm[[i]]))
d <- t(d)
seq <- seqdef(d)
seqici(seq)
//s1 0.8541510
//s2 0.8489541
d1 <- t(d1)
d2 <- t(d2)
seq1 <- seqdef(d1)
seq2 <- seqdef(d2)
seqici(seq1)
//s1 0.9594894
seqici(seq2)
//s2 0.8489541
结果的差异是因为 "D" 在 d2 而不是 d1。
希望这对其他人有帮助:-)
Gabadinho 的复杂性指数取决于序列的总体可能状态(字母表)。根据定义,这是 。这是一个基于您自己的示例:
myseq <- t(data.frame(s1 = c("A", "B", "A", "C", "B", "A")))
seq1a <- seqdef(myseq, alphabet = c("A","B","C"))
seqici(seq1a) # 0.9594894
seq1b <- seqdef(myseq, alphabet = c("A","B","C","D"))
seqici(seq1b) # 0.854151
如果您在创建序列数据时没有指定字母表,TraMineR 将使用您的数据中存在的不同状态来设置它。因此,根据您输入的数据,字母表可能会有所不同,然后您可能会根据字母表获得不同的度量结果。
为避免混淆,最好始终明确定义嵌入序列的字母表。