求bartlett.test的R语言源代码

Python020

求bartlett.test的R语言源代码,第1张

bartlett=function (x, g)

{

if (length(x) != length(g))

stop("'x' and 'g' must have the same length")

r <- nlevels(g)

x <- split(x, g)

n <- sapply(x, "length") - 1 #######ni-1

v <- sapply(x, "var")##每组方差Si2

n.total <- sum(n)############n-r

v.total <- sum(n * v)/n.total####S2

STATISTIC <- ((n.total * log(v.total) - sum(n * log(v)))/(1 + (sum(1/n) - 1/n.total)/(3 * (r- 1))))###K2

PARAMETER <- r - 1###自由度

PVAL <- pchisq(STATISTIC, PARAMETER, lower.tail = FALSE)####计算P值

cat("\t\tBartlett test of homogeneity of variances\n")

cat( paste(deparse(substitute(x)), "and", deparse(substitute(g))),"\n")

cat("Bartlett's K-squared =",STATISTIC,"\n")

cat("df =",PARAMETER,"\n")

cat("p-value =",PVAL,"\n\n")

}

1 读取,计算均值,箱图观察

2 查看数据分布

2.1 hist直方图

2.2 qqnorm散点图

3 Shapiro-Wilk正态性检验

4 方差齐性检验

意义:方差分析就是在大家误差水平差不多的条件下看控制和对照组是不是有显著差异。那方差其实就是误差水平了。当方差不一致的时候,这个方法就没法分辨出究竟是控制造成的差异还是,内在的波动造成的差异。

参考: https://www.zhihu.com/question/21195390

参考: https://blog.csdn.net/tiaaaaa/article/details/58130363

4.1 F检验

使用条件:数据正态分布,只可以检验两个样本

4.2 bartlett检验

使用条件:正态分布的数据,多个样本

4.3 levene检验

没有条件:数据可不具正态性,可以检验多个总体的方差齐性

SPSS的默认方差齐性检验方法

5 差异检验

5.1 参数检验:T检验

使用条件:两样本来自正太分布总体,方差齐

5.2 非参数检验:Wilcoxon秩和检验(两样本)

参数:

参考: https://www.jianshu.com/p/f30d1fe877ea

5.3 非参数检验:Kruskal-Wallis(KS)秩和检验(多样本)

5.4 Deseq两组reads count差异分析

“二八法则” 运用到我们的统计学习中,就是用20%的时间精力去习得最重要最常用80%的技巧和能力。统计学的东西很多很繁杂,如果面面俱到的话,精力不够,时间不足,还不一定能用的到。所以这里写到的就是最常用的医学统计能用到的,争取是能够学的到,用的上的统计方法。

首先先用上一副从别处习得的统计方法选择的图

这幅图可以说从问题入手,去选择相应的方法,相比于教科书,确实思维方式上就有所不同。更符合平时问题遇到的情况。

那么为什么要在比较之前考虑方差是否齐性呢。用R来做两组数据,进行比较。

两组数据a,b平均数都是0,但是能够说两组数据一致吗,二者的方差前者12,后者1222 是完全不同,所以必须要进行方差比较,比较二者是否一致。

所以第一步就是检验是否为正态分布和方差齐性,二者的检验同样都可以在R中完成。

在R中可以使用如下函数进行正态分布检验。

通过R生成随机数组d,使用shapiro.test()函数检验,p值大于0.05,不拒绝原假设,即就是数组符合正态分布。

方差齐性检验可以通过R软件的car包中的bartlett.test函数输出Bartlett检验,使用leveneTest()函数输出Levene检验。

使用"InsectSprays"数据集中的数据进行检验分析,可发现Bartlett检验的p值小于0.05,拒绝 ,即就是两组数据的方差不齐。我们作图观察。

可以看出组别之间的方差确实差异比较大。

继续使用LeveneTest包进行检验。

检验conformity, fcategory两组数据是否方差齐性,得到的p值大于0.05,不能拒绝原假设,即数据方差齐。conformity,fcategory, partner.status两组数据同样方差齐性。作图观察。

好了,通过上面的一系列检验,对数据的分布情况有了了解,下一步就可以根据是否正态分布及是否符合方差齐性选择参数检验或者非参数检验。

参考文章及书目

R语言统计分析与应用-汪海波

白话统计-冯国双

一张图说明统计方法的选择

R语言中方差齐性检验丨数析学院

方差分析与R实现