你说的对。函数族seqplot
仅用于状态序列。
要将事件序列绘制为状态序列,您必须首先将它们转换为状态序列。
假设您的事件序列是 TSE 格式(垂直时间戳事件形式)作为actcal.tse
提供的示例文件,您可以使用配套包TraMineR
将它们转换为状态序列。TSE_to_STS
TraMineRextras
对于转换,您必须指定在每个事件之后您所处的状态。您可以通过使用该seqe2stm
函数创建一个转换矩阵来做到这一点。该矩阵的每个单元格都应该给出当我们处于相应的行状态(行名)时发生列事件(列名)时产生的新状态。
为了说明,这里是来自帮助页面的示例TSE_to_STS
data(actcal.tse)
events <- c("PartTime", "NoActivity", "FullTime", "LowPartTime")
## States defined by last occurred event (forgetting all previous events).
stm <- seqe2stm(events, dropList=list("PartTime"=events[-1],
NoActivity=events[-2], FullTime=events[-3],
LowPartTime=events[-4]))
mysts <- TSE_to_STS(actcal.tse[1:100,], id=1, timestamp=2, event=3,
stm=stm, tmin=1, tmax=12, firstState="None")
一旦你有了 STS 形式的状态序列,你就可以创建状态序列对象并绘制它们。
my.seq <- seqdef(mysts)
seqdplot(my.seq)
或者,您可以使用该seqpcplot
函数制作事件序列的平行坐标图。该功能的帮助页面上有很多示例。有关情节的详细信息,请参阅
Bürgin, R. & Ritschard, G. (2014),“分类纵向数据的装饰平行坐标图”,美国统计学家。卷。68(2),第 98-103 页。土井
希望这可以帮助。