R语言实现likert量表可视化

2020-07-13 10:01:42 浏览数 (1)

今天给大家介绍下李克特量表的数据可视化包likert。所谓李克特量表就是由一组陈述组成,每一陈述有"非常同意"、"同意"、"不一定"、"不同意"、"非常不同意"五种回答,分别记为5、4、3、2、1,每个被调查者的态度总分就是他对各道题的回答所得分数的加总,这一总分可说明他的态度强弱或他在这一量表上的不同状态。其最后组成的数据被视为顺序数据,李克特数据可以整理成长条图,以中位数或众数(但不是平均数)表现集中趋势,以四分位距表现分散程度(但不是标准差),或用非参数检验分析,如 Chi-square test,Mann-Whitney test,威尔克科逊检验(英语:Wilcoxon signed-rank test),或Kruskal-Wallistest。接下来我们就看下在R语言中如何实现对此量表的可视化分析。

首先,包的安装:

代码语言:javascript复制
 install.packages(“likert”)

接下来我们看下数据的构成,我们直接引用包自带的数据pisaitems:

代码语言:javascript复制
data(pisaitems)
items29 <-pisaitems[,substr(names(pisaitems), 1,5) == 'ST25Q']
names(items29) <-c("Magazines", "Comic books", "Fiction",
                   "Non-fiction books","Newspapers")
View(head(items29))

然后就包自带的处理函数likert,我们直接看实例:

#基础的应用

代码语言:javascript复制
l29 <- likert(items29)
plot(l29)

如上图,可以看到中间的分割点,此中心代表likert反应的中心。两边分别是低水平和高水平分别对应的百分比是柱状图两侧的数值。当然,我们如果不是通过中心定义高低水平,那么可以自定义,也可以不用标注:

代码语言:javascript复制
#去掉中心标注
plot(l29, centered=FALSE, wrap=30, plot.percents=TRUE)
代码语言:javascript复制
#自定义中心位置
plot(l29, center=1.5, wrap=30)
代码语言:javascript复制
#自定义中心位置
plot(l29, center=2, wrap=30)
代码语言:javascript复制
#自定义颜色
plot(l29,colors=c('orange','darkorange','darkblue','blue','red'))
代码语言:javascript复制
#密度图绘制
plot(l29, type='density')

通过上图我们可以看出每个变量在五种反应中的密度分布。另外还可以将上图合并在一起绘制:

代码语言:javascript复制
plot(l29, type='density', facet=FALSE)
代码语言:javascript复制
#热图绘制
plot(l29, type='heat', wrap=30,text.size=4)
代码语言:javascript复制
# 分组统计
l29g <- likert(items29,grouping= pisaitems$CNT)
plot(l29g)
代码语言:javascript复制
#纵向分布
plot(l29g, panel.arrange='h', wrap=20)
代码语言:javascript复制
#按一定顺序排列分组
plot(l29g, group.order=c('Mexico','Canada', 'United States'))
代码语言:javascript复制
#密度分布图
plot(l29g, type='density')

另外,还有一个函数,那就是reverse.levels()可以将反应等级进行反向调换。我们也可以将数据导出利用print函数:

0 人点赞