方差分析-单因素方差分析示例 (Between Subjects)

article/2025/6/17 1:29:21

目录

1、从一个例子出发

2、建立零假设

3、什么是MSE和MSB

4、样本大小

5、计算MSE

6、计算MSB

7、比较MSE和MSB

8、分析差异的来源


本文将从一个例子(“微笑宽容实验”)出发,详细介绍单因素方差分析的原理。

1、从一个例子出发

有证据表明,微笑可以减弱人们对他人错误行为的判断,比如在法院上被告的微笑可能带来更少的惩罚。”微笑宽容实验“就是来研究不同类型的微笑带来的宽容程度是否有差异。在这个研究中,136名受试者被分到了4个不同的组,每组受试者会被展示不同微笑类型的图片(false、felt、miserable和neutral)。每位受试者都会给图片打一个score,用来代表受试者对图片里微笑的宽容程度。数据源在此。

2、建立零假设

方差分析的零假设为所有组别的总体均值都相等,即: 

H_0:\mu_{1}=\mu_{2}=...=\mu_{k}

其中H0代表零假设,k代表组别。在“微笑宽容实验”中,k=4,并且零假设为:

H_0:\mu_{false}=\mu_{felt}=\mu_{miserable}=\mu_{neutral}

如果零假设被拒绝,则表明至少有一个组的总体均值与其他组是不同的。

3、什么是MSE和MSB

方差分析是通过分析方差来检测均值差异的一种统计学方法。这种检测方法基于两种对总体均值(\sigma ^{2})的估计。一种估计是基于分组内部得分的差异,被称为组内均方或误差均方(Mean Square Error,MSE)。无论零假设是否为真(总体均值相等),MSE都可以用来估计\sigma ^{2}。另一种估计是基于组间均值之间的差异,被称为组间均方(Mean Square Between,MSB)。只有在总体均值相等时,MSB才能准确估计\sigma ^{2}。如果总体均值不想等,MSB的估计值将会大于\sigma ^{2}。因此,如果MSB比MSE大得多,那么总体均值是不太可能相等的。但是,如果MSB和MSE的值差不多,那么总体均值相等的零假设是成立的。

在计算MSE和MSB之前,需要先介绍方差分析的前提假设:

    1)方差齐性(homogeneity of variance):总体方差是相等的。

    2)正态分布(normally distributed):总体服从正态分布。

    3)样本独立(independent sample):每一个样本值都是独立与其他样本值的。这个假设要求每名受试者只能提供一个样本值,因为如果一名受试者提供了两个样本值,那么这两个值必然不是独立的(这属于within-subjects ANOVA,不在本节内容中)。

以上假设对于双样本t检验也是一样的。

在“微笑宽容实验”中,首先需要计算4个组别的均值和方差:

ConditionMeanVariance
False5.3683.338
Felt4.9122.825
Miserable4.9122.113
Neutral4.1182.319

表1 “微笑宽容实验”各组的均值和方差

4、样本大小

后续方差分析的前提是每组受试者的数量是相等的(不相等的分析不在本篇考虑内)。我们用n来表示每组的受试者数量,用N来表示所有的受试者数量。在“微笑宽容实验”中,受试者被分到了4个组别,每个组别都是34人,所以我们有n=34,N=136。

5、计算MSE

我们前面做了方差齐性的假设,即假设每个组别的总体方差(\sigma ^{2})都是相等的。这个\sigma ^{2}就是MSE的估计值,我们可以通过计算样本方差的均值来得到:

MSE= (3.338+2.825+2.113+2.319) / 4 = 2.649

6、计算MSB

对于样本均值抽样分布的方差(\sigma_M^2),有以下公式:

\sigma_M^2=\frac{\sigma^2}{n}

其中n是每组的样本数量。通过变换,可以得到:

\sigma^2=n\sigma_M^2

因此,如果我们知道了\sigma_M^2,再乘以n就得到了总体方差\sigma ^{2}。尽管我们不知道样本均值抽样分布的方差\sigma_M^2,我们可以通过样本均值的方差来估计它。对于“微笑宽容实验”,4个样本均值的方差为:

\sigma_{M}^{2}= VAR.S(5.368,4.912,4.912,4.118) =0.270

\sigma^2=n\sigma_{M}^{2}= 34*0.270=9.178

这里VAR.S()表示计算样本方差。

总结一下MSB的计算步骤:

    1)计算样本均值

    2)计算样本均值的方差

    3)样本均值的方差乘以n

扼要重述

如果总体均值是相等的,那么MSE和MSB都可以认为是\sigma ^{2}的准确估计,并且二者的值应当是相等的。当然,二者不会完全相等,因为他们是通过数据的不同角度计算得出的:MSB通过样本均值计算得出,而MSE通过样本方差计算得出。

当总体均值不相等时,MSE仍可以有效的估计\sigma ^{2},因为MSE是通过样本方差计算得到的,而总体均值的差异不会影响样本方差。但是,总体均值的差异会影响MSB对\sigma ^{2}的估计,因为总体均值的差异与样本均值之前的差异是相关的。因此,如果样本均值之间的差异越大,MSB也会越大。

简而言之,无论总体均值是否相等,MSE都可以用来估计\sigma ^{2}。然而,只有在样本均值相等的条件下,MSB才可以用来估计\sigma ^{2},并且当总体均值不相等时,MSB的估计值会偏大。

7、比较MSE和MSB

比较MSE和MSB是方差分析中至关重要的一步。既然当总体均值不相等时,MSB会比MSE的估计值更大,那么当计算出的MSB值比MSE值更大时,也就说明了总体均值是不相等的。但是即使当总体均值是相等的时候,也会偶然地发生MSB比MSE要大的情况,所以想要得到可靠的结论,MSB必须比MSE大的足够多。但是多大的MSB才算大呢?对于“微笑宽容实验”的数据来说,MSB 和MSE分别为9.178和2.649,这个差异足够大吗?为了回答这一问题,我们需要知道如果总体均值是相等的,达到这一差距或更大差距的概率是多少。统计学家Fisher从数学上回答了这一问题。尽管与Fisher最初的公式形式略有不同,但是确定概率的标准方法是都是基于MSB与MSE的比率。这个比率以Fisher命名,称为 F ratio。

对于“微笑宽容实验”的数据,F ratio为:

F = 9.178/2.649 = 3.465

因此,MSB是MSE的3.465倍。如果所有组别的总体均值都是相等的,有可能得到这个结果吗?回答这个问题还要考虑样本数量。当样本数量很小时,得到这样的结果不足为奇,因为结果是不稳定的。可是,当样本数量很大时,MSB和MSE的值基本是不会改变的,所以F ratio为3.465或者更大是反常的。图1展示了“微笑宽容实验”的样本数量下,F的抽样分布。可以看到,分布是正偏态的。

图1 F的分布

从图1可以看出,3.465或更大的F ratio是反常现象。3.465右侧黑色区域的面积,代表得到此F或者更大F的概率,这个概率值为0.018。换句话说,零假设“总体均值是相等的”的概率值(p value)为0.018,所以我们可以拒绝零假设。于是,我们得到结论:至少有一个组的总体均值是不同于其他组的。

F分布的形状取决于样本数量。更准确地说,分布的形状取决于两个自由度(df):一个是分子的自由度(MSB),另一个是分母的自由度(MSE)。我们都知道方差估计值的自由度等于样本数量减一,MSB是k个均值的方差估计,所以它的自由度为k-1。MSE是k个方差的均值,每个方差的自由度都是n-1,所以MSE的自由度为k(n-1)=N-k,其中N代表总样本数量,n代表每组的样本数量,k代表组数。总结如下:

df_{numerator}=k-1

df_{denominator}=N-k

对于“微笑宽容实验”,我们有:

df_{numerator}=k-1=4-1=3

df_{denominator}=N-k=136-4=132

8、分析差异的来源

为什么一个实验中受试者之间的打分是不同的?以“微笑宽容实验”中“False Smile”组和“Felt Smile”组的两名受试者为例。这两名受试者之所以打出不同的分数,第一个原因是,两名受试者看到的两组图片是不同类型的微笑。第二个原因是,这两名受试者可能本身对于他人的宽容程度就有所不同。第三个原因是,其中一名受试者在实验前的一次考试中获得了很低的分数,因此心情很低落。对于两名受试者为什么打出不同的分数,你可以想象出无数种其他的原因。但是除了第一个原因(受试者被区别对待),其他所有的原因都不是实验想去研究的,因此,这些原因导致的所有差异都无法解释。

通常,我们称上面无法解释的差异为误差,但是这个称呼并不意味着真的发生了错误。差异的原因可以被归为两部分,要么是由于受试者被区别对待引起的,要么是由于误差(所有未被测量到的差异)。

方差分析一个很重要的特性就是,它能够将差异分为不同的来源。在方差分析中,一般用平方和( Sum of SQuares,SSQ)来表示差异。总差异被定义为每一个受试者的打分与所有受试者打分均值的平方差之和。所有受试者打分的均值被称为总均值(Grand Mean,GM)。当每组受试者的数量相等时,总均值等于各组均值的平均值。总平方和定义为:

SSQ_{total}=\sum(X-GM)^2

上面公式意味着,取每个得分,减去总均值,将差值平方,然后将这些平方值相加。对于“微笑宽容实验”,SSQ_{total}=377.19

条件平方和的计算方法如下式:

SSQ_{condition}=n[(M_1-GM)^2+(M_2-GM)^2+...+(M_k-GM)^2]

其中,n是每组样本的数量,k是组数,M_1是第一组的均值,M_2是第二组的均值,M_k是第k组的均值。对于“微笑宽容实验”,该值为:

SSQ_{condition}=34[(5.37-4.83)^2+(4.91-4.83)^2+(4.91-4.83)^2+(4.12-4.83)^2=27.5

误差平方和是每个分数与其组内平均值的平方偏差之和,公式如下:

SSQ_{error}=\sum(X_{i1}-M_1)^2+\sum(X_{i2}-M_2)^2+...+\sum(X_{ik}-M_k)^2

其中,X_{i1}是第一组第i名受试者的打分,M_1是第一组打分的均值,X_{i2}是第二组第i名受试者的打分,M_2是第二组打分的均值,等等。对于“微笑宽容实验”,各组打分的均值分别是:5.368、4.912、4.912和4.118,因此SSQ_{error}为:

(2.5-5.368)^2+(5.5-5.368)^2+...+(6.5-4.118)^2=349.65

误差平方和也可以通过减法得到:

SSQ_{error}=SSQ_{total}-SSQ_{condition}

SSQ_{error}=377.189-27.535=349.65

因此,总平方和377.19可以被分为SSQ_{condition}(27.53)SSQ_{error}(349.66)

一旦平方和计算出来了,就可以很容易地计算均方(MSB和MSE)。计算公式如下:

MSB=SSQ_{condition}/df_{n}

MSE=SSQ_{error}/df_{d}

其中,df_{n}​​​​​​​是分子,值为k-1=3。df_d是分母自由度,值为N-k=136-4=132。需要注意的是,df_d通常被称为df_e,即误差自由度。

MSB=27.535/3=9.18

MSE=349.66/132=2.65

可以看到,按上面方法计算出的MSB和MSE与之前计算的值是一样的。

下面列出的方差分析汇总表是分析方差的一种方便形式:

SourcedfSSQMSFp
Condition327.5359.1783.4650.0182
Error132349.6542.649
Total135377.189

表2 方差分析汇总表

第一列Source为变异的来源,第二列df为自由度,第三列SSQ为平方和,第四列MS为均方,第五列F为F ratio,最后一列p为概率值。需要指出的是,均方总是等于平方和除以自由度,F和p只与Condition相关。尽管均方和可以通过平方和除以自由度计算得出,但这样的计算方式没有什么意义,就省略了。 

最后,总结一下单因素方差分析的基本步骤

1)建立零假设

2)计算MSE

3)计算MSB

4)计算两个自由度和F值

5)计算SSQ,解释差异的原因

参考资料:One-Factor ANOVA (Between Subjects)


http://chatgpt.dhexx.cn/article/QWbp152m.shtml

相关文章

单因素方差分析

理论依据 【基本思想】 方差分析是检验两个或两个以上的样本均值之间的差异是否具有统计学意义的一种方法,目的是推断两个或两个以上的总体均值是否相同。它所研究的是分类型自变量对数值型因变量的影响。当只涉及一个分类型自变量时,该分析称为单因素方…

干货。单因素方差分析步骤梳理

方差分析是20世纪20年代发展起来的一种统计方法,它是由英国统计学家费希尔在进行试验设计时为解释试验数据而首先引入的。(来源:统计学 第7版)目前,方差分析广泛应用于生物学、田间试验等。从形式上看,方差…

R语言单因素分析案例

1单因素方差分析实例1&#xff1a;在R中&#xff0c; aov() 函数提供了方差分析表的计算&#xff1a; 进行方差分析的步骤&#xff1a; a.用数据框的格式输入数据&#xff1a;如&#xff1a;lamp<-data.frame(Xc() &#xff0c; Afactor() ) b.调用aov() 函数计算方差分析…

在线UTF-8转换成GBK工具

https://www.dedemao.com/convert/# 注&#xff1a; 如果转换完成&#xff0c;但点击下载时没有反应 &#xff08;1&#xff09;按F12&#xff0c;出现调试器&#xff0c;切换到Element &#xff08;2&#xff09;选中左边的箭头&#xff0c;将鼠标移动到点击下载的按钮上 &a…

java utf-8 gbk_Java 字符转码之UTF-8转为GBK/GB2312

java跟python类似的做法,在java中字符串的编码是java修改过的一种Unicode编码,所以看到java中的字符串,心理要默念这个东西是java修改过的一种Unicode编码的编码。 packagestring;importjava.nio.charset.Charset;public classUTF82GBK {public static void main(String[] a…

java中utf8转成gbk,java中GBK转UTF-8乱码的解决方法

java中GBK转UTF-8乱码的解决方法 如果自己采用的是GBK编码&#xff0c;对方采用得到是UTF-8编码&#xff0c;发送数据时需要将GBK编码数据转换成UTF-8编码数据&#xff0c;这样对方才不会乱码。 问题出现&#xff1a;GBK转UTF-8时&#xff0c;奇数个中文会乱码&#xff0c;偶数…

notepad批量转换文件编码utf8、gbk

从网上找了多个编码转换工具&#xff0c;自己也尝试写、从网上找python脚本&#xff0c;对文件进行批量转换&#xff0c;但转换结果都不理想&#xff0c;大部分文件都可以正常转换成UTF8&#xff0c;但少量文件转换后可能出现中文乱码的情况。 经过多次尝试&#xff0c;发现使…

esp32使用查表法utf8转gbk

查表法utf8转gbk 前言制作bin文件添加代码 前言 由于要使用esp32获取天气信息&#xff0c;从服务器返回的json文件编码格式为utf8格式&#xff0c;而我制作的字库为gb2312字库&#xff0c;中文会出现乱码。在网上找了很久&#xff0c;最简单的方法是查表法&#xff0c;由于utf…

UTF-8和GBK互转问题

文章目录 前言一、UTF-8、GBK、GB2312、Unicode二、转换原理1.背景2.UTF-8编码规则 总结 前言 遇到UTF-8和GBK互转问题&#xff0c;稍微记录一下重点~ 一、UTF-8、GBK、GB2312、Unicode GBK&#xff1a;《汉字内码扩展规范》。简体繁体均支持。 GB2312&#xff1a;《信息交换…

Linux操作系统:vim编辑器常用命令

文章目录 前言vim的基本概念vim的基本操作vim正常模式命令集&#xff08;1&#xff09;复制与粘贴&#xff08;2&#xff09;删除&#xff08;3&#xff09;光标移动和定位&#xff08;4&#xff09;撤销与反撤销 vim底行模式命令集&#xff08;1&#xff09;查找&#xff08;2…

7.0、Linux-Vim编辑器以及常用命令详解

7.0、Linux-Vim编辑器以及常用命令详解 什么是 Vim 编辑器 -> Vim 是从 vi 发展出来的一个文本编辑器&#xff1b;代码补全、编译以及错误等方便编程的功能特别丰富&#xff0c;在程序员中被广泛使用&#xff1b;简单的来说&#xff0c;vi 是老式的字处理器&#xff0c;不过…

Linux之vi和vim编辑器常用命令

一、一般模式 以vi打开一个档案就直接进入一般模式了&#xff08;这是默认的模式&#xff09;。在这个模式中&#xff0c; 你可以使用『上下左右』按键来移动光标&#xff0c;你可以使用『删除字符』或『删除整行』来处理档案内容&#xff0c; 也可以使用『复制、贴上』来处理…

Linux中vi/vim编辑器的常用命令

文章目录 前言vi文本编辑器三种模式命令模式(Command mode)移动光标命令查询命令切换到INTERT切换到VISUAL 输入模式(Insert mode)末行模式(Last line mode) cat 文件名 ——查看文件 vi 文件名 ——编辑文件 vim 文件名 ——编辑文件前言 不掌握vi/vim命令&#xff0c;都不…

Linux中vim编辑器常用命令、文件查找、磁盘挂载、用户管理

Vim 介绍 Vim 是全屏幕纯文本编辑器&#xff0c;是vi编辑器的升级版。 vim 不仅仅兼容vi所有的命令&#xff0c;而且高亮显示&#xff0c;vi只能运行在 UNIX 和 Linux 中&#xff0c;而 vim 可以跨平台运行在Windows&#xff0c;MAC OS 中。 vim 号称 “编辑器之神”&#x…

LINUX-VIM编辑器常用命令大全(超全)

工作模式切换&#xff1a; 按TAB键命令自动补全&#xff01;&#xff01;&#xff01; 一、编辑模式和一般模式常用命令 语法命令功能描述yy复制光标当前一行y 数字 y复制一段&#xff08;从第几行到第几行&#xff09;p箭头移动到目的行粘贴u撤销上一步dd删除光标当前行d 数字…

vim编辑器常用命令 (Centos)

1 安装vim编辑器 sudo yum update sudo yum install vim2 设置vim 显示行号 (:set nu) 步骤1&#xff1a;按 ESC 键 退出本机内容模式 步骤2&#xff1a;输入 :set number 或者 :set nu 步骤3&#xff1a;按回车 3 查找 / 步骤1&#xff1a;按 ESC 键 退出本机内容模式 步…

Linux虚拟机中vim编辑器常用命令介绍(二)

1.撤销和恢复撤销&#xff1a; u&#xff08;undo&#xff09;:撤销上次命令 Ctrlr&#xff08;redo&#xff09;:恢复撤销的命令&#xff08;重做&#xff09; 2.删除文本 x&#xff08;cut&#xff09;:删除光标所在字符&#xff0c;或者选中文字&#xff08;5x,删除光标…

Linux虚拟机中vim编辑器常用命令介绍(一)

1.行数移动&#xff1a; 命令 英文 功能 gg go 文件顶部 G go 文件末尾 数字gg go 移动到数字对应行数 数字G go 移动到数字对应行数 &#xff1a;数字 移动到数字对…

10 分钟上手 Vim 编辑器,常用命令大盘点!

点击蓝字 关注我们 #扫码加入专属群# 有诸多福利等你来拿~ 传闻有 240 万的程序员不知道如何退出 Vim 编辑器&#xff0c;真的有这么困难吗&#xff1f;下面给大家整理了一份 Vim 常用命令&#xff0c;让你 10 分钟快速上手 Vim&#xff0c;溜得飞起&#xff01; 以下命令请在普…

vim编辑器常用命令介绍

本文是对vim各种命令的使用介绍&#xff0c;旨在让大家快速学习掌握 什么是vim vim是Linux环境下一款功能强大、高度可定制的文本编辑工具 vim的工作模式 一般分为6种 普通模式用vim打开一个文件时默认模式&#xff0c;也叫命令模式&#xff0c;允许用户通过各种命令浏览代…