使用R做潜剖面分析及其可视化

1. R包选择。使用R做潜剖面分析会用到tidyLPA和tidyverse(这两个具体谁有什么作用我不清楚)

# 载入包
library(tidyLPA)
library(tidyverse)

2. 载入数据。这里我用的是.csv格式数据,如果你的是spss格式,可以使用其他的包加载,也可以将spss的.sav格式转化为.csv格式。我的数据一共11列,也就是11个变量。2-11是我想聚类的变量,第一列是个体的ID,后面可以用来查找对应个案被聚类的到哪一类

# 载入数据
data <- read.csv('文件名.csv')

3. 筛选出做潜剖面分析的变量。这里我是选择从第2列到第11列

# 变量选择
data_select <-select(data,c(2:11))

4. 进行聚类分析。这里的1:6是指你想要聚成几类,1:6就是聚1至6个类,你也可以直接输入4这样的数字,就代表只聚4次。后面的2是聚类的方式选择(这个我也不太理解,应该是按照自己的数据来选择的),下面的图片是6种可选择的方案

# 进行聚类
cluster <- estimate_profiles(data_select,1:6,2)

Figure 1:

 

5. 聚类结果可视化,参考Figure 2。其中,从rawdata到最后,都是对出图的格式调整。具体来讲,rawdata = F指结果图中不包含原始数据;sd = F指不包含误差线;ci = F指不包含置信区间;add_line指加上连线;后面使用“+”连接的是对横纵坐标的修改(如果不加这一条,在你变量名很长的情况下,横坐标显示的会有重叠,很乱,可以参考Figure 3)

plot_profiles(cluster,rawdata = F, sd = F,ci = F, add_line = T) +theme(axis.text.x = element_text(angle = 45, hjust = 0.4, vjust = 0.5))

Figure 2:

 Figure 3:

6. 抽取出正常组和障碍组中包含缺失值的个案。因为用R做聚类时,含有缺失值的个体是会被排除的,所以我们想看一下哪些个案没有参与到聚类中。

#抽取出包含缺失值的个案
missing <- which(rowSums(is.na(data)) >0)
missing_show <-data[missing,]

7. 查看个案被分到哪一类中。因为我们是聚1-6类,这里我们只看聚5类情况下,个案的分布情况。这里的"model_2_class_5"]][["model"]][["classification"]]“是我在ls文件中找到classification然后确定的(这里有点乱,我使用这个方法抽取出并输出的Excel结果正确但是不简洁明了,如果有其他更有效方法,欢迎留言、评论!)。这两行代码运行结束后,会有两个WExcel文件。第一个文件最第一列是个案的顺序列,第二列是个案聚类情况;第二个文件第一列也是顺序列,其他列就是原始数据变量情况。这时我们知道,每个文件里都包含第一列的顺序变量,这个变量在不同的Excel文件中是一一对应的。所以我们可以使用Excel中的vlookup函数将两个Excel数据合并起来。

#将聚5类结果输出为excel文件,同时输出原数据为excel文件。它们对应的顺序是一致的(这里的顺序就是你导出Excel文件第一列),可以通过Excel中的vlookup函数将其对应
write.csv(ls[["model_2_class_5"]][["model"]][["classification"]],file = "E:\\聚类结果.csv")
write.csv(data,file = "E:\\原始数据.csv")

8. 查看聚类模型拟合情况。拟合指标具体含义可见Figure 4.

get_fit(ls)

Figure 4

 

到这里,潜剖面分析就结束啦,第6步骤如果没有缺失值的化可以直接省略;第7步骤可以用来下一步计算”类别概率“也就是每一类所包含的个案有多少。这两步我整理的比较乱,是自己在实践中找到的,能保证正确,但不保证简洁,如果有不清楚的地方或者大家有更好的方法,欢迎留言、评论!

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值