4 votos

¿Cómo describir objetos de secuencia multicanal en TraMineR?

Aquí he creado un objeto multicanal:

https://github.com/aronlindberg/VOSS-Sequencing-Toolkit/blob/master/creating_multichannel_object.R

Sin embargo, cuando intento utilizar varias funciones para describir las secuencias multicanal, me salen errores diciendo que lo que estoy intentando procesar no es un objeto de secuencia.

He creado mi objeto secuencia con seqdistmc(). ¿Está bien convertir este objeto en un objeto de secuencia común utilizando seqdef()? Esto me permitiría utilizar otras funciones de TraMineR para describir mis secuencias.

Lo mejor, Aron

P.D. ¿Puede alguien con más de 300 de reputación crear la etiqueta "traminer" por favor?

5voto

Thomas Bartelmess Puntos 151

TraMineR no tiene ningún objeto multicanal.

El seqdistmc no crea un objeto de secuencia multicanal, sino que calcula una matriz de disimilitudes por pares entre secuencias multicanal, que se pasa como una lista de objetos de secuencia de estado (cada uno de los cuales es un canal). Esta matriz se puede utilizar para análisis basados en la disimilitud, como la agrupación o el análisis de discrepancia.

Si entiendo bien, lo que quieres es mostrar la lista de objetos de la secuencia de estados. Actualmente no existe ninguna función que permita mostrar dicha colección en un solo paso. Tienes que hacerlo tú mismo. Como ejemplo, utilizo los tres canales creados en el ejemplo del seqdistmc ayuda en línea.

data(biofam)
## Building one channel per type of event left, children or married
bf <- as.matrix(biofam[, 10:25])
children <-  bf==4 | bf==5 | bf==6
married <- bf == 2 | bf== 3 | bf==6
left <- bf==1 | bf==3 | bf==5 | bf==6
## Building sequence objects
child.seq <- seqdef(children)
marr.seq <- seqdef(married)
left.seq <- seqdef(left)

layout(matrix(c(1,2,3,4,5,6),3,2,byrow=TRUE))
seqdplot(child.seq, withlegend=FALSE)
seqlegend(child.seq)
seqdplot(marr.seq, withlegend=FALSE)
seqlegend(marr.seq)
seqdplot(left.seq, withlegend=FALSE)
seqlegend(left.seq)

En lugar de layout efectivamente puede utilizar par(mfrow=c(3,2)) para dividir el área gráfica. En cualquier caso, tiene que especificar withlegend=FALSE y mostrar la leyenda por separado como en el ejemplo.

Espero que esto ayude.

Gilbert

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X