温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ggpubr怎么使用

发布时间:2022-03-19 09:59:30 来源:亿速云 阅读:299 作者:iii 栏目:开发技术

今天小编给大家分享一下ggpubr怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

如何定义差异:

说道差异大家首先想到的肯定是生物学上的差异,例如同一基因在两个样品间的表达差异倍数,一般这个倍数从1.2、1.5、2倍都是可以的(转录组里面一般是按2倍作为筛选指标,小编觉得1.2、1.5也是可以接受的)。

另一方面,我们也应考虑随机误差,因为我们无法消除误差,看上去完美的数据也有可能是随机误差造成的,所以,我们在关注生物学差异之外,还要考虑统计学差异。

以上两种差异都是客观上存在的,我们当然是希望数据差异是由实验处理造成的,但随机误差又是客观存在的,所以随机误差发生的概率越小越好。

如何衡量随机误差?

P值(P-value),想必大家都不会陌生,它是用来判定假设检验结果的一个参数,说直白点就是P值代表了一种可能性,衡量的是随机出错的概率。在统计学中,一般要求P值小于0.05;如果P-value=0.05,意味着我们的实验结果有5%的概率是随机误差引起的。 

我们经常用到这样的论述p<0.05(显著),可用一颗星号表示“*”,而两颗星“**”代表p<0.01(极显著);那是不是p<0.01的数据比p<0.05的好,组间的差异也更大呢?答案是否定的!P值衡量的是随机出错的概率,不能衡量差异量变大小,所以我们不能说一个P值<0.01的结果比P值<0.05的结果具有更大的差异,只能说前者出错的概率更低,或者说组间“差异有统计意义”,而不是组间“具有显著的差异”。

P值的计算:

P值的算法有很多种,最常用的是T检验(T-test),亦称student t检验(Student's t test),主要用于样本含量较小(例如n < 30),总体标准差σ未知的正态分布。T检验是用t分布理论来推论差异发生的概率,从而比较两个平均数的差异是否显著。在R语言中T检验用的方法为:t.test(),如果数据不符合正态分布,也就是数据当中有较大的离群值时,可选用非参数秩和检验法,如Wilcoxon test,R语言中对应的方法为:wilcox.test()。关于数据类型及检验方法的选择可参考:差异统计检验如何选择。

单样品T检验

例:某鱼塘水的含氧量多年平均值为4.5mg/L,现在该鱼塘设10点采集水样,问该次抽样的水中含氧量与多年平均值是否有显著差异。

#数据
s<-c(4.33,4.62,3.89,4.14,4.78,4.64,4.52,4.55,4.48,4.26)
shapiro.test(s)   #如果P>0.05 符合正态分布
t.test(s,mu=4.5)  #T检验, 如果 P>0.05 相等

非配对两样本T检验

例:为了了解某一降血压药物的效果,将28名高血压病患者随机等分到实验组和对照组,实验组采用新降压药物,对照组则用标准药物治疗,测得治疗前后舒张压的差值如下。问新药和标准药的疗效是否不同?

high<-c(134,146,106,119,124,161,107,83,113,129,97,123)
low<-c(70,118,101,85,107,132,94)
x<-c(high,low)
group<-c(rep("high",12),rep("low",7))

#正态性检验,wilcox.test()
shapiro.test(high)  #如果P>0.05 符合正态分布
shapiro.test(low)   #如果P>0.05 符合正态分布

#方差齐性检验:如果P>0.05 方差齐
bartlett.test(x~group)
#方法二:car包中leveneTest 检验,spss统计软件默认的检验方法
leveneTest(x~group) 

#T检验, 如果 P<0.05 存在差异

t.test(high,low,paired=F,var.equal=T)   #如果方差不齐,可更改:var.equal=F,
#或者:
t.test(x~group,paired=F,var.equal=T)

配对两样本T检验

例:为了解DSCT冠状动脉造影和超声心动图检查两种方法测定心脏病患者左室舒张末容积的差别,某医院收集心脏病患者12例,同时分别用两种检测方法测得其大小如下,问两种检测方法的检测结果是否不同?

ds<-c(82.5,85.2,87.6,89.9,89.4,90.1,87.8,87.0,88.5,92.4)
cs<-c(91.7,94.2,93.3,97.0,96.4,91.5,97.2,96.2,98.5,95.8)

#方差齐性检验,car包中leveneTest
leveneTest(ds,cs) 
#作差,正态性检验
#差值正态性检验,差值符合正态分布(P>0.05)
d<-ds-cs
shapiro.test(d)

#配对T检验
t.test(ds,cs,paired=T,alternative="two.sided",conf.level=0.95)

统计检验及绘图-ggpubr

ggpubr包既可以做检验,有可以对统计结果进行整理绘图,输出结果比t检验更加友好。

例:两种基因型(HH、RR)的水稻品种,分别在高氮和低氮条件下,的测FW、DW和PH三种生理指标数据:

women_weight <- c(38.9, 61.2, 73.3, 21.8, 63.4, 64.6, 48.4, 48.8, 48.5)
men_weight <- c(67.8, 60, 63.4, 76, 89.4, 73.3, 67.3, 61.3, 62.4) 
mydata <- data.frame( 
                group = rep(c("Woman", "Man"), each = 9),
                weight = c(women_weight,  men_weight)
                )

#统计检验

com1 <- compare_means( weight~ group , data = mydata, method = "t.test")

#结果P=0.015,小于0.05,具有显著差异:
#.y.    group1 group2      p p.adj p.format p.signif method

# weight Man    Woman  0.0154 0.015 0.015    *        T-test

绘图显示

install.packages("ggpubr")
library(ggpubr)
p <- ggboxplot(mydata, x="group", y = "weight", color = "group", palette = "jco", add = "jitter",  short.panel.labs = FALSE)

# 添加p值
p + stat_compare_means(method = "t.test",label.y=100)
# 显示p值但不显示方法
p + stat_compare_means(aes(label = ..p.format..),method = "t.test",label.x = 1.5)

# 只显示显著性水平
p + stat_compare_means(aes(label = ..p.signif..),method = "t.test",label.x = 1.5)

以上就是“ggpubr怎么使用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI