函数seqIplot()

时间:2018-02-06 10:42:40

标签: traminer

我试图通过TraMineR中的函数seqIplot()绘制单个序列。这些单独的序列代表工作轨迹,由前学校毕业生通过WEB调查问卷完成。

使用参数“sortv”,我想根据一个协变量的等级,毕业年份,命名为“PROMO”来对序列进行排序。 “PROMO”是一个包含在名为“covariates.seq”的数据框中的因子变量,它将协变量聚集在一起:

str(covariates.seq)
'data.frame':   733 obs. of  6 variables:
 $ ID_SQ           : Factor w/ 733 levels "1","2","3","5",..: 1 2 3 4 5 6       
   7 8 9 10 ...
 $ SEXE            : Factor w/ 2 levels "Féminin","Masculin": 1 1 1 1 2 1 
   1 2 2 1 ...
 $ PROMO           : Factor w/ 6 levels "1997","1998",..: 1 2 2 4 4 3 2 2 
   2 2 ...
 $ DEPARTEMENT     : Factor w/ 10 levels "BC","GCU","GE",..: 1 4 7 8 7 9 
   9 7 7 4 ...
 $ NIVEAU_ADMISSION: Factor w/ 2 levels "En Premier Cycle",..: NA 1 1 1 1 
   1 NA 1 1 1 ...
  $ FILIERE_SECTION : Factor w/ 4 levels "Cursus Classique",..: NA 4 2 NA 
   1 1 NA NA 4 3 ..

我也使用“SEXE”,即毕业生的性别,作为分组变量。为了绘制各个序列,我的命令如下:

seqIplot(sequences, group = covariates.seq$SEXE,
     sortv = covariates.seq$PROMO,
     cex.axis = 0.7, cex.legend = 0.7)

我预计,通过使用一个过程时间轴(以分度年为序列的原点),按照“PROMO”水平的顺序对序列进行排序,可以得到一组来自最长的(对于年龄较大的毕业生)最短(对于年龄较大的毕业生)。

但是我遇到了一个问题:在输出图中,序列似乎没有根据“PROMO”的级别正确排序。实际上,通过使用上面命令中的“sortv = covariates.seq $ PROMO”,该图不会像预期的那样显示从最长到最短的序列组。它看起来像是在没有使用“sortv”参数的情况下获得的(见下图)。

Without using argument "sortv"

Using "sortv = covariates.seq$PROMO"

请注意,我的对象“序列”中有733个单独的序列,创建如下:

labs <- c("En poste","Au chômage (d'au moins 6 mois)", "Autre situation 
           (d'au moins 6 mois)","En poursuite d'études (thèse ou hors 
          thèse)", "En reprise d'études / formation (d'au moins 6 mois)")
codes <- c("En poste", "Au chômage", "Autre situation",  "En poursuite 
           d'études", "En reprise d'études / formation")

sequences <- seqdef(situations, alphabet = labs, states = codes, left = 
                    NA, right = "DEL", missing = NA, 
                     cnames = as.character(seq(0,7400/365,1/365)),
                        xtstep = 365)

协变量的值按与各个序列相同的顺序排序。协变量“PROMO”不包含任何缺失值。

出了点问题,但是什么?

提前感谢您的帮助,

最佳,

阿诺。

1 个答案:

答案 0 :(得分:0)

sortv中使用因子seqIplot参数可以正常工作,如下例所示:

sdc <- c("aabbccdd","bbbccc","aaaddd","abcabcab")
sd <- seqdecomp(sdc, sep="")
seq <- seqdef(sd)
fac <- factor(c("2000","2001","2001","2000"))

par(mfrow=c(1,3))
seqIplot(seq, with.legend=FALSE)
seqIplot(seq, sortv=fac, with.legend=FALSE)
seqlegend(seq)

enter image description here