• R语言和医学统计学(10):正态性和方差齐性检验


    本文首发于公众号:医学和生信笔记,完美观看体验请至公众号查看本文。

    医学和生信笔记,专注R语言在临床医学中的使用,R语言数据分析和可视化。

    前言

    这是R语言和医学统计学的第10篇内容。

    主要是用R语言复现课本中的例子。我使用的课本是孙振球主编的《医学统计学》第4版,封面如下:
    在这里插入图片描述

    正态性检验

    在之前的推文总也提起过正态性检验的方法,比如通过QQ图等。今天主要介绍计算法。

    使用课本例8-3的数据

    ### 例8-3
    RD1<-c(2.78,3.23,4.20,4.87,5.12,6.21,7.18,8.05,8.56,9.60)
    RD2<-c(3.23,3.50,4.04,4.15,4.28,4.34,4.47,4.64,4.75,4.82,4.95,5.10)
    
    • 1
    • 2
    • 3

    shapiro wilk检验

    进行正态性检验(W检验):

    shapiro.test(RD1)
    ## 
    ## 	Shapiro-Wilk normality test
    ## 
    ## data:  RD1
    ## W = 0.95903, p-value = 0.7748
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    P值大于0.05,符合正态性。就是这么简单!

    kolmogorov smimov检验

    ks.test(RD1, "pnorm")
    ## 
    ## 	One-sample Kolmogorov-Smirnov test
    ## 
    ## data:  RD1
    ## D = 0.99728, p-value < 2.2e-16
    ## alternative hypothesis: two-sided
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    P值小于0.05,不符合正态性。就是这么简单!

    方差齐性检验

    两样本方差比较的F检验

    使用课本例8-3的数据.

    首先是F检验:

    var.test(RD1, RD2)
    ## 
    ## 	F test to compare two variances
    ## 
    ## data:  RD1 and RD2
    ## F = 16.836, num df = 9, denom df = 11, p-value = 6.517e-05
    ## alternative hypothesis: true ratio of variances is not equal to 1
    ## 95 percent confidence interval:
    ##   4.692491 65.864395
    ## sample estimates:
    ## ratio of variances 
    ##           16.83618
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    P值小于0.05,两样本方差不齐!

    两样本方差比较的Levene检验

    先转换数据格式:

    df <- data.frame(
      rd = c(RD1,RD2),
      group = c(rep("rd1",length(RD1)), rep("rd2", length(RD2)))
    )
    
    str(df)
    ## 'data.frame':	22 obs. of  2 variables:
    ##  $ rd   : num  2.78 3.23 4.2 4.87 5.12 6.21 7.18 8.05 8.56 9.6 ...
    ##  $ group: chr  "rd1" "rd1" "rd1" "rd1" ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    进行Levene检验:

    library(car)
    ## 载入需要的程辑包:carData
    
    leveneTest(rd ~ group, data = df)
    ## Levene's Test for Homogeneity of Variance (center = median)
    ##       Df F value    Pr(>F)    
    ## group  1  18.865 0.0003152 ***
    ##       20                      
    ## ---
    ## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    P值小于0.05,两样本方差不齐!

    多样本方差比较的Bartlett检验

    使用课本例4-2的数据。

    trt<-c(rep("group1",30),rep("group2",30),rep("group3",30),rep("group4",30))
    
    weight<-c(3.53,4.59,4.34,2.66,3.59,3.13,3.30,4.04,3.53,3.56,3.85,4.07,1.37,
              3.93,2.33,2.98,4.00,3.55,2.64,2.56,3.50,3.25,2.96,4.30,3.52,3.93,
              4.19,2.96,4.16,2.59,2.42,3.36,4.32,2.34,2.68,2.95,2.36,2.56,2.52,
              2.27,2.98,3.72,2.65,2.22,2.90,1.98,2.63,2.86,2.93,2.17,2.72,1.56,
              3.11,1.81,1.77,2.80,3.57,2.97,4.02,2.31,2.86,2.28,2.39,2.28,2.48,
              2.28,3.48,2.42,2.41,2.66,3.29,2.70,2.66,3.68,2.65,2.66,2.32,2.61,
              3.64,2.58,3.65,3.21,2.23,2.32,2.68,3.04,2.81,3.02,1.97,1.68,0.89,
              1.06,1.08,1.27,1.63,1.89,1.31,2.51,1.88,1.41,3.19,1.92,0.94,2.11,
              2.81,1.98,1.74,2.16,3.37,2.97,1.69,1.19,2.17,2.28,1.72,2.47,1.02,
              2.52,2.10,3.71)
    
    data1<-data.frame(trt,weight)
    data1$trt <- factor(data1$trt)
    
    str(data1)
    ## 'data.frame':	120 obs. of  2 variables:
    ##  $ trt   : Factor w/ 4 levels "group1","group2",..: 1 1 1 1 1 1 1 1 1 1 ...
    ##  $ weight: num  3.53 4.59 4.34 2.66 3.59 3.13 3.3 4.04 3.53 3.56 ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    进行Bartlett检验:

    bartlett.test(weight ~ trt, data = data1)
    ## 
    ## 	Bartlett test of homogeneity of variances
    ## 
    ## data:  weight by trt
    ## Bartlett's K-squared = 5.2192, df = 3, p-value = 0.1564
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    由结果可知,不能认为不满足方差齐性!

    多样本方差比较的Levene检验

    library(car)
    
    leveneTest(weight ~ trt, data = data1)
    ## Levene's Test for Homogeneity of Variance (center = median)
    ##        Df F value Pr(>F)
    ## group   3   1.493 0.2201
    ##       116
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    由结果可知,不能认为不满足方差齐性!

    本文首发于公众号:医学和生信笔记,完美观看体验请至公众号查看本文。

    医学和生信笔记,专注R语言在临床医学中的使用,R语言数据分析和可视化。

  • 相关阅读:
    是什么让 360 反馈成为一种成功的方法?
    VS配置libtorch,torchvision(vision)的一些问题记录
    C++之面向对象
    PHP转Go,框架选什么?
    javaweb足球资讯网站
    了解一下pnpm
    ABAP读取销售订单选配BOM函数-CS_BOM_EXPL_KND_V1
    时序数据库 | InfluxDB - 行协议
    如何使用Stable Diffusion生成艺术二维码?
    专访乐凯撒CTO黄道泳:看一盒披萨背后的技术之路
  • 原文地址:https://blog.csdn.net/Ayue0616/article/details/127587960