差异性分析之方差分析(ANOVA)

差异性分析之方差分析(ANOVA)

前言

本篇文章的初心在于帮助自己随时温习一些统计学检验方法,使用SPSS+R两类分析软件对数据进行检验。差异性分析的类别有很多,会在今后慢慢更新。

本文末会放参考的文章链接,希望在成为学术搬运工的同时有所创新,谢谢支持!

1. 方差分析的原理

方差分析用于比较两个或多个样本均值是否相等的统计方法,即比较两个或多个总体间是否存在显著性差异。

本质就是进行定类变量与定量变量之间的分析

方差分析是用变异的思想,将总的变异分为组间变异和组内变异,组内变异往往是个体变异导致,一般不会太大;而组间变异除了个体变异外,还有组间干预措施导致的变异。

R.A. Fisher认为,如果组间的变异除以组内的变异,结果远远的大于1,就有理由认为,组间的干预措施在发挥着作用。

2. 方差分析的作用

判断不同组别数据是否存在差异性:不同类别群体下某一指标的差异性。

3. 方差分析的类别

单因素方差分析:分析一个研究因素水平下的定量变量比较

双因素方差分析:分析两个研究因素水平下的定量变量比较

多因素方差分析:分析两个以上的研究因素水平下的定量变量比较

4. 方差分析前的数据准备

4.1 对数据的要求

进行方差分析的数据需要满足以下三个条件:

【正态性】数据服从正态分布或者近似正态分布

不同组数据的响应变量(因变量)需要满足正态分布或者近似正态分布。

【方差齐性】不同组数据的方差应该相近(方差齐性)

若是有一组数据方差波动较大,检验结果显示的显著差异性,可能是由于某一组数据方差过大导致的。(可以尝试对定量变量进行对数化处理)

【独立性】各组数据之间应该是独立的(独立性)

指各组数据之间应该是相互独立的,即每个观测值只能属于一个组,不同组之间不能有重复或交叉。

注意:当数据不满足正态分布时,根据中心极限定理,当样本足够大时,随机变量的均值将近似服从正态分布,而与其在总体中的分布无关,这种近似在样本量大于30时,比较明显。

4.2 数据到底长啥样

拿到的数据不一定都能直接使用,也就是数据分析中,最开始的数据清洗和数据预处理部分。符合数据分析软件的数据格式应为:组别自变量,定量因变量。例如在SPSS中,要求如下:

种类 长度110211113

5. 方差分析的流程

(1) 数据提取:从数据库、网页等地方获取

(2) 数据清洗:保证数据没有缺失值或者较多异常值

(3) 正态性检验:常用方法有夏皮罗一威尔克检验法、偏度-峰度检验法、QQ图等

(4) 方差齐性检验:原假设是方差齐性,但很多时候方差都是非齐性的

(5) 差异性判断:原假设是两组数据不存在显著差异

(6) 事后比较:若检验出存在显著差异,需要知道哪些组之间是存在显著差异的,此时可以用事后比较进行分析。

事后比较方法适用场景LSD使用最为广泛,组别较少时可用Scheffe各组别样本数量不相同时可用Turkey各组别样本数量相同时可用Bonferrnoi(邦弗里尼)对比组别数量较少可用Tamhane T2方差不齐时可用

6. 代码实现:R+SPSS

6.1 R语言

6.1.1 单因素方差分析

# 生成随机数

a <- rnorm(10, 0, 1)

b <- rnorm(10, 0, 1)

c <- rnorm(10, 0, 1)

# 生成数据框

df1 <- data.frame(x=c(a, b, c), cate=gl(3, 10))

# 正态性检验

shapiro.test(df1$x)

qqnorm(df1$x);qqline(df1$x)

从夏皮罗一威尔克检验和QQ图可以发现,数据是服从正态分布的。

# 方差齐性检验

bartlett.test(x~cate, data=df1)

巴特利特球形检验显示,P值大于0.05,没有拒绝原假设,即方差齐性。

# 方差分析

summary(aov(x~cate, data=df1))

方差分析结果显示P值0.124,大于0.05,不存在显著差异;为了呈现结果,继续进行事后比较。

pairwise.t.test(df1$x,df1$cate,p.adjust.method = "bonferroni")

两两对比时,P值都大于0.05,故不存在谁存在差异。

6.1.2 双因素方差分析

df2 <- data.frame(x=c(a,b,c), A=gl(3, 10), B=gl(2, 15))

# 方差齐性检验

bartlett.test(x~A, data=df2)

bartlett.test(x~B, data=df2)

# 方差分析

summary(aov(x~A+B, data = df2))

# 事后比较

TukeyHSD(aov(x~A+B, data = df2))

由于检验结果比较相似,这里就不做过多描述,直接到方差分析和事后比较部分

不难发现,都是不存在显著差异的情况(因为本身数据都是随机生成的)。

6.2 SPSS

用了和上面一样的数据,直接看过程和结果。

6.2.1 单因素方差分析

结果如下所示,依旧是不存在显著差异。

6.2.2 双因素方差分析

可以发现,方差齐性检验是通过的,无论是基于平均数还是中位数,都没有拒绝方差齐性的原假设。方差分析结果也显示不同组间不存在显著差异。

由于B分类不足三个,所以就没有对B进行事后检验,不难发现,检验结果依旧是灭有显著差异,但存在组内差异(0.046)。

总结

制作略感仓促,有些不到位的地方希望读者海涵。有什么不懂或者写的不够详细的地方欢迎评论区或者私信我。

参考文章

[1]. 统计学之方差分析

[2]. SPSS实战与统计思维

[3] 数据分析之方差分析(ANOVA)

相关推荐