Hay diferentes maneras de tratar las secuencias de diferente longitud.
En TraMineR
al establecer right="DEL"
en seqdef
las posiciones que faltan después del último estado válido se establecen como void
y serán ignorados por todas las funciones, incluso cuando se utilicen con with.missing=TRUE
.
Con right=NA
se consideran valores perdidos hasta la longitud de la secuencia más larga. En ese caso, el efecto de with.missing=TRUE
es convertir el estado NA en un estado explícito adicional del alfabeto. Los resultados corresponden a lo que obtendríamos llenando las secuencias con un símbolo designado que se añadiría al alfabeto.
Por lo tanto, suponiendo que no hay ningún elemento que falte antes del último estado válido en cada secuencia, las entropías transversales y longitudinales no normalizadas serán las mismas tanto si with.missing
se establece como TRUE
o FALSE
. Sin embargo, los valores normalizados cambiarán, ya que el ajuste with.missing=TRUE
aumenta el tamaño del alfabeto en una unidad.
Para ilustrarlo, consideremos cuatro secuencias de longitud variable y las mismas secuencias llenas de m
fichas para que tengan la misma longitud.
library(TraMineR)
x1 <- "a-b-b-c"
x2 <- "a-a-b-b-b-b-c-c"
x3 <- "a-b"
x4 <- "a-a-b-b-c-c"
y1 <- "a-b-b-c-m-m-m-m"
y2 <- "a-a-b-b-b-b-c-c"
y3 <- "a-b-m-m-m-m-m-m"
y4 <- "a-a-b-b-c-c-m-m"
seqt <- seqdef(c(x1,x2,x3,x4), right="DEL")
seqt.na <- seqdef(c(x1,x2,x3,x4), right=NA)
seqt.mm <- seqdef(c(y1,y2,y3,y4), right="DEL")
Ahora consideramos cinco posibilidades. Las distribuciones transversales pueden representarse con
par(mfrow=c(2,3))
seqdplot(seqt, with.missing=F, withlegend=F)
seqdplot(seqt.na, with.missing=F, withlegend=F)
seqdplot(seqt, with.missing=T, withlegend=F)
seqdplot(seqt.na, with.missing=T, withlegend=F)
seqdplot(seqt.mm, with.missing=T, withlegend=F)
seqlegend(seqtmm)
y las entropías transversales para cada situación se obtienen como
te <- seqstatd(seqt, with.missing=F)$Entropy
te.na <- seqstatd(seqt.na, with.missing=F)$Entropy
te.T <- seqstatd(seqt, with.missing=T)$Entropy
te.na.T <- seqstatd(seqt.na, with.missing=T)$Entropy
te.mm <- seqstatd(seqt.mm)$Entropy
te.tab <- data.frame(te, te.na, te.T, te.na.T, te.mm)
round(te.tab, 3)
## te te.na te.T te.na.T te.mm
## [1] 0.000 0.000 0.000 0.000 0.000
## [2] 0.631 0.631 0.500 0.500 0.500
## [3] 0.000 0.000 0.000 0.406 0.406
## [4] 0.579 0.579 0.459 0.750 0.750
## [5] 0.631 0.631 0.500 0.750 0.750
## [6] 0.631 0.631 0.500 0.750 0.750
## [7] 0.000 0.000 0.000 0.406 0.406
## [8] 0.000 0.000 0.000 0.406 0.406
Observamos que con with.missing=FALSE
la entropía calculada es la misma sea cual sea el valor de la right
(2 primeras columnas). Para with.missing=TRUE
Los resultados difieren. La diferencia entre te.T
y las dos primeras columnas se deben al factor de normalización, es decir, la entropía del alfabeto que tiene un token más (el token que falta) cuando ponemos with.missing=TRUE
.
Resultados similares son válidos para las entropías longitudinales devueltas por el seqient
Función TraMineR.
La entropía longitudinal depende sólo de la distribución, no de la longitud de la secuencia. Por ejemplo, las primeras secuencias de remolque tienen la misma distribución longitudinal y obtenemos:
seqient(seqt)[1:2]
## [1] 0.9463946 0.9463946
La turbulencia depende de la longitud de la secuencia. La Turbulencia es definida por Elzinga (C. Elzinga y A. Liefbroer, 2007) como el logaritmo (en base 2) del producto entre el número de subsecuencias del DSS (secuencia de estados sucesivos distintos) y la inversa de la varianza normalizada del tiempo transcurrido en los estados presentes en la secuencia. Esta varianza normalizada posterior se obtiene dividiendo la varianza por la máxima varianza posible, y es este máximo el que depende de la longitud de la secuencia.
seqST(seqt)[1:2]
## [1] 3.00000 4.79518
Asimismo, el índice de complejidad también depende de la longitud de la secuencia. Este índice se define (A. Gabadinho et al., 2011) como la media geométrica entre la entropía normalizada y la longitud del DSS normalizada por la longitud de la secuencia. Así, la longitud de la secuencia afecta al índice a través de esta última normalización.
seqici(seqt)[1:2]
## [1] 0.7943109 0.5199985
Los valores devueltos por seqient
y seqici
cambiará ligeramente cuando se utilice con el with.missing=TRUE
debido a su efecto sobre el factor de normalización de la entropía.