数据可视化

您所在的位置:网站首页 r语言如何求p值 数据可视化

数据可视化

2024-01-13 01:55| 来源: 网络整理| 查看: 265

数据可视化——R语言为ggplot图形添加P值和显著性水平 准备安装和加载R包示例数据 均值比较的方法用于添加P值的R函数compare_means()stat_compare_means() 独立双样本组间比较配对双样本组间比较多组样本的组间比较多个分组变量其他绘图方式

本文对一篇英文博客进行翻译,博客原文链接:Add P-values and Significance Levels to ggplots

概述:本文介绍如何轻松地为ggplot图形添加P值和显著性水平:

比较两组或多组的均值自动地将P值和显著性水平添加到ggplot图形中,如箱形图,点图,条形图和折线图等

使用工具: R语言中的ggplot2包和ggpubr包

在这里插入图片描述

准备 安装和加载R包

本文使用ggpubr包,要求版本高于0.1.3。ggpubr是一个基于ggplot2的计算工具包。

直接输入以下命令从CARN中下载安装 install.packages("ggpubr") 也可以从GitHub中下载安装最新版本 if(!require(devtools)) install.packages("devtools") devtools::install_github("kassambara/ggpubr") 加载ggpubr包 library(ggpubr)

ggpubr的官方文档可在以下位置获得:http://www.sthda.com/english/rpkgs/ggpubr

示例数据

示例数据集:ToothGrowth

data("ToothGrowth") head(ToothGrowth)

示例数据如下:

## len supp dose ## 1 4.2 VC 0.5 ## 2 11.5 VC 0.5 ## 3 7.3 VC 0.5 ## 4 5.8 VC 0.5 ## 5 6.4 VC 0.5 ## 6 10.0 VC 0.5 均值比较的方法

R中用于两组或多组间均值比较的标准统计方法在之前的文章也有描述:comparing means in R

均值比较的常见方法:

方法R实现函数描述T-testt.test()比较两组(参数检验)Wilcoxon testwilcox.test()比较两组(非参数检验)ANOVAaov()或anova()比较多组(参数检验)Kruskal-Walliskruskal.test()比较多组(非参数检验)

以下链接提供了各种方法的详细介绍:

单样本均值与已知均值的比较

单样本T检验(参数检验)

单样本Wilcoxon检验(非参数检验)

独立双样本均值比较

非配对双样本T检验(参数检验)非配对双样本Wilcoxon检验(非参数检验)

配对双样本均值比较

配对双样本T检验(参数检验)配对双样本Wilcoxon检验(非参数检验)

两组以上的均值比较

方差分析(ANOVA, 参数检验) 单因素方差分析双因素方差分析 Kruskal-Wallis检验(替代单因素方差分析的非参数检验) 用于添加P值的R函数

介绍两个ggpubr包中的函数

compare_means():用于执行均值比较stat_compare_means():用于在ggplot图形中自动添加P值和显著性水平 compare_means()

该函数用于执行均值比较。该函数与标准的R函数相比,灵活性更强。

简化形式如下:

compare_means(formula, data, method = "wilcox.test", paired = FALSE, group.by = NULL, ref.group = NULL, ...) formula:指定一个公式,公式形式为 x ~ group,其中,x 表示一个数值型变量,group 表示一个因子型变量,包含一个或多个水平。例如,一个示例公式为 formula = TP53 ~ cancer_group,表示在 cancer_group 对应的各水平间比较TP53的表达水平;也可以同时指定多个响应变量,如 formula = c(TP53, PTEN) ~ cancer_group。data:指定一个数据框(data.frame),数据框需包含formula中的变量。method:指定统计检验的方法。默认为“wilcox.test”,即Wilcoxon检验(非参数检验);也可指定其他统计方法: “t.test”,即T检验(参数检验)。“t.test”和“wilcox.test”用于两组样本间的比较。当超过两组时,将会执行两两比较(pairwise comparison)。“anova”(参数检验)或 “kruskal.test”(非参数检验),用于执行多组间的单因素方差分析。 paired:指定一个逻辑变量,表示是否需要执行配对检验,仅适用于t.test 和wilcox.test。group.by:指定一个分组变量的字符名,用于在统计检验之前对数据进行分组。当存在group.by指定的变量时,均值比较将在不同水平的各个子集数据中执行。ref.group:指定一个组别的字符名,作为对照组(reference group)。如果指定,各个分组水平将与对照组水平进行比较。也可指定ref.group为“.all.”,表示每个分组水平将于所有分组水平(如base-mean)进行比较。 stat_compare_means()

该函数是对ggplot2的扩展,可将均值比较后的P值添加到ggplot图形中,如箱形图、点图、条形图和折线图等。

简化形式如下:

stat_compare_means(mapping = NULL, comparisons = NULL hide.ns = FALSE, label = NULL, label.x = NULL, label.y = NULL, ...)

mapping:通过 aes() 设置绘图时的aesthetic

comparisons:指定一个列表(list),每个列表元素需为长度等于2的向量。向量的内容可以为X轴的两个组别名(字符型),也可以是两个感兴趣组的组别索引(整数值),表示采用指定的两个组别进行比较。

hide.ns:逻辑变量,如果设为TRUE,显示显著性水平时将隐藏 ns 字样,即组间差异不显著时不显示 ns 字样。

label:指定一个字符串,表示标签类型。可为:“p.signif”(显示显著性水平),“p.format”(显示格式化的P值)。

label.x, label.y:指定一个数值,表示显示标签的绝对坐标位置。

…:传递给函数compare_means()的参数,如method、paired、ref.group。

独立双样本组间比较

执行统计检验

compare_means(len ~ supp, data = ToothGrowth)

示例结果如下:

## # A tibble: 1 x 8 ## .y. group1 group2 p p.adj p.format p.signif method ## ## 1 len OJ VC 0.0645 0.0645 0.064 ns Wilcoxon

method默认为“wilcox.test”(非参数检验),可指定method = “t.test”,表示T检验(参数检验)

返回值为具有以下列的数据框:

.y.:用于统计检验的数值变量

p:P值

p.adj:调整后的P值,调整P值的默认方法为p.adjusthod = “holm”

p.format: 格式化的P值

p.signif:显著性水平,即用不同数量的 * 表示显著性水平

method:用于组间比较的统计方法

创建添加P值的箱形图

p


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3