vlambda博客
学习文章列表

R语言实现likert量表可视化

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

首先,包的安装:

 install.packages(“likert”)

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

data(pisaitems)items29 <-pisaitems[,substr(names(pisaitems), 1,5) == 'ST25Q']names(items29) <-c("Magazines", "Comic books", "Fiction", "Non-fiction books","Newspapers")View(head(items29))

R语言实现likert量表可视化

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

#基础的应用

l29 <- likert(items29)plot(l29)

R语言实现likert量表可视化

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

#去掉中心标注plot(l29, centered=FALSE, wrap=30, plot.percents=TRUE)

R语言实现likert量表可视化

#自定义中心位置plot(l29, center=1.5, wrap=30)

R语言实现likert量表可视化

#自定义中心位置plot(l29, center=2, wrap=30)

R语言实现likert量表可视化

 

#自定义颜色plot(l29,colors=c('orange','darkorange','darkblue','blue','red'))

R语言实现likert量表可视化

#密度图绘制plot(l29, type='density')

R语言实现likert量表可视化

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

plot(l29, type='density', facet=FALSE)

R语言实现likert量表可视化

 

#热图绘制plot(l29, type='heat', wrap=30,text.size=4)

R语言实现likert量表可视化

# 分组统计l29g <- likert(items29,grouping= pisaitems$CNT)plot(l29g)

R语言实现likert量表可视化

 

#纵向分布plot(l29g, panel.arrange='h', wrap=20)

 

R语言实现likert量表可视化

#按一定顺序排列分组plot(l29g, group.order=c('Mexico','Canada', 'United States'))

 

R语言实现likert量表可视化

#密度分布图plot(l29g, type='density')

 

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