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

前言

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

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


1. 方差分析的原理

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

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

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

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

2. 方差分析的作用

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

3. 方差分析的类别

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

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

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

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

4.1 对数据的要求

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

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

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

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

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

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

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

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

4.2 数据到底长啥样

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

种类        长度
110
211
113

         

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)

  • 25
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值