欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

统计学检验——正态性检验和方差齐性检验等

程序员文章站 2022-07-11 15:37:41
...

一、统计学基本原理
1 两样本t检验的条件:①两总体都服从正态分布;②两总体方差相等,即方差齐性。
2 配对t检验的条件:差值的总体服从正态分布即可。

二、使用R进行正态性检验和方差齐性检验

1 正态性检验

1.1 ①Shapiro-Wilk检验(W检验):n≤50;②Shapiro-Francia检验(W’检验):50<n<100.

#R语言实现:W/W'检验,Sample size:3 < n < 5000 
shapiro.test(data)
p>0.05,符合正态分布。

R: Shapiro-Wilk Normality Test http://127.0.0.1:19715/library/stats/html/shapiro.test.html

Tips: 变量变换

1 对数变换(常用对数或自然对数)log(data), log10(data)
2 平方根变换  适用于泊松分布资料 sqrt(data)
3 反正弦变换  适用于率或百分比资料
4 倒数变换  适用于数据两端波动较大的资料 1/data

1.2 正态QQ图
正态QQ图(Quantile-Quantile Plots)可以用来鉴别样本数据是否近似于正态分布。

library(car)
#画出QQ图
pdf(qqplot.pdf)
qqnorm(data)
#画出与QQ图相对应的直线(参考线)
qqline(data,col="red")
dev.off()

参考线:在图上添加一条直线,这条直线就是用于做参考的,看散点是否落在这条线的附近。直线由四分之一分位点和四分之三分位点这两点确定的,四分之一分位点的坐标中横坐标为实际数据的四分之一分位点(quantile(data,0.25)),纵坐标为理论分布的四分之一分位点(qF(0.25)),四分之三分位点类似,这两点就刚好确定了QQ图中的直线。

统计分布的检验有很多种,例如KS检验、卡方检验等,从图形的角度来说,我们也可以用QQ图(Quantile-Quantile Plots) 来检查数据是否服从某种分布。

QQ图的原理并不复杂:如果一批数据x1, x2, … , xn 服从某种理论分布,那么将排序后的数据x(1), x(2), … , x(n)和理论分布的分位数q1/n, q2/n, … , qn/n去画散点图,得到的n个点应该大致排列在对角线上,因为这两批数字应该大致相等。

从另一个角度来看,检验一批数据是否服从某种理论分布,也就是看其经验分布和理论分布是否一致,而排序后的数据x(1), x(2), … , x(n)可以看作是经验分布的1/n, 2/n, · · · , n/n分位数,若这些分位数和理论分位数一致,也就说明了经验分布和理论分布相似。

2  方差齐性检验

2.0  F检验
条件:对于两个总体;数据服从正态分布。

R: F Test to Compare Two Variances http://127.0.0.1:19715/library/stats/html/var.test.html
var:方差variance的缩写
var.test()

2.1  Bartlett检验条件:对于多个总体;数据服从正态分布。

#对于单一自变量
bartlett.test(BDNF~State,data=conc)
或者:
bartlett.test(BDNF$Acute~BDNF$Ctl)

#对于多个自变量:我们需要运用interaction()函数将多个自变量折叠为一个单一变量用于表示不同变量因素之间的组合。如果不这样,检验的*度会发生错误,进而导致得到错误的P值。
bartlett.test(BDNF~interaction(State,BMI),data=conc)

2.2  Levene检验这一方法更为稳健,且不依赖总体分布,是方差齐性检验的首选方法。它既可用于对两个总体方差进行齐性检验,也可用于对多个总体方差进行齐性检验,这一方法被封装在R的car程序包中。

#对于单一自变量:
library(car)
leveneTest(BDNF~State,data=conc)

#对于多个自变量:无需使用interaction()函数。
leveneTest(BDNF~State*BMI,data=conc)

2.3  Fligner-Killeen检验是一种非参数检验的方法,完全不依赖总体分布。

#对于单一自变量:
fligner.test(BDNF~State,data=conc)
或:
fligner.test(BDNF$Acute~BDNF$Ctl)

#对于多个自变量:需要运用interaction()函数将多个自变量折叠为一个单一变量。
fligner.test(BDNF~interaction(State,BMI),data=conc)

对上述三种方差齐性检验的方法,其原假设(H0)均为“变量的总体方差全部相同”。

另外,var.test和bartlett.test是对原始数据的方差进行检验的,leveneTest是对方差模型的残差进行组间齐性检验的。一般认为是要求残差的方差齐,所以一般的统计软件都做的是leveneTest

【图文】方差齐性检验_百度文库 https://wenku.baidu.com/view/f225b6b8e87101f69f31951a.html

R语言中方差齐性检验丨数析学院 - 简书 https://www.jianshu.com/p/dc8896fcd505

三、若无法做t检验,可采取的方法

对于计量资料,不满足参数检验条件的假设检验方法,一是可尝试变量变换使其满足参数检验条件,但有时达不到目的;二是用非参数检验
对于等级资料,常用非参数检验。

1 变量变换,使之符合t检验的条件

2  非参数检验

非参数检验对总体分布不作严格假定,又称任意分布检验,它直接对总体分布作假设检验。非参数检验的优点是它不受总体分布的限制,适用范围广。

非参数检验最常用的是秩转换的非参数检验。它是推断一个总体表达分布位置的中位数M(非参数)和已知M0、两个或多个总体的分布是否有差别。

2.1 (小样本)计量资料:使用秩转换的非参数检验,不能用t检验或F检验。若分布已知,但不满足正态和方差齐性条件,要使用秩转换的非参数检验;若分布未知,直接选用秩转换的非参数检验。对于一端或两端是不确定数值(如<0.5、>5.0等)的资料,不管是否正态分布,只能选用秩转换的非参数检验。

选秩转换的非参数检验,会降低检验效能。所以如果能用(近似)t检验或F检验,就不要使用秩转换的非参数检验。

2.2 等级资料
行×列表资料的卡方检验:推断构成比差别。
秩转换的非参数检验:推断等级强度差别。

四、秩转换的非参数检验

秩转换的非参数检验的原理:先将数值变量资料从小到大,或等级资料从弱到强转换成秩后,再计算检验统计量,其特点是假设检验的结果对总体分布的形状差别不敏感,只对总体分布的位置差别敏感

1 配对样本比较的Wilcoxon符号秩检验/符号秩和检验

Wilcoxon秩和检验,用于推断计量资料或等级资料的两个独立样本所来自的两个总体分布的位置是否有差别。

H0:两个总体分布位置相同。

适用范围:用于配对样本差值的中位数和0比较;还可用于单个样本中位数和总体中位数比较。

配对样本差值的中位数和0比较:目的是推断配对样本差值的总体中位数是否和0有差别,即推断配对的两个相关样本所来自的两个总体中位数是否有差别。

单个样本中位数和总体中位数比较:目的是推断样本所来自的总体中位数M和某个已知的总体中位数M0是否有差别。用样本各变量值和M0的差值,即推断差值的总体中位数和0是否有差别。

#秩和检验
wilcox.test(x,y,exact=FALSE)

2 两个独立样本比较的Wilcoxon秩和检验
3 完全随机设计多个样本比较的Kruskal-Wallis H检验
4 多个独立样本两两比较的Nemenyi法检验
5 随机区组设计多个样本比较的Friedman M检验

五、参数检验和非参数检验的区别

总体的特征值叫参数,一些特定分布都有其参数,如正态分布由μ、σ两个参数所决定。参数之于总体,相当于统计量之于样本。

参数检验针对参数做的假设,非参数检验针对总体分布情况做的假设,这个是区分参数检验和非参数检验的一个重要特征

二者的根本区别在于参数检验要利用到总体的信息(总体分布、总体的一些参数特征如方差),以总体分布和样本信息对总体参数作出推断;非参数检验不需要利用总体的信息(总体分布、总体的一些参数特征如方差),以样本信息对总体分布作出推断。

参数检验只能用于等距数据和比例数据,非参数检验主要用于记数数据。也可用于等距和比例数据,但精确性就会降低。

非参数检验往往不假定总体的分布类型,直接对总体的分布的某种假设(例如如对称性、分位数大小等等假设)作统计检验。最常见的非参数检验统计量有3类:计数统计量、秩统计量、符号秩统计量。

正态分布用参数检验,非正态分布用非参数检验。

六、F检验/方差分析

F检验又称方差分析

多个样本均数比较的方差分析的应用条件:①各样本是相互独立的随机样本②各样本均来自正态分布总体③相互比较的各样本的总体方差相等,即具有方差齐性。简言之,就是独立、随机、正态、方差齐

方差分析和t检验总体目的是一样的,都是为了进行样本均数的比较,只不过t检验是对两个样本均数进行比较,方差分析是对多个样本均数进行比较。

实验/试验设计:将所研究的对象分为多个处理组施加不同的干预,施加的干预称为处理,处理因素至少有两个水平。这类科研资料的统计分析,是通过所获得的样本信息来推断各处理组均数间的差别是否有统计学意义,即处理有无效果。常采用的统计分析方法为方差分析(analysis of variance, ANOVA),为纪念Fisher,又称F检验。

方差分析的基本思想:(对于单个处理因素的完全随机设计资料)
设处理因素有g (g≥2)个不同的水平,实验/试验对象随机分为g组,分别接受不同水平的干预,第i (i=1,2,…,g)组的样本含量为ni,第i处理组的第j (j=1,2,…,ni)个观测值用Xij表示。方差分析的目的就是在H0: μ1=μ2…=μg成立的条件下,通过分析各处理组均数Xi之间的差别大小,推断g个总体均数间有无差别,从而说明处理因素的效果是否存在。

方差分析中最重要的几个公式:
SS总=SS组间+SS组内
v总=v组间+v组内
MS组间=SS组间/v组间
MS组内=SS组内/v组内
统计量F=MS组间/MS组内

如果F值接近于1,就没有理由拒绝H0;反之,F值越大,拒绝H0的理由越充分。

【数据分析 R语言实战】学习笔记 第八章 方差分析与R实现 - jpld - 博客园 https://www.cnblogs.com/jpld/p/4594003.html