R语言机器学习与临床预测模型61--序列数据分析

2022-07-06  本文已影响0人  科研私家菜

R小盐准备介绍R语言机器学习与预测模型的学习笔记, 快来收藏关注【科研私家菜】


01 序列数据分析

“有些已知的已知,也就是我们知道我们知道。有些已知的未知,也就是我们知道有些事我们不知道。但是,也有一些未知的未知,就是那些我们不知道我们不知道事。”
——唐纳德·拉姆斯菲尔德,美前国防部长

 转换率
 每种状态的持续时间
 序列频率

library(TraMineR)
library(dplyr)
df <- read.csv("data-master/sequential.csv")

table(df$Cust_Segment)
table(df$Purchase1)
table(unlist(df[, -1]))
dfCount <- count(df, Purchase1, Purchase2)
dfCount <- arrange(dfCount, desc(n))
dim(dfCount)
head(dfCount)

seq <- seqdef(df[, -1], xtstep = 1)
head(seq)

效果如下:


02 序列数据分析R语言实现

TraMineR包

TraMineR也可以创建马尔科夫链转移矩阵来支持序列数据分析。
要使用TraMineR包,应该先转换数据,使用
seqdef()函数将数据保存到一个序列类的对象中。这个对象只包含序列数据,没有任何协变量。可以使用参数xtstep = n指定绘图函数中刻度线的距离。


seqiplot(seq, withlegend = "right")

# seqIplot(seq)
seqiplot(seq)
seqdplot(seq)
seqdplot(seq, group = df$Cust_Segment)
seqmsplot(seq, group = df$Cust_Segment)
seqmtplot(seq, group = df$Cust_Segment)

seqE <- seqecreate(seq)
subSeq <- seqefsub(seqE, pMinSupport = 0.05)
plot(subSeq[1:10], col = "dodgerblue")


# seqtab(seq, tlim = 1:5)
# seqmeant(seq)
seqMat <- seqtrate(seq) 
options(digits = 2)
seqMat[2:4, 1:3]
seqMat[, 1]

效果如下:




关注R小盐,关注科研私家菜(VX_GZH: SciPrivate),有问题请联系R小盐。让我们一起来学习 R语言机器学习与临床预测模型

上一篇下一篇

猜你喜欢

热点阅读