精华内容
下载资源
问答
  • 数据分析 检验组间差异

    千次阅读 2020-08-29 11:07:47
    分析差别:做出一些必要的假设:假设,数据是服从正态分布,而且不同之间不受到其它因素的影响 做下一步的分析:两组之间阅读量的差别,是因为文案本身的原因,还是其它某些随机的因素 具体流程:a.做出两组...

    方差分析-用于两个及两个以上样本差别的显著性检验

    当比较两个不同样本之间的问题时,如:比较两个不同样本(文案)之间的问题

    分析差别:做出一些必要的假设:假设,数据是服从正态分布,而且不同组之间不受到其它因素的影响

                         做下一步的分析:两组之间阅读量的差别,是因为文案本身的原因,还是其它某些随机的因素

    具体流程:a.做出两组之间无差异的假设,并服从正态分布(即u1-u2=0)

                       b.计算样本之间平均值的差异,构建我们需要检验的统计量(Z)

         

    3.选择合适的显著水平(0.05)和临界值(+-1.96)

    4.比较两者之间的大小,判断是否接受默认假设

    展开全文
  • 数据可视化——R语言forestplot包绘制组间差异对比图(森林图forest plot) 概述:使用R语言中的forestplot包绘制组间差异对比图。forestplot包本来用于绘制森林图,此处笔者将此用于绘制组间差异对比图,异曲同工,为...

    数据可视化——R语言forestplot包绘制组间差异对比图(森林图forest plot)

    概述:使用R语言中的forestplot包绘制组间差异对比图。forestplot包本来用于绘制森林图,此处笔者将此用于绘制组间差异对比图,异曲同工,为另一篇博文:数据可视化——R语言ggplot2包绘制组别间指标差异对比图(箱形图及误差条图)提供了另一种实现方案。

    森林图(forest plot)常用于Meta分析,可用于表达统计指标的效应量和置信区间。本文中,笔者将森林图中的效应量用于表示各组间的属性指标差异的中值,森林图中的置信区间用于表示各组间的属性指标差异的四分位距的范围。

    使用工具:R语言中的forestplot包

    如果没有安装forestplot包,输入install.packages(“forestplot”)进行安装。

    以下示例中的数据模拟产生:共5个模型,每个模型都有一个属性指标,且每个模型的每个属性指标都进行了100次重复测量。绘制差异对比图时需要额外的计算,即每两两模型之间指标属性相减求出差异,然后寻找差异值的上、下四分位数和中值即可。

    示例代码如下:

    rm(list=ls()) #清除工作区
    
    library(forestplot)
    
    #生成模拟数据
    # 共5个模型,每个模型都有一个属性指标,且每个模型的每个属性指标都进行了100次重复测量
    group1 <- rnorm(100)+2
    group2 <- rnorm(100)+1
    group3 <- rnorm(100)+0.5
    group4 <- rnorm(100)
    group5 <- rnorm(100)-0.5
    Data <- data.frame(group1=group1,group2=group2,group3=group3,group4=group4,group5=group5)
    
    #计算各个模型属性之间的差值
    Data$group1_2 <- Data$group1 - Data$group2
    Data$group1_3 <- Data$group1 - Data$group3
    Data$group1_4 <- Data$group1 - Data$group4
    Data$group1_5 <- Data$group1 - Data$group5
    Data$group2_3 <- Data$group2 - Data$group3
    Data$group2_4 <- Data$group2 - Data$group4
    Data$group2_5 <- Data$group2 - Data$group5
    Data$group3_4 <- Data$group3 - Data$group4
    Data$group3_5 <- Data$group3 - Data$group5
    Data$group4_5 <- Data$group4 - Data$group5
    
    #计算各个模型之间差值的25%分位数,中位数,75%分位数,同时保留两位有效数字
    Data_differ_quantile <- apply(Data[,6:15],2,function(x) round(quantile(x,c(0.25,0.5,0.75)),digits=2))
    #设置行名
    rownames(Data_differ_quantile)[1:3] <-c("differ_down","differ_median","differ_up")
    
    Data_t <- data.frame(t(Data_differ_quantile)) #转置
    #各个模型间的比较
    pairs_name <- c("Model1 vs. Model2","Model1 vs. Model3","Model1 vs. Model4","Model1 vs. Model5",
               "Model2 vs. Model3","Model2 vs. Model4","Model2 vs. Model5",
               "Model3 vs. Model4","Model3 vs. Model5",
               "Model4 vs. Model5")
    
    pairs_median <- Data_t$differ_median #差值的中值
    pairs_CI <- paste("(", Data_t$differ_down, " ~ ", Data_t$differ_up, ")", sep = "") #差值的四分距的范围
    
    
    
    Data_str <- data.frame(pairs_na=pairs_name,pairs_median=pairs_median,pairs_CI=pairs_CI)
    Data_str <- as.matrix(Data_str) #类型转为矩阵
    Data_str <- rbind(c(NA,"Median","Interquartile ranges"),Data_str) #第一行表示指标说明,NA表示不显示
      
    jpeg(file = "results_Value_1.jpg",width =2000,height = 1800,units = "px",res =300) #结果保存
    
    forestplot(Data_str,  #显示的文本
               c(NA,Data_t$differ_median), #误差条的均值(此处为差值的中值)
               c(NA,Data_t$differ_down), #误差条的下界(此处为差值的25%分位数)
               c(NA,Data_t$differ_up), #误差条的上界(此处为差值的75%分位数)
               zero = 0, #显示y=0的垂直线
               xlog=FALSE, #x轴的坐标不取对数
               fn.ci_norm = fpDrawCircleCI, #误差条显示方式
               boxsize = 0.3, ##误差条中的圆心点大小
               col=fpColors(line = "#CC79A7", #误差条的线的颜色
                            box="#D55E00"), #误差条的圆心点的颜色
               lty.ci = 7,   # 误差条的线的线型
               lwd.ci = 3,   # 误差条的线的宽度
               ci.vertices.height = 0.15, # # 误差条末端的长度
               txt_gp = fpTxtGp(ticks = gpar(cex = 0.5), xlab = gpar(cex = 0.7), cex = 0.7), #文本大小设置
               lineheight = "auto", #线的高度 
               xlab="Differences in assessment indicators between relevant pairs" #x轴的标题
               )
    
    dev.off()
    

    效果图如下:
    在这里插入图片描述
    使用forestplot包绘制组间差异对比图的好处在于整理好要显示的文本和数字,可直接生成图形,且需要设置的参数相对较少。

    想要学习更多关于forestplot包绘制森林图的知识,可以参考:
    https://cran.r-project.org/web/packages/forestplot/forestplot.pdf.

    References

    https://cran.r-project.org/web/packages/forestplot/forestplot.pdf
    https://blog.csdn.net/weixin_38423453/article/details/84850083

    展开全文
  • 最近在对数据进行统计分析时发现自己其实对于统计学并没有一个很系统的了解,尤其是各种假设检验组间差异比较的方法过于繁多,实在是让人眼花缭乱,于是便打算把自己的疑惑及思考都总结记录下来,以便彻底搞清楚这些...

    前 言

    最近在对数据进行统计分析时发现自己其实对于统计学并没有一个很系统的了解,尤其是各种假设检验组间差异比较的方法过于繁多,实在是让人眼花缭乱,于是便打算把自己的疑惑及思考都总结记录下来,以便彻底搞清楚这些逻辑关系。

     

    目 录

    Q1:做组间差异比较的步骤是什么?方法都有哪些?

    Q2:有些资料上提到,当两组服从正态分布的数据进行比较时,小样本(<30)使用t检验,大样本(>30)使用z检验,为什么SPSS等一些软件中只有t检验?

    Q3:为什么 Wilcoxon rank-sum test 又称为 Mann Whitney U test?它们有什么不同?

    Q4:为什么方差分析的结果有差异后,还需要进行“事后多重比较”?

    Q5:是否有可能发生“在方差分析时没有差异,而事后两两比较时出现差异”,或者“在方差分析时有差异,而事后两两比较时却没有差异”这两种情况?

    Q6:为什么事后多重比较不可以直接用t检验进行两两比较,而要用这些专门的事后多重比较方法?

    Q7:什么是“多重比较矫正”?(一个小故事讲清“多重比较矫正”)

    重新回答Q6:为什么事后多重比较不可以直接用t检验进行两两比较,而要用这些专门的事后多重比较方法?

    Q8:所以只要是事后多重比较中有多次的两两比较,都必须要做“多重比较矫正”?

    Q9:如果进行多次方差分析(也就是进行多次“三三比较”、“NN比较”),也需要进行“多重比较矫正”吗?具体应该怎么做?

    Q10:方差分析中的事后多重比较方法大多都会进行“多重比较矫正”,这和文献中常见的“FDR矫正”之间有什么区别?多重比较矫正方法都有哪些?

    Q11:如果要对一些分类变量(如“性别”、“有无吸烟”等)进行差异性检验,该选什么方法?

    综合参考资料


     

    Q1:做组间差异比较的步骤是什么?方法都有哪些?

    当要进行组间差异比较时,首先要对数据有一个清楚的认识,包括是否服从正态分布、方差是否齐性等等,还要知道数据到底是配对的还是不配对的,根据数据的不同,选择的比较方法也不尽相同,但大体上也就只有“参数检验”和“非参数检验”两种。无论是SPSS还是R语言等统计学工具,在实际操作的时候还是需要一步步选择的,具体步骤和方法如下面思维导图所示。

    总体主要包括正态性检验方法(更详细的可查看上一篇博客:正态检验 (Normality Test)——常见方法汇总与简述)、方差齐性检验方法两组样本的参数检验方法、非参数检验方法多组方差分析的参数与非参数检验方法及对应的事后多重比较方法。由于每一类的方法都实在太多,以下仅总结出大部分常见的方法,可点击查看大图。

     


    Q2:有些资料上提到,当两组服从正态分布的数据进行比较时,小样本(<30)使用t检验,大样本(>30)使用z检验,为什么SPSS等一些软件中只有t检验?

    总体服从正态分布的数据在小样本时呈现为t分布,而服从t分布的数据在样本量较大时会渐进于正态分布,也就是无论样本量大小都可以使用t检验。但z检验需要数据严格服从正态分布,但数据量小时服从的是t分布而不是正态分布,因此z检验通常只能用在大样本的情况。显然t检验的使用条件更为宽松,并且完全可以替代z检验,因此可直接使用t检验。

    相关参考:统计检验与多重矫正

     


    Q3:为什么 Wilcoxon rank-sum test 又称为 Mann Whitney U test?它们有什么不同?

    Rank-sum test 秩和检验方法最早是由Wilcoxon提出的,运用的场景是两组样本数量相等,后来Mann和Whitney将其应用到两样本容量不等的情况,因此又称为Mann Whitney U test。在文献中两种写法都有,脑科学研究中更多描述为“Mann Whitney U test”。

     


    Q4:为什么方差分析的结果有差异后,还需要进行“事后多重比较”?

    因为方差分析的结果只说明多组之间存在差异,但并不能明确计算出是哪两组之间存在差异,因此还需要进行两两进行比较以找出多组中哪两组之间存在差异。

     


    Q5:是否有可能发生“在方差分析时没有差异,而事后两两比较时出现差异”,或者“在方差分析时有差异,而事后两两比较时却没有差异”这两种情况?

    有可能,并且这两种情况的存在是合理的。

    (1)方差分析结果显著只是说明组间可能存在显著差异,但某两组之间到底有无显著差异还是要看事后检验,事后两两比较允许无差异情况的存在

    (2)方差分析中,整体上的差异检验和事后多重比较的检验方法是不同的,而不同检验方法的检验效力是不一样的,有的可能对差异比较敏感,而有的却比较保守,因此就有可能造成该情况;

    (3)事后多重比较中,可选用的比较方法比较多,适合数据的检验方法一般都不止一种,可尝试使用其他的方法进行检验,或许会得到不同的结果,再根据实际情况来对结果进行分析(可参考该领域的文献,具体问题具体分析);

    相关参考:方差分析F检验显著,但时候两两比较都不显著的问题

     


    Q6:为什么事后多重比较不可以直接用t检验进行两两比较,而要用这些专门的事后多重比较方法?

    这涉及到“多重比较矫正”的问题。于是又会引申出一个新的问题,就是“什么是多重比较矫正?”因此在解释完这个问题后,再回过头来重新回答这个问题。

     


    Q7:什么是“多重比较矫正”?

    在进行一次两两比较时,单个检验的显著性水平(即Ⅰ型错误率)一般设置为α=0.05,但随着检验次数的增加,也就是进行多次两两比较的时候,Ⅰ型错误会随之增加。简单点说就是,即使是小概率事件,但“夜路走多了也会遇到鬼”(借用知乎上看到的一句很有意思的话)。因此必须要对显著性水平α或计算出来的p值进行“矫正”,以防止Ⅰ型错误增加

    首先通过下表解释一下什么是Ⅰ型错误:

    可能上面这个表很容易让人看得头晕,但简单点说,Ⅰ型错误率就是“原假设是真的,但却计算出原假设是假的,拒绝了原假设”的概率,也就是统计中经常用到的显著性水平α,一般都设置为α=0.05,使得犯Ⅰ型错误错的概率仅为0.05。为了更好地理解“多重检验会增加Ⅰ型错误概率”,并且为什么需要对α进行“矫正”的问题,下面尝试通过讲一个故事来进行解释。

    假设一天只出门一次,且出门碰到鬼的概率为α=0.05,那么出门没碰到鬼的概率为1-α = 1-0.05 = 0.95。如果连续出门10天,每一天都单独来看的话,那么单独每天碰到鬼与没碰到鬼的概率为:

     

     

    如果运气特别好,连续10天出门都没碰到鬼,这概率会是多少?通过计算,这个概率为:0.95^(10) ≈ 0.6,也就是连续10天都不会碰到鬼的可能性实际上只有60%,这显然比单独一天不碰到鬼的可能性95%要少多了,可见运气真的好。因此只要出门天数多,还想要天天都不碰到鬼,这可能性是会随着出门天数的增加而减少的,所以如果不想碰到鬼,最好的办法就是少出门。

    那么,连续10天出门都没碰到鬼的概率为0.6,这还意味着什么?这时可以反过来想一下它的互补事件“连续10天至少有一天碰到鬼”的概率。互补事件的计算方法为:1-0.95^(10) ≈ 1-0.6 = 0.4,也就是说这10天中不管是第几天碰见鬼,也不管碰见了几次鬼,总之只要连续10天都出门,就会有40%的可能至少会碰到一次鬼!这比单独一天碰到鬼的概率0.05要大太多了!那么按照这个规律,如果连续出门20天,30天,甚至100天,“至少有一次碰到鬼”的概率将会是多少?根据上面的计算方法,计算公式为:1-(1-α)^n,作图如下:

     

     

    可见,无论是概率多么小的事件,只要重复的次数越多,碰上的可能性就越大,并且当重复的次数足够多时,也就是出门的次数足够多时,就总会至少有一次会碰到鬼(接近于100%)。所以还是那句话,如果不想碰到鬼,还是少出门吧。

    但减少出门次数通常来讲都是一件非常困难的事情,毕竟每天还要出门上班啊,周末还要出门溜达呀,有没有办法使得连续出门10天,也不会碰到鬼?或者说,即使连续出门10天,也仅接受0.05的概率碰到鬼,而不是0.4的概率碰到鬼,那该怎么办?

    简单!找个算命法师,算个命,作个法,让单独每天碰到鬼的概率都降低一点不就得了

    法师:“你命中五行缺鬼,注定每天都有5%的可能碰到鬼,既然你要连续出门10天,那就让我略施小法,干脆把每天碰到鬼的概率改成 0.05/10=0.005 吧。” 于是单独每天碰到鬼和没碰到鬼的概率就变成:

     

     

    此时,再次按照上面的计算方法,可算出连续10天都没碰到鬼的概率为:0.995(^10) ≈ 0.95,那么它的互补事件“连续10天至少有一天碰到鬼”的概率即为:1-0.995(^10) ≈ 1-0.95 = 0.05。虽然 “连续10天至少有一天碰到鬼”的概率0.05  “单独每天碰到鬼”的概率0.005 相比还是增加了10倍,但最终目的达到了,那就是“即使连续出门10天,也仅接受0.05的概率碰到鬼,而不是0.4的概率碰到鬼”。

    到此,这个故事其实已经讲完了。对应回“多重比较矫正”这个问题,其实“出门碰到鬼的概率”就是“显著性水平/Ⅰ型错误概率α”,“连续出门天数”就是“两两比较次数”,因此当两两比较次数增多时,Ⅰ型错误的概率会随之增加,如果想要避免这样的高错误率,就需要“法师作法”来把“出门碰到鬼的概率”降低,实际上法师用到的法术,就是多重比较矫正”中的各种方法,每种方法都有各自不同的侧重点,以有效降低Ⅰ型错误的概率。而上述故事中法师用到的法术仅仅是其中一种,就是简单粗暴的Bonferroni 矫正方法,直接把α除以出门的次数(两两比较的次数)来达到目的。

    如果用一句话概括,多重比较矫正方法实际上就是设置更严格的阈值来定义统计学的显著性

    最后回到原来的问题:

    重新回答Q6:为什么事后多重比较不可以直接用t检验进行两两比较,而要用这些专门的事后多重比较方法?

    因为事后多重比较时会涉及多次的两两比较,那么Ⅰ型错误就会随着比较次数的增多而增加。而单纯的t检验是不会对显著性水平α值进行修改(矫正)的,永远都是设定为α=0.05,这就会导致无法降低Ⅰ型错误的概率,因此不能直接用t检验进行多次的两两比较,而应该用专门的事后多重比较方法来进行分析,因为这些专门的事后多重比较方法都会通过不同的方法对结果进行矫正,以减少Ⅰ型错误

     


    Q8:所以只要是事后多重比较中有多次的两两比较,都必须要做“多重比较矫正”?

    不是的。从最开始的思维导图中可以看到,在“事后多重比较”中,“证实性研究”和“探索性研究”使用的事后多重比较方法是不一样的。其中:

    证实性研究:在实验设计阶段,根据研究目的或专业知识事先设计好需要比较的组别。如在实验设计时已设计好有一组对照组,n组实验组,最后拿到数据后,只关心实验组和对照组之间的两两比较,而实验组与实验组之间的比较是不在实验设计范围内的,无需比较。即在得到数据前,就已经设计好需要比较的组有哪些,只关心某几个组之间的均数是否有差异,这称之为“事前比较”(priori test)

    探索性研究:在实验设计阶段由于不明确那些组之间的比较是需要关注的,没办法事先设计好需要比较的组别,因此在拿到数据后,所有组的两两比较都需要进行,以进一步确定到底是那两组之间是存在差异的。如在实验设计时,并不知道正常状态、疲劳状态和睡眠状态之间的脑电信号有无差异,所以在采集到数据后,需要两两之间都进行比较才能得到结果,需要考虑所有的比较,这称之为“事后比较”(post hoc test)。(注意在实际操作中会存在这样的情况:在数据收集完成后,为减少工作量,研究者会挑出来一些看似差异比较大的组进行比较,而那些看起来似乎没有差别的组便不再比较,因此在实际操作中并没有做完所有的两两比较,而是只完成了其中几组看起来差异大的两两比较。但要注意的是,即使看似仅进行了其中几组两两比较,但这些“看起来差异大”的组别已经是在所有两两比较中,“通过经验”而不是“检验方法”所筛选出来的结果,所以实际上也还是考虑了所有的两两比较,依然属于“事后比较”。

    一般情况下,证实性研究中的事后多重比较属于“计划内的比较”,一般不需要对多重比较进行矫正,如LSD-t test。而探索性研究的事后多重比较需要把所有组都进行一次两两比较,必须要进行多重比较矫正,因此这两种研究使用的事后多重比较方法是不一样的。

    相关参考:

    多重检验,p值矫正

    多重检验及其生物学应用

    高通量数据的多重检验问题

    如何开展方差分析与多重比较-SPSS

     


    Q9:如果进行多次方差分析(也就是进行多次“三三比较”、“NN比较”),也需要进行“多重比较矫正”吗?具体应该怎么做?

    如一共有三组“正常状态”,“疲劳状态”,“睡眠状态”的脑电信号,需要研究三组之间,不同脑区(一共N个脑区)的脑电信号是否存在差异。那么在分析时,会先选定脑区1,然后对“正常”,“疲劳”和“睡眠”的信号进行方差分析;然后选定脑区2,对三组进行方差分析;以此类推,一共需要做N次方差分析。实际上“多重比较矫正”中的“多重比较”并不局限于“两两比较”,而是指任何比较,因此在上述分析中,一共进行了N次方差分析同样需要进行“多重比较矫正”。只有在对N次方差分析的结果进行多重比较矫正后,仍有显著差异的脑区,才能进入下一步“事后多重比较”。在事后多重比较中,又会涉及到多次的两两比较,此时还需要再进行一次“多重比较矫正”。也就是上述的例子一共需要进行两次“多重比较矫正”。

     


    Q10:方差分析中的事后多重比较方法大多都会进行“多重比较矫正”,这和文献中常见的“FDR矫正”之间有什么区别?多重比较矫正方法都有哪些?

    多重比较矫正主要可划分为两大块,分别为 False Discovery Rates (FDR) correction Family-Wise Error (FWE) correction,这两种矫正方法之间的区别需要再次用到这个表:

     

     

     

    其中Family-wise error rate (FWER)的定义为“至少出现一次Ⅰ型错误的概率”,即

    FWER=P\left \{ C\geq 1 \right \} = 1-(1- \alpha )^n

    False discovery rate (FDR) 的定义为“Ⅰ型错误在总拒绝数量中的比率”,即

    FDR=E(C/(C+D))|(C+D> 0)P\left \{ C+D> 0 \right \}

    该表达式包含了总拒绝数(C+D)=0的情况,但如果拒绝数量不为0,可以直接简单地认为

    FDR=C/(C+D)

    因此FWE矫正方法实际上是通过控制FWER来实现的,为了保证多重比较结果的可靠性,该方法直接通过对显著性水平α进行矫正(控制),假设矫正后的α为α',那么FWE矫正方法就是要保证:

    FWER=P\left \{ C\geq 1 \right \} = 1-(1- {\alpha}' )^n\leq \alpha

    FDR矫正方法则是通过控制错误发现率FDR来实现的,为了保证多重比较结果的可靠性,该方法通过对结果的p值进行矫正(控制),以保证:

    FDR=C/(C+D)\leq \alpha

    这两种矫正的具体方法有很多,如以下思维导图所示(仅列出常见的部分方法,可点击查看大图):

     

    可见,方差分析事后多重比较中使用的矫正方法大部分都为FWE矫正,当然也可以选用FDR矫正方法来对事后多重比较的结果进行矫正。

    需要注意的是,不同领域选用的矫正方法不尽相同,应根据实际研究的问题并参考相关文献来进行选择

    相关参考:

    FWER和FDR(False Discovery Rate) - 简书 (jianshu.com)

    如何通俗地理解Family-wise error rate(FWER)和False discovery rate(FDR)_sch的学习笔记-CSDN博客

    yanlab.psych.ac.cn/Course/V3.1CN/9_StatisticalAnalysis.mp4

     


    Q11:如果要对一些分类变量(如“性别”、“有无吸烟”等)进行差异性检验,该选什么方法?

    首先要注意的是离散数据并不服从正态分布,因此应该选用非参数检验方法来进行比较。常用的方法是卡方检验(Chi-square test),它主要对两个及两个以上的样本率( 构成比)进行比较,或对两个或两个以上的分类变量进行关联性分析。其根本思想就是在于比较理论频数和实际频数的吻合程度或拟合优度问题,如该分类变量不同组之间是否有差异,数据分布是否均匀。(由于只有分类变量才使用卡方检验,因此没有综合到第一个“组间差异检验”的思维导图中。)

    相关参考:

    【一图就懂】t检验 VS 卡方检验-中国全科医学 (chinagp.net)

    统计学——卡方检验和卡方分布_snowdroptulip的博客-CSDN博客_卡方检验

    全流程总结卡方检验,帮你理清分析思路 (baidu.com)

     


    综合参考资料

    组间差异检验,终于有人讲清楚了! - 简书 (jianshu.com)

    样本均数间的多重比较,你想知道的都在这里! - 专栏课程 - 医咖会 (mediecogroup.com)

    方差分析两两比较 - 百度文库 (baidu.com)

    如何理解事后多重比较的方法? - 知乎 (zhihu.com)

    Handbook_of_biostatistic_R/Handbook of Biostatistics and R.md at master · ShixiangWang/Handbook_of_biostatistic_R · GitHub

    GraphPad中国官网 - Prism 8 统计指南 - 统计学原理 (graphpad-prism.cn)    (PraphPad的统计学原理非常值得一读,有很多问题都能在里面找到答案。)

    GraphPad Prism 9 Statistics Guide - Welcome to Prism 9 Statistics Guide   (更推荐PraphPad的英文版网页,相比于直接翻译过来的中文版,一些描述性词语或许更准确一些。)

     


     

    以上所有内容都是个人通过查阅相关资料并根据自己的理解来总结的笔记,或许还有很多地方没有完善或者理解不到位,欢迎各位批评指出!

     

     

    展开全文
  • SAS比较不同年龄段组间差异,卡方检验 医学的朋友写论文在对年龄进行差异性检验时,查了很资料都是基于SPSS做的,这里用SAS实现一下。 用例子说明吧,下面是一个学医的朋友想复现的一张表,来自哪里我也不知道,好...

    SAS比较不同年龄段组间差异,卡方检验

    医学的朋友写论文在对年龄进行差异性检验时,查了很多资料都是基于SPSS做的,这里用SAS实现一下。
    用例子说明吧,下面是一个学医的朋友想复现的一张表,来自哪里我也不知道,好,看表。
    

    例子
    表2中共4个年龄段,想比较两两年龄段之间的组间差异性,在SAS中一个proc freq 过程步就全部搞定啦!
    先把数据导入一下:

    data a;
    	input count r$ c$;
    	cards;
    		184 A 0
    		115 B 0
    		51 C 0
    		24 D 0
    		1809 A 1
    		1048 B 1
    		280 C 1
    		49 D 1
    		;
    run;
    proc print data=a; run; /*看一眼数据*/
    
    表2中的数据放入SAS是这个样子哒~
    

    数据集
    接下来就比较差异性了,都是分类变量,所以计算卡方值,通过P值比较有没有差异性。程序如下:

    proc freq data=a;
    	tables r*c/chisq;   /*四组年龄段组间比较一下*/
    	weight count;
    run;
    

    结果如下:
    四组年龄段组间差异性
    接下来是年龄段1和年龄段2之间的比较,代码如下:

    proc freq data=a;
    	where r in('A','B');
    	tables r*c/chisq;
    	weight count;
    run;
    

    这是结果展示:
    年龄段1和年龄段2之间的差异性比较
    接下来是年龄段1和年龄段3之间的比较,代码如下:

    proc freq data=a;
    	where r in('A','C');
    	tables r*c/chisq;
    	weight count;
    run;
    

    这是结果展示:
    年龄段1和年龄段3之间的组间差异比较
    其他几组之间的差异性比较代码如下,结果就不一一展示了,与例子中给的结果是完全一致的。

    	proc freq data=a;
    		where r in('A','D');
    		tables r*c/chisq;
    		weight count;
    	run;
    	proc freq data=a;
    		where r in('B','C');
    		tables r*c/chisq;
    		weight count;
    	run;
    	proc freq data=a;
    		where r in('B','D');
    		tables r*c/chisq;
    		weight count;
    	run;
    	proc freq data=a;
    		where r in('C','D');
    		tables r*c/chisq;
    		weight count;
    	run;
    

    上面是按步骤简单说明,按上面操作是可以实现论文中的要求的。But,其实每部分的程序都差不多,所以可以编一个小小的宏函数,就可以全部搞定啦!

    %macro group_chisq(a,g1,g2);
    	proc freq data=&a;
    		where r in("&g1","&g2");
    		tables r*c/chisq;
    		weight count;
    	run;
    %mend;
    %group_chisq(a,A,B)
    %group_chisq(a,A,C)
    %group_chisq(a,A,D)
    %group_chisq(a,B,C)
    %group_chisq(a,B,D)
    %group_chisq(a,C,D)
    

    需要注意的是宏函数里面的r和c分别对应了原始数据集里的变量,我并没有改。

    展开全文
  • 群落组间差异分析

    千次阅读 2019-08-13 14:09:57
    根据丰度信息,找出不同分之间的差异因素(物种、功能),继而确定其生物学的相关性。 2.专业分析软件 Metastats LEfSe STAMP Metastats 应用范围: 只能两组样本之间比较(非参数T检验(参数T检验,一般用于正态...
  • //2014年9月6日
  • 数据分析中,按照具体维度将数据分组进行组间比较是十分常见的,例如在零售业态中,按照性别、城市、收入水平将消费者进行分组进行对比分析。看似简单,其实这其中经常伴随着拍脑袋决策的危险。以下数据案例可以...
  • Stata:个变量组间均值\中位数差异检验

    万次阅读 多人点赞 2019-05-30 10:34:28
      作者:韩少真(西北大学) || 刘婉青(西北大学) Stata 连享会: 知乎 | 简书 | 码云 | CSDN ...2019暑期Stata现场班,7.17-26日,北京,连玉君+刘瑞明 主讲 ... Stata实现组间均值或中位数差异检验的常见...
  • 252体现组间差异OTU/模块的微生物网络图本节作者:李雨泽 西北农林科技大学版本1.0.4,更新日期:2020年8月23日本项目永久地址:https://github.com/Yong...
  • R之组间差异的非参数检验

    千次阅读 2017-12-27 21:18:21
    # t 检验 # 在研究中最常见的行为就是对两个进行比较。接受某种新药治疗的患者是否较使用某种现 ...这里我们将关注结果变量为连续型的组间比较,并假设其呈正态分布。 # 为了阐明方法,我们将使用MA...
  • 阅读时长:10 min 背景介绍(Introduction)宏基因学宏基因学目前的主要研究方法包括:16S/ITS/18S扩增子、宏基因、宏转录和代谢,其中以扩增子研究最为广泛。目的意义本系列文章将带领大家结合较新的16S...
  • 组间差异的非参数检验 若数据无法满足t检验或ANOVA的参数假设,可使用非参数方法 两组的比较 Mann-Whitney U检验 两组数据独立时使用。 用来判断一个总体中获得更高得分的概率是否比另一个总体要大。 > library...
  • 数据可视化——R语言ggplot2包绘制组别指标差异对比图(箱形图及误差条图) 使用工具:R语言中的ggplot2工具包, RcolorBrewer颜色工具包 有时,我们需要对个模型之间的性能评估的重复测量指标进行比较,如何对比...
  • R语言组间多重比较

    万次阅读 多人点赞 2018-04-26 10:58:57
    TableOne给我们提供了多组间整体的比较方法(Default ...)在做组间比较时有几种常用的方法,根据实验设计的不同合理选择不同方法才是正解!Show time!&gt; 先来看一个数据示例data &lt;- data.test其中 ...
  • 输入两组需要检验有无显著性差异的数据,一列为组(分组变量),一列为数据(检验变量) 选择比较平均值→独立样本T检验 设置分组变量和检验变量 ... 填写组名 ...莱文方差等同性检验,第... 0.05,可以认为A、B组数据
  • 在预算费用调整后,预算管理人员都会希望看到各单位预算费用的初始情况和调整情况,简单直观地观察到哪些数据有变更,甚至观察到变更值是多少,检查各单位的预算变更情况,严格控制和调控费用的输出情况,甚至用于...
  • (1)检验每组数据是否服从正态分布; 第一组数据利用Matlab编译程序如下: clc; clear; load('c.mat'); c=c';%转置 alpha=0.05;%0.95置信度 % 第一组数据正态分布判断  [mu,sigma]=nor...
  • LEfSe分析可以实现个分组之间的比较,还进行分组比较的内部进行亚组比较分析,从而找到组间在丰度上有显著差异的物种(即biomaker)。 原理 首先在多组样本中采用的非参数检验Kruskal-Wallis秩和检验检测不同分组...
  • 如何比较两个数据源的差异或相同

    千次阅读 2014-01-14 14:20:46
    比较两列或者两表的差异或者重复,是很对账或者跟单员经常要面对的问题,但如果基础知识不好的话,很时候是纯手工和纯视力活。   其实,只要掌握了COUNTIF和VLOOKUP函数的用途和用法,这类问题简直就...
  • 用limma包进行多组差异表达分析

    千次阅读 2020-03-15 00:20:16
    写在前面:最近在使用limma包进行差异表达分析,参考了网上许多教程都觉得说的云里雾里,很不清楚。经过我自己一段时间非常痛苦的钻研,弄明白了,解决了我的实际需求。于是决定将我的分析经验写下来,分享给需要的...
  • 菜鸟学R语言(组间多重比较

    千次阅读 2020-07-09 23:10:40
    菜鸟学R语言(组间多重比较) 经过方差分析可以说明各总体均值差异是否显著,即只能说明均值不全相等,但不能具体说明哪几个均值之间有显著差异。此时多重比较就派上用场了,在科研中也是比较常用的方法。 具体...
  • 转录分析——差异表达分析

    千次阅读 2019-06-24 16:47:59
    setwd("E:/shengwuxinxi/基因重测序数据操作步骤/作业") #如果以前没有使用过DESeq,则需要到Bioconductor上查找你的R版本所对应的安装包方式[Bioconductor](http://www.bioconductor.org/) #加载安装包 library...
  • JMP比较组均值,检查差异

    千次阅读 2010-12-06 11:43:00
    <br /> <br /> <br /> <br /> <br />
  • 1. 加载R包和输入数据 rm(list = ls()) library("DESeq2") library("limma") library("edgeR") expr = read.csv("mRNA_exprSet.csv",sep = ',',header=T) head(expr) TCGA-mRNA数据链接 链接:...
  • 差异表达分析通常作为根据基因表达矩阵进行生物信息学分析的第一步,有助于我们观察基因在不同样本中的表达差异,从而确定要研究的基因和表型之间的联系。常用的基因表达数据来自基因芯片或高通量测序。虽然矩阵看...
  • 使用DESeq2进行两组差异分析

    千次阅读 2018-09-26 19:58:00
    欢迎关注”生信修炼手册”!DESeq2 接受raw count的定量表格,然后根据样本分组进行差异分析,具体步骤如下1. 读取数据读取基因的表达量表格和样本的分组信息两个文件,其中表达量...
  • 利用R包DEseq2进行差异表达...转录组数据分析主要参考了生信技能树Jimmy老师的相关课程及推文。 RNA-seq的read count普遍认为符合泊松分布,但是之前分析过的芯片数据符合正态分布,所以筛选DEGs的方法有一定差别。 .

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 278,937
精华内容 111,574
关键字:

多组间数据差异比较