【R包】ggstatsplot包-组间或条件间对比可视化分析
专题介绍:R是一种广泛用于数据分析和统计计算的强大语言,于上世纪90年代开始发展起来。得益于全世界众多 爱好者的无尽努力,大家继而开发出了一种基于R但优于R基本文本编辑器的R Studio(用户的界面体验更好)。也正是由于全世界越来越多的数据科学社区和用户对R包的慷慨贡献,让R语言在全球范围内越来越流行。其中一些R包,例如MASS,SparkR, ggplot2,使数据操作,可视化和计算功能越来越强大。R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R作为一种统计分析软件,是集统计分析与图形显示于一体的。它可以运行于UNIX、Windows和Macintosh的操作系统上,而且嵌入了一个非常方便实用的帮助系统,相比于其他统计分析软件,R的学术性开发比较早,适合生物学和医学等学术学科的科研人员使用。
【R语言】已开通R语言社群,五湖四海,天南地北,各行各业,有缘相聚,共享R事,雕刻数据,求解问题,以创价值。喜乐入群者,请加微信号luqin360,或扫描文末二维码,添加为好友,同时附上R-入群。有朋自远方来,不亦乐乎,并诚邀入群,以达相互学习和进步之美好心愿。
有时候,我们需要基于组间或者条件间下对所关心的指标做对比分析,以发现其差异性。我们常用的做法,会根据组间或者条件间的个数,结合参数或者非参数的原理,从统计学里选取合适的检验方法来解答这个问题。
本文分享ggstatsplot包的ggbetweenstats函数,以实现组间或者条件间对比可视化分析。阅读本文,你可以获得:
1 ggstatsplot包是什么?
2 ggbetweenstats函数的作用和使用
3 利用参数grouping.var实现多种情形下的组间对比分析
ggstatsplot包是ggplot2包的扩展包,使用它绘制图形可以包含丰富而有意义的统计信息。一个典型探索性数据分析工作流中,数据可视化和统计方法建模所属两个不同阶段。可视化对建模有影响,而建模又可以指导选择不同的可视化方法,两者之间相互相成,形成一种正反馈。ggstatsplot包的基本思想很简单:以富含统计信息的图形将这个两个阶段合二为一,从而使得数据探索更加简单和快速,提升了工作效率和生产率。
ggstatsplot包安装和加载。
if(!require(ggstatsplot)){
install.packages('ggstatsplot')
require(ggstatsplot)
}
如果你需要论文或者上下文引用这个包,可以R语言控制台执行如下语句:
citation("ggstatsplot")
结果如下:
Patil, I. (2018). ggstatsplot: ‘ggplot2’ Based Plots with Statistical
Details. CRAN. Retrieved from
https://cran.r-project.org/web/packages/ggstatsplot/index.html
A BibTeX entry for LaTeX users is
@Article{,
title = {{ggstatsplot}: ‘ggplot2’ Based Plots with Statistical Details},
author = {Indrajeet Patil},
year = {2018},
journal = {CRAN},
url = {https://CRAN.R-project.org/package=ggstatsplot},
doi = {10.5281/zenodo.2074621},
}
ggbetweenstats函数创建小提琴图、箱形图或者两者的综合图,以进行组间或者条件间对比的可视化分析,统计检验的结果放在副标题的位置。图形上的统计检验结果报告符合APA统计报告的标准。例如,一个对截尾均值进行稳健t检验的统计结果报告。
一、简单示例
# 可重复性测试
ggbetweenstats(
data = iris,
x = Species,
y = Sepal.Length,
title = "Iris类型下萼片长度的分布"
+
element_text(hjust = 0.5), =
element_text(hjust = 0.5)) =
效果图
这个函数的默认返回值,包括:
我们可以按需做调整和配置。
二、配置参数,以更改默认项或者用图形更有意义
# 参数设置,让图片更加有意义或者更改默认项
# 可重复性实验
set.seed(123)
# 数据理解
library(tidyverse)
glimpse(ToothGrowth)
# 可视化
ggbetweenstats(
data = ToothGrowth,
x = supp,
y = len,
type = "r", # robust statistics
k = 3, # number of decimal places for statistical results
xlab = "Supplement type", # label for the x-axis variable
ylab = "Tooth length", # label for the y-axis variable
title = "The Effect of Vitamin C on Tooth Growth", # title text for the plot
ggtheme = ggthemes::theme_fivethirtyeight(), # choosing a different theme
ggstatsplot.layer = FALSE, # turn off `ggstatsplot` theme layer
package = "wesanderson", # package from which color palette is to be taken
palette = "Darjeeling1" # choosing a different color palette
)
效果图
三、参数grouping.var实现多种情形下的组间对比分析
# 可重复性设计
set.seed(123)
# 数据理解
glimpse(movies_long)
xtabs(~mpaa, data = movies_long)
# 可视化
grouped_ggbetweenstats(
data = dplyr::filter(
.data = movies_long,
genre %in% c("Action","Comedy")
),
x = mpaa,
y = length,
grouping.var = genre, # grouping variable
outlier.tagging = TRUE, # whether outliers need to be tagged
outlier.label = title, # variable to be used for tagging outliers
outlier.coef = 2,
ggsignif.args = list(textsize = 4, tip_length = 0.01),
p.adjust.method = "bonferroni", # method for adjusting p-values for multiple comparisons
# adding new components to `ggstatsplot` default
ggplot.component = list(ggplot2::scale_y_continuous(sec.axis = ggplot2::dup_axis())),
title.prefix = "Movie genre",
caption = substitute(paste(italic("Source"), ": IMDb (Internet Movie Database)")),
palette = "default_jama",
package = "ggsci",
plotgrid.args = list(nrow = 2),
annotation.args = list(title = "Differences in movie length by mpaa ratings for different genres")
)
效果图
关于ggbetweenstats函数的使用,请朋友们思考这些问题:
1 上面的图形都是小提琴图和箱形图的综合图,若是只用箱形图,请问怎么实现?
2 在绘制可视化的时候,数据需要做什么准备和表示?
3 图形上面表示统计结果分别采用了什么统计学检验方法,表示什么含义,如何解读?
上述问题,大家有什么想法,请留言。
参考资料:
1 https://indrajeetpatil.github.io/ggstatsplot/
朋友们,请扫描我的微信,备注“R-入群”,加入到我们R语言群,“众人拾柴火焰高”,我们一起构建R语言共同成长体,发挥群体智慧的积极作用,在成就他人的时候,也成就了自己。“我们每个人都需要帮助”。
朋友们,请和我们一起来参与分享。分享就是收获。你可以来R语言公众号上面写文章,分享自己的R语言学习或者使用心得与收获。你可以来R语言群参与讨论和交流,解决自己的问题,也解决他人的问题。
公众号推荐
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!