求bartlett.test的R语言源代码

Python013

求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差异分析