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语言机器学习与临床预测模型