精华内容
下载资源
问答
  • 详解单因素方差分析多因素方差分析、正交实验设计及代码实现.pdf
  • R语言——多因素方差分析简述及代码
  • 求解多因素一元方差分析,适用于spass中的方差分析
  • 多因素方差分析

    万次阅读 2019-10-19 11:00:00
    总第173篇/张俊红01.前言在前面我们讲过简单的单因素方差分析,这一篇我们讲讲双因素方差分析以及多因素方差分析,双因素方差分析是最简单的多因素方差分析。单因素分析就是只...

    总第173篇/张俊红

    01.前言

    在前面我们讲过简单的单因素方差分析,这一篇我们讲讲双因素方差分析以及多因素方差分析,双因素方差分析是最简单的多因素方差分析。

    单因素分析就是只考虑一个因素会对要比较的均值产生影响,而多因素分析是有多个因素会对均值产生影响。

    需要注意的是一个因素可能会有不同的水平值,即不同的取值。比如要判断某一款药对某种病症有没有效果,服用不同的剂量效果应该是不一样的,虽然因素都是服药这一个因素,但是不同的药剂量代表不同的水平。

    双因素(多因素)方差分析又可以分为两种,一种是有交互作用的,一种是没有交互作用的。啥意思呢?什么是交互作用呢?

    比如我们大家所熟知的,牛奶和药是不可以一起吃的,如果单独喝牛奶有助于身体蛋白质的补充,如果单独吃药可以有助于治疗病症,但是牛奶和药同时吃就会把两者的作用抵消掉。这种两者之间的相互作用就可以理解成是交互作用,当然了,有的时候交互是正向呢,有的时候是负向的。

    02.无交互作用方差分析

    现在有如下一份不同品牌不同地区的产品销量数据表,想要看一下不同品牌和不同地区这两个因素是否对销量有显著性影响:

    我们先来看看无交互作用的双因素方差分析具体怎么做呢,所谓的无交互也就是假设品牌和地区之间是没有交互作用的,相互不影响,只是彼此单独对销量产生影响。

    前面单因素方差分析中,我们是用F值去检验显著性的,多因素方差分析也同样是用F值.

    F = 组间方差/组内方差。

    对于没有交互作用的多因素,可以单纯理解为多个单因素。也就是你可以单独去看品牌对销量的影响,然后再单独去看地区对销量的影响。

    那单独怎么看呢?这就回到了我们前面讲过的单因素方差分析。

    我们先来计算品牌的组内平方和:

    SSA = (每个品牌的均值 - 全部销量均值)^2*每个品牌内样本数
        = (344.20-328.45)^2*5 + (347.80-328.45)^2*5 + (337.00-328.45)^2*5 + (284.80-328.45)^2*5
        = 13004.55
    

    我们再来计算地区的组内平方和:

    SSB = (每个地区的均值 - 全体销量均值)^2*每个地区内样本数
        = (339.00-328.45)^2*4 + (330.25-328.45)^2*4 + (339.25-328.45)^2*4 + (318.25-328.45)^2*4
        = 2011.7
    

    接着我们来计算全部平方和:

    SST = (每个值-总体均值)^2
        = 17888.95
    

    除此之外还有一个平方和:

    SSE = SST - SSA - SSB
    

    这部分是除品牌和地区以外的其他因素所产生的,称为随机误差平方和。

    有了平方和以后,我们同样需要求取均方,而均方 = 平方和/自由度。

    SST的自由度 = 总水平数 - 1 = 19
    SSA的自由度 = 品牌的水平数 - 1 = 3
    SSB的自由度 = 地区的水平数 - 1 = 4
    SSE的自由度 = SSA的自由度*SSB的自由度 = 12

    平方和有了,自由度也有了,均方MS也就可以求出来了,接下来进入到最重要的F值求取,

    品牌因素的F值 = SSA/SSE
    地区因素的F值 = SSB/SSE

    最后可以通过查F值表获得在置信度为95%的情况下时的F边界值表,然后和实际的F值作比较,最后做出是否显著的判断。如下表:

    03.有交互作用方差分析

    某交通部门想要知道高峰期与路段是否会对汽车的行车时间有影响,通过人工采集得到了如下数据:

    本次分析需要考虑峰期与路段之间的交互作用,某些路段的峰期行车时间可能异常偏高或偏低等。

    和无交互作用的多因素方差分析流程类似,我们先计算峰期的平方和:

    SSA = (每个峰期内的均值-总体均值)^2*每个峰期内样本数
        = (23.2-20.25)^2*10 + (17.3-20.25)^2*10
        = 174.05
    

    再来计算路段的平方和:

    SSB = (每个路段内的均值-总体均值)^2*每个路段内样本数
        = (22.4-20.25)^2*10 + (18.1-20.25)^2*10
        = 92.45
    

    再来计算交互作用的平方和:

    SSAB = (每个路段&峰期内的均值-该路段内的均值-该峰期内的均值+总体均值)^2*每个区间内的样本数
         = (25.4-23.2-22.4+20.25)^2*5 + (21-23.2-18.1+20.25)^2*5 + (19.4-17.3-22.4+20.25)^2*5 + (15.2-17.3-18.1+20.25)^2*5
         = 0.05
    

    接着计算全部平方和:

    SST = (每个值-总体均值)^2
        = 329.75
    

    最后来计算误差平方和:

    SSE = SST - SSA - SSB - SSAB
    

    SST的自由度 = 总样本数 - 1 = 19
    SSA的自由度 = 峰期数 - 1 = 1
    SSB的自由度 = 路段数 - 1 = 1
    SSAB的自由度 = SSA的自由度*SSB的自由度 = 1
    SSE的自由度 = SST的自由度 - SSA的自由度 - SSB的自由度 - SSAB的自由度

    经过求均方,查F表,就可得到如下表:

    04.方差分析与回归分析异同

    上面通过以有无交互作用的双因素方差分析为例,给大家把多因素方差分析中涉及到的计算过程都演示了一遍,实际工作中我们是不需要自己手动进行计算的,直接通过Excel、Python都可以计算得到。以后专门讲解工具如何实现。

    通过上面的多因素方差分析,我们就可以得出来不同因素对某一目标值(销量/行车时间等)的影响情况,你可能会有这样的疑问,那这和多元回归有什么区别呢?多元回归不也是求取多个x和一个y的关系么?那这两个是一样的吗?

    还是有些不太一样的,方差分析只是告诉你某个因素的影响显著不显著,而没有告你影响有多大,回归分析是告诉你具体影响有多大。方差分析是一种定性分析,解决有没有的问题;回归分析是一种定量分析,解决有多少的问题。

    你还可以看:

    聊聊置信度与置信区间

    统计学的假设检验

    一元线性回归分析

    方差分析

    卡方检验讲解

    展开全文
  • 双因素和多因素方差分析,Stata软件教学视频,适合学科学习和教学
  • 根据观测变量(即因变量)的数目,可以把多因素方差分析分为:单变量多因素方差分析(也叫一元多因素方差分析)与变量多因素方差分析(即多元多因素方差分析)。本文将重点讲述一元多因素方差分析,下篇文章将详细讲述...

    一、教学内容

    多因素方差分析,用于研究一个因变量是否受到多个自变量(也称为因素)的影响,它检验多个因素取值水平的不同组合之间,因变量的均值之间是否存在显著的差异。多因素方差分析既可以分析单个因素的作用(主效应),也可以分析因素之间的交互作用(交互效应),还可以进行协方差分析,以及各个因素变量与协变量的交互作用。
    根据观测变量(即因变量)的数目,可以把多因素方差分析分为:单变量多因素方差分析(也叫一元多因素方差分析)与多变量多因素方差分析(即多元多因素方差分析)。本文将重点讲述一元多因素方差分析,下篇文章将详细讲述多元多因素方差分析。
    一元多因素方差分析:只有一个因变量,考察多个自变量对该因变量的影响。例如:分析不同品种、不同施肥量对农作物产量的影响时,可将农作物产量作为观测变量,品种和施肥量作为控制变量。利用多因素方差分析方法,研究不同品种、不同施肥量是如何影响农作物产量的,并进一步研究哪种品种与哪种水平的施肥量是提高农作物产量的最优组合。
    01
    分析原理
    通过计算F统计量,进行F检验。F统计量是平均组间平方和与平均组内平方和的比。

    这里,把总的影响平方和记为SST,它分为两个部分,一部分是由控制变量引起的离差,记为SSA(组间离差平方和),另一部分是由随机变量引起的SSE(组内离差平方和)。即SST=SSA+SSE。
    组间离差平方和SSA是各水平均值和总体均值离差的平方和,反映了控制变量的影响。组内离差平方和是每个数据与本水平组平均值离差的平方和,反映了数据抽样误差的大小程度。
    通过F值看出,如果控制变量的不同水平对观测变量有显著影响,那观测变量的组间离差平方和就大,F值也大;相反,如果控制变量的不同水平没有对观测变量造成显著影响,那组内离差平方和就比较大,F值就比较小。
    同时,SPSS还会依据F分布表给出相应的相伴概率值sig。如果sig小于显著性水平(一般显著性水平设为0.05、0.01、或者0.001),则认为控制变量不同水平下各总体均值有显著差异,反之,则不然。一般地,F值越大,则sig值越小。
    02
    SPSS分析案例
    现在有一个公司员工的工资表,想看一下员工性别“gender”与接受教育年限“edu”这两个控制变量对员工“当前工资”的影响。采用多因素方差分析法,则要分别考虑“gender”、“edu”对“当前工资”的影响,称为主效应,还要考虑“gender*edu”对“当前工资”的影响,称为交互效应。
    (1)分析步骤:将数据导入SPSS后,选择:分析—— 一般线性模型——单变量

    (2)将“当前工资”选入因变量(也就是观测变量),将性别“gender”与受教育年限“edu”选入固定因子(也就是控制变量)。

    (3)选择“单变量”的“模型”,打开对话框后选择“全因子”,表示方差分析的模型包括所有因素的主效应,也包括因素之间的交互效应。然后“继续”。

    (4)打开“单变量”的“绘制”对话框,选择“gender”为横轴变量,选择“edu”为分线变量,单击“添加”,即显示这两个因素变量的交互作用,即 “gender*edu”这个交互作用变量。
    由于此例中“gender”只有两个水平,即男、女;而“edu”有多种水平。因此,如果主效应显著,则表明因素两种或多种水平之间存在显著性差异。事后可以继续对同一因素多个水平之间的均值差异进行比较,该过程称为多重比较。
    但实际上如果主效应和交互效应都达到显著,我们更关心在多因素交互作用下,因变量有什么影响。
    因此,如果交互效应显著的话,通常需要进行简单效应检验。所谓简单效应检验,是指一个因素的水平在另一个因素的某个因素的某个水平上的变异。例如我们本例中的,如果gender与edu之间存在显著的交互作用,我们可以检验当gender为“女”时,edu的各个水平之间的差异,称为edu在“女”性水平上的简单效应;以及在“男”性水平上edu各水平之间的差异,称为edu在“男”性水平上的简单效应。
    简单效应检验,实际上是把其中一个自变量固定在某一个特定的水平上,考察另一个自变量对因变量的影响。简单效应检验在SPSS里是用一个“MANOVA”命令来实现的。
    同理,当我们检验三个自变量时,若这些自变量之间的交互作用显著,需要进行简单简单效应检验,即一个因素的水平在另外两个因素的水平结合上的效应。
    也就是把两个因素固定在各自的某一个水平上,考察第三个因素对因变量的影响。也是用“MANOVA”命令来实现的。我们观察简单效应显著与否,是通过F值与sig值来看的,一般用sig值与我们设定的一个数值(0.05、0.01、或者0.001)来比较,若sig值大于该数值,说明简单效应不显著;反之,若sig值小于该数值,说明简单效应显著。

    (5)打开“选项”对话框,将左边三个控制变量均移入右边,“显示均值”,同时选中“描述统计”,选中“比较主效应”。

    (6)点击“确定”以后,就会在SPSS查看器里显示出结果。其中,最上面的那部分代码是我们所做的操作在SPSS里具体实现的步骤的代码。下面的表格是我们想要的结果,从表格里得出结论。

    (7)从下面的“主体间效应的检验”表格里,我们比较性别gender、受教育程度edu、及genderedu交互作用的F值及sig值,看到edu的F值最大,sig值最小,且sig<0.05。而gender与genderedu的sig值都大于0.05,得出结论:“gender”的主效应未达到显著,而“edu”的主效应达到显著,gender与edu的交互效应未达到显著(当交互效应达到显著时,进而可以进行简单效应检验结果),就不需要进行简单效应检验。则该公司员工“受教育程度”对员工“当前工资”的影响显著,而“性别”对“当前工资”的影响不明显。

    (8)下图为均值分布图,即为两因素edu与gender作用下,因变量员工工资的均值分布情况。通常,若交互效应不显著时,图中的因素分布线均为平行线;若交互效应显著,图中的因素分线不平行。
    此图中,将性别“gender”作为横轴变量,观察接受教育年限“edu”对因变量“当前工资”的影响。

    图中得出结论:当受教育年限为20年,一般为研究生水平的时候,男女工资差别不大;受教育年限为14年,一般为专科生水平,男女工资差别不明显。但当受教育年限为8年、10年、12年、17年的时候,男女工资差别较大,尤其为8年、17年的时候,男女工资差别尤其明显。

    二、备注

    相关资料已上传我的资源,下载链接https://blog.csdn.net/TIQCmatlab?spm=1011.2124.3001.5343

    展开全文
  • 一、方差分析简介1.1 方差分析基本思想通过分析研究不同变量的变异对总变异的贡献大小,确定控制变量对研究结果影响力的大小。如果控制变量的不同水平对结果产生了显著影响,那么它和随机变量共同作用,必然使结果有...

    a2994302-9511-eb11-8da9-e4434bdf6706.png

    一、方差分析简介

    1.1 方差分析基本思想

    通过分析研究不同变量的变异对总变异的贡献大小,确定控制变量对研究结果影响力的大小。

    • 如果控制变量的不同水平对结果产生了显著影响,那么它和随机变量共同作用,必然使结果有显著的变化
    • 如果控制变量的不同水平对结果没有显著的影响,那么结果的变化主要由随机变量起作用,和控制变量关系不大

    1.2 方差分析的前提条件

    1. 独立,各组数据相互独立,互不相关;
    2. 正态:即各组数据符合正态分布;
    3. 方差齐性:即各组方差相等。

    1.3 方差分析通常使用F统计量检验

    在spss中经常使用方差齐性检验(都是levene检验),

    • 一般情况下,只要sig值大于0.05就以认为方差齐性的假设成立,因此方差分析的结果应该值得信赖;
    • 如果sig值小于或等于0.05方差齐性的假设就值得怀疑,导致方差分析的结果也值得怀疑。

    SPSS会自动计算 F 统计值, F 服从 (k-1,n-k) 自由度的 F 分布(k 是水平数, n 为个案数), SPSS依据 F 分布表给出相应的相伴概率值。

    • 如果相伴概率值小于显著性水平(一般为0.05) ,则拒绝零假设,认为控制变量不同水下各总体均值有显著差异;
    • 反之,则认为控制变量不同水平下各总体均值没有显著差异。

    二、不同分析方法

    首先要理解实验的设计或模型的类型,选取正确的方法才能得出正确的结论

    2.1 单因素设计方差分析

    单因素方差分析测试某一个控制变量的不同水平是否给观察变量造成了显著差异和变动。

    2.2 随机区组设计方差分析

    又称配伍组设计。在进行统计分析时,将区组变异离均差平方和从完全随机设计的组内离均差平方和中分离出来,从而减小组内平方和(误差平方和),提高了统计检验效率。

    2.3 析因设计方差分析

    析因设计(Facorial design)是将两个或两个以上因素的各种水平进行排列组合、交叉分组的实验设计,是对影响因素的作用进行全面分析的设计方法,可以研究两个或者两个以上因素多个水平的效应,也可以研究各因素之间是否有交互作用并找到最佳组合。常见析因设计有: 2x2析因设计、IxJ两因素析因设计、IxJxK三因素析因设计。

    2.4 交叉设计方差分析

    交叉设计(cross-over design)是一种特殊的自身对照设计,它按事先设计好的实验次序,在各个时期对受试对象先后实施各种处理,以比较处理组间的差异。受试对象可以采用完全随机分为两组或分层随机化的方法来安排。

    2.5 拉丁方设计方差分析

    拉丁方设计(latin square design文库)是从横行和直列两个方向进行双重局部控制,使得横行和直列两向皆成单位组,是比随机单位组设计多一个单位组的设计。

    2.6 协方差分析

    协方差分析是将那些很难控制的因素作为协变量,在排除协变量影响的条件下,分析控制变量对观察变量的影响,从而更加准确地对控制因素进行评价。协方差分析要求协变量应是连续数值型,多个协变量间互相独立,且与控制变量之间也没有交互影响。单因素方差分析和多因素方差分析中的控制变量都是一些定性变量。而协方差分析中则包含了定性变量(控制变量),又包含了定量变量(协变量)。

    2.7 嵌套设计方差分析

    嵌套设计被称为巢式设计(nested design)有些教科书上称这类资料为组内又分亚组的分类资料。根据因素数的不同,套设计可分为二因素(二级)、三因素(三级)等设计。 将全部k个因素按主次排列,依次称为1级,2级 … k级因素,再将总离差平方和及自由度进行分解,其基本思想与一般方差分析相同。所不同的是分解法有明显的区别,它侧重于主要因素,并且,第i级因素的显著与否,是分别用第i级与第i+1级因素的均方为分子和分母来构造F统计量,并以F测验为其理论根据的。

    2.8 重复测量方差分析

    重复测量资料是由在不同时间点上对同一对象的同一观察指标进行多次测量所得,重复测量设计是在科研工作中常见的设计方法,常用来分析在不同时间点上该指标的差异。重复测量设计最主要的优点就是提高了处理组间的精确度,因为它可以通过对同一个体数据的分析估计出实验误差的大小。

    三、案例分析(后附源文件)

    3.1 析因设计方差分析

    举个例子,

    需求:分析A、B两种药物联合应用对红细胞增加数的影响,数据见表。

    根据数据表和需求,采用析因设计方差分析研究各因素之间是否有交互作用并找到最佳组合。

    a6994302-9511-eb11-8da9-e4434bdf6706.png

    操作步骤:

    aa994302-9511-eb11-8da9-e4434bdf6706.png

    ac994302-9511-eb11-8da9-e4434bdf6706.png

    b0994302-9511-eb11-8da9-e4434bdf6706.png

    b3994302-9511-eb11-8da9-e4434bdf6706.png

    !!!报告分析:

    b6994302-9511-eb11-8da9-e4434bdf6706.png
    此步骤形仅仅用于操作演示

    b9994302-9511-eb11-8da9-e4434bdf6706.png

    bb994302-9511-eb11-8da9-e4434bdf6706.png

    3.2 嵌套设计方差分析

    举个例子,

    需求:选取某种植物3个品种(Plant),在每一株内选取两片叶子(Leaf)(嵌套在植株因素下的第二个因素),用取样器从每一片叶子上选取同样面积的两个样本(两次重复),称取湿重,结果见表。对以上结果进行方差分析

    根据所选的数据符合嵌套设计方差分析方法(分为一级、二级...)

    be994302-9511-eb11-8da9-e4434bdf6706.png

    操作步骤:

    bf994302-9511-eb11-8da9-e4434bdf6706.png

    c5994302-9511-eb11-8da9-e4434bdf6706.png

    这一步骤非常重要!!!

    报告分析

    正确操作结果:

    c8994302-9511-eb11-8da9-e4434bdf6706.png

    错误操作结果:(没有进行相应的语法添加)

    ce994302-9511-eb11-8da9-e4434bdf6706.png

    3.3 重复测量方差分析

    举个例子,

    需求:某研究者欲了解一套新的锻炼方法的减肥效果,该研究者在某小学随机抽取了12名肥胖学生,随机分成两组!第一组每天下午按新的锻炼方法锻炼!第二组不参与新的锻炼,方法锻炼并于实验开始的第1、2、3个月分别测量学生体重减重情况,测量值如表

    根据数据特征(不同时间点对同一指标重复测量)采用重复测量方差分析

    cf994302-9511-eb11-8da9-e4434bdf6706.png

    操作步骤:

    d0994302-9511-eb11-8da9-e4434bdf6706.png

    d2994302-9511-eb11-8da9-e4434bdf6706.png

    d3994302-9511-eb11-8da9-e4434bdf6706.png

    !!!报告分析

    d4994302-9511-eb11-8da9-e4434bdf6706.png

    d6994302-9511-eb11-8da9-e4434bdf6706.png

    d8994302-9511-eb11-8da9-e4434bdf6706.png

    d9994302-9511-eb11-8da9-e4434bdf6706.png

    拓展:当测量时间不是等间距时:

    db994302-9511-eb11-8da9-e4434bdf6706.png

    点击获取

    案例数据​pan.baidu.com

    待更新...

    展开全文
  • 1 两因素方差分析的形式多因素方差分析针对的是因素完全随机设计。包含两个及以上的自变量,为便于讲解,本文以两因素方差分析为例。在一个两因素完全随机设计中,自变量包含,共个水平。自变量包含,共个水平。...

    1 两因素方差分析的形式

    多因素方差分析针对的是多因素完全随机设计。包含两个及以上的自变量,为便于讲解,本文以两因素方差分析为例。

    在一个两因素完全随机设计中,自变量

    包含
    ,共
    个水平。自变量
    包含
    ,共
    个水平。总共形成
    个处理。各处理
    之下有
    个观测值。特别的,当各处理的观测值都为
    时,称为等组设计。

    等组设计的具体形式如下:

    若各组观测值

    数量不同,称为非等组设计,形式如下:

    其中

    各不相同

    两因素方差分析的逻辑是对变异进行比较。通过对平方和(Sum of Squares)和自由度(Degree of Freedom)的分解,利用公式:

    计算出各主效应方差,交互作用方差和组内方差(即误差方差)。各主效应和交互作用的方差与误差方差的差异(比值)体现了该效应的显著性。而且在零假设为真的情况下,该比值服从F分布,进而分别完成各效应的假设检验。

    具体的分解如下图:

    a954deae8fe0af4b437f2c9c2fc3f90a.png

    常规的流程大家都非常熟悉,不再赘述。接下来换个角度,从多元线性回归来看一看两因素方差分析。

    2 两因素方差分析的线性模型

    模型的基本形式

    两因素方差分析的线性模型可以表示为:

    其中

    指A因素第
    个水平的效应,
    因素第
    个水平的效应,
    指A因素第
    个水平与B因素第
    个水平的交互作用效应,
    表示
    处理中,第
    个观测值的随机误差。该式说明:某个观测值等于其所在处理的各主效应和交互作用效果叠加,并附加上一个随机误差组成。

    通常,我们让:

    其中

    表示各平均效应。上述式子意味着:以各因素的平均效应为基准,用相对的效应值
    来表示各水平的效应。可见,就是
    是相对效应量,是各效应偏离平均效应的程度,即离均差。易知:

    2.2.4和2.2.5式需要稍微推导一下,有兴趣的同学可以自己动手试试,没兴趣忽略就好

    据此,可将2.1式写为:

    其中:

    • 是观测值
    • 是总平均,相当于是截距
    • 是随机误差,且独立同分布

    模型表达的意思是:每一个观测值

    实际上都是在某个总平均
    上附加了一个
    因素
    水平的效果
    ,一个
    因素
    水平的效果
    因素和
    因素在各自水平上的交互作用
    ,并且还受到了随机误差
    的影响。

    例如,如果某被试接受的是自变量

    的处理,那么他的观测值就是

    是指该处理中观测值的编号,

    引入虚拟变量

    为了便于理解,我们可以引入虚拟变量

    ,令:

    意味着:在

    处理中,
    ,其余虚拟变量均为0。

    例如:对第

    处理中,
    ,其余均为0

    可以发现,当把虚拟变量带入2.3式之后得到:

    2.4式可看成是一个包含

    个自变量的多元线性回归模型。

    此时

    的取值为:

    此时

    的取值为:

    是不是眼花缭乱?哈哈。

    如果从矩阵的角度来看,此时的

    形成的矩阵就是一个
    的单位矩阵,只有对角线元素为1。而且注意到:
    的取值都可以由
    组合得到。即
    的每一列都可以是
    列向量的线性组合。也就是自变量之间存在多重共线性,此时有效的自变量数量仅仅只有
    。这就出问题了,因为我们需要估计的参数一共有

    别担心,我们还有2.2.2-2.2.5这几个式子,利用这几个式子将上述取值改为:(又要眼花缭乱了)

    此时利用2.2.1和2.2.2式将

    中各去掉了一个自变量,表中去掉的是各自的最后一项,因为
    ,所以当
    时,将
    都取为
    就可以了。实际上去掉任何一项都可以,不影响最终结果。

    同理,可将交互作用的虚拟变量改为:

    注意到对角线的子矩阵,以及最后一行的各矩阵。特别是最后一行

    时的取值,用心的小伙伴简单推导就可以得到,这里就不再啰嗦了。

    3 对单因素方差分析的线性模型进行多元回归

    提示:该部分直接用公式推导实在太麻烦了,所以用一个数据例子来进行说明。

    以一个3×2的两因素完全随机设计为例,其中A因素个水平,B因素两个水平,每个处理之下一共4个观测值。

    将观测值

    和虚拟变量都列出来为。为了偷懒,除了第一个处理的四个观测值都列出来之外,其余的每个处理只列出一个。

    接下来,利用python的statemodels进行计算:

    from statsmodels.formula.api import ols #拟合线性模型的包
    from statsmodels.stats.anova import anova_lm#进行方差分析的包
    import pandas as pd
    import numpy as np
    data={
        'XA1':  [1,1,1,1, 1, 1, 1, 1,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1],
        'XA2':  [0,0,0,0, 0, 0, 0, 0,1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1],
        'XB1':  [1,1,1,1,-1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1,1,1,1,1,-1,-1,-1,-1],
        'XAB11':[1,1,1,1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,-1,-1,-1,-1,1,1,1,1],
        'XAB21':[0,0,0,0,0,0,0,0,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,1],
        'Y':[5,3,4,2,6,3,5,5,7,6,7,8,8,7,8,5,9,7,5,7,10,12,11,7],
        'A':[1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3],
        'B':[1,1,1,1,2,2,2,2,1,1,1,1,2,2,2,2,1,1,1,1,2,2,2,2]
    }#其中前5行是虚拟变量,Y是观测值,A,B是分类变量
    df=pd.DataFrame(data)
    model_lin=ols('Y~XA1+XA2+XB1+XAB11+XAB21',data=df).fit()#用虚拟变量进行回归
    model_anova=ols('Y~C(A)*C(B)',data=df).fit()#用分类变量进行方差分析
    anova_Result=anova_lm(model_anova)
    
    print(anova_Result)
    
    df     sum_sq    mean_sq          F    PR(>F)
    C(A)        2.0  79.083333  39.541667  17.905660  0.000052
    C(B)        1.0  12.041667  12.041667   5.452830  0.031315
    C(A):C(B)   2.0   9.083333   4.541667   2.056604  0.156887
    Residual   18.0  39.750000   2.208333        NaN       NaN
    #利用方差分析结果计算决定系数,组间平方和(主效应与交互作用之和)/总平方和
    R_square=np.sum(anova_Result.sum_sq[0:3])/np.sum(anova_Result.sum_sq)
    print(R_square)
    
    0.7159869008633524
    #打印回归分析结果
    print(model_lin.summary())
    
    OLS Regression Results                            
    ==============================================================================
    Dep. Variable:                      Y   R-squared:                       0.716
    Model:                            OLS   Adj. R-squared:                  0.637
    Method:                 Least Squares   F-statistic:                     9.075
    Date:                Sat, 11 Apr 2020   Prob (F-statistic):           0.000191
    Time:                        18:02:59   Log-Likelihood:                -40.109
    No. Observations:                  24   AIC:                             92.22
    Df Residuals:                      18   BIC:                             99.29
    Df Model:                           5                                         
    Covariance Type:            nonrobust                                         
    ==============================================================================
                     coef    std err          t      P>|t|      [0.025      0.975]
    ------------------------------------------------------------------------------
    Intercept      6.5417      0.303     21.566      0.000       5.904       7.179
    XA1           -2.4167      0.429     -5.633      0.000      -3.318      -1.515
    XA2            0.4583      0.429      1.068      0.299      -0.443       1.360
    XB1           -0.7083      0.303     -2.335      0.031      -1.346      -0.071
    XAB11          0.0833      0.429      0.194      0.848      -0.818       0.985
    XAB21          0.7083      0.429      1.651      0.116      -0.193       1.610
    ==============================================================================
    Omnibus:                        1.556   Durbin-Watson:                   2.330
    Prob(Omnibus):                  0.459   Jarque-Bera (JB):                1.295
    Skew:                          -0.535   Prob(JB):                        0.523
    Kurtosis:                       2.614   Cond. No.                         1.73
    ==============================================================================
    
    Warnings:
    [1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
    #利用回归模型输出各预测值
    model_lin.predict()
    
    array([ 3.5 ,  3.5 ,  3.5 ,  3.5 ,  4.75,  4.75,  4.75,  4.75,  7.  ,
            7.  ,  7.  ,  7.  ,  7.  ,  7.  ,  7.  ,  7.  ,  7.  ,  7.  ,
            7.  ,  7.  , 10.  , 10.  , 10.  , 10.  ])
    #利用回归模型输出参数估计值
    model_lin.params
    
    Intercept    6.541667
    XA1         -2.416667
    XA2          0.458333
    XB1         -0.708333
    XAB11        0.083333
    XAB21        0.708333
    dtype: float64
    #输出原始观测值的总均值
    np.mean(df['Y'])
    
    6.541666666666667

    可见,用常规的方差分析计算出来的结果与回归分析一致,决定系数

    是相同的。此外,回归模型告诉我们:各处理的预测值就是该处理的组均值;模型的截距(总平均)就是所有观测值的平均值。实际上,决定系数就是回归平方和除以总平方和。而回归平方和等于观测值与预测值的平方和,对应的就是方差分析组间平方和,不过多因素方差分析中,组间平方和等于所有主效应与交互作用平方和之和。回归总平方和就是观测值与总平均的平方和,此处与方差分析的总平方和一致。

    绕了这么半天,似乎说了好多废话。有同学可能会嫌弃,认为我把简单的事情搞复杂了。确实这样理解很复杂,但是只有这样理解了,我们才能搞清楚什么是Ⅰ型平方和以及Ⅲ型平方和。这两种平方和专门针对多因素方差分析,在等组设计中二者没有区别,但是非等组设计中二者区别就大了,反正我最终是通过回归才搞清楚

    关于Ⅰ型平方和以及Ⅲ型平方和,我会专门写一篇文章来介绍。

    4 结论

    • 多元回归的结果与方差分析的结果是一致的
    • 将多因素方差分析转换为回归分析时,要注意虚拟变量的取值,特别是交互作用的虚拟变量。
    • 通过回归来理解方差分析,有助于我们理解Ⅰ型平方和以及Ⅲ型平方和(另开文章介绍)

    欢迎非商业转载,只需注明作者“AhaDad”和来源即可

    展开全文
  • 使用Python进行多因素方差分析
  • 因素多元方差分析

    2020-02-02 13:22:58
    因素多元方差分析,胡想顺,刘小凤,目的 给出三因素多元方差分析的原理以及过程。方法 在学习两因素多元方差分析的基础上进行三因素多元方差分析的过程推导。结果 �
  • 方差分析不管你是单因素还是因素,当各组的样本量都相等时,我们通常会忽略“方差齐性”这...比如单因素方差分析你有3个组,每组的样本容量都是20,则即使方差不齐也可以当成是方差齐进行F检验。另外即使各组样本...
  • SPSS实现多因素方差分析

    千次阅读 多人点赞 2020-10-01 21:01:49
    SPSS实现多因素方差分析目的适用情景数据处理SPSS操作SPSS输出结果分析知识点 目的 检验个因素对因变量的作用和影响,以及因素共同作用的影响。(因素之间独立影响变量,因素之间交互作用影响变量) 适用情景 ...
  • 用SPSS软件多因素方差分析三组不同性别学生的数学成绩 操作: 分析->一般线性模型->单变量 协方差分析 操作: 分析->一般线性模型->单变量 为啥我的没有F检验 老师的: 我的: 结语: ...
  • Python 多因素方差分析

    万次阅读 2018-10-04 16:52:24
    在实际应用中,一个实验的指标往往受到个因素的影响。...同时对因素A和因素B进行分析,就称为双因素方差分析。 a b c a1 b1 20 a1 b2 22 a1 b3 24 a1 b4 16 a1 b5 26 a2 b1 12 a2 b2 10 a2 b3 14 a2 b...
  • 多因素方差分析——python

    千次阅读 2019-05-05 20:44:13
    在一次实验中,实验的结果会同时受到个因素的影响。...同时对因素A 和因素B进行分析,就称作双因素方差分析。 数据的格式如下: import pandas as pd file = r'C:\\Users\Desktop\fangca.txt' dat...
  • SPSS(二)SPSS实现多因素方差分析模型 单因素方差分析上一篇博客https://blog.csdn.net/LuYi_WeiLin/article/details/89917656已经介绍完毕 这篇博客我们主要来学习多因素方差分析 多因素方差分析,就是同时考虑...
  • r语言中的多因素方差分析In this tutorial, we’ll move on to understanding factors in R programming. One operation we perform frequently in data science is the estimation of a variable based upon the ...
  • 多因素方差分析.zip

    2020-10-06 15:05:08
    MATLAB多因素方差分析,里面有5组数据
  • 将同性别、体重相近的同一配伍组的5只大鼠,分别用5种方法染尘,共有6个配伍组30只大鼠,测得的各鼠全肺湿重,见下表。问5种处理间的全肺湿重有无差别?
  • R语言【多因素方差分析

    千次阅读 2020-04-15 17:19:34
    《R语言与大数据编程实战》 学习笔记
  • 这种研究通常是为了比较不同时间点的差异情况,或者分析时间变化趋势。或将一组人群分配至不同组别,对每组人群分别在干预前后不同的时间点观察其结局。这种研究通常要比较不同组的差异,有的再深入点,可能还要分析...
  • 在上一期中我们详细的讲解了多因素方差分析中简单效应的SPSS操作方法,以及数据分析结果的解读。今天我们进一步讲解如何对简单效应的成对比较进行统计图形的绘制。用到的是统计绘图软件GraphPad Prism​ 目前市面上...
  • SPSS单因素和多因素方差分析法.ppt
  • 作用:去掉对因变量影像小的因子(特征)
  • 第一节 单因素方差分析;General Linear Model菜单项有四项 Univariate提供回归分析和一个因变量和一个或几个因素变量的方差分析 Multivariate:可进行因变量的因素分析 Repeated Measure:可进行重复测量方差分析 ...
  • 重复测量的多因素方差分析.doc
  • 方差分析多因素 先看设计定思路 重复与否是关键 项目数定 总自由度   先把被试来数数 定出 被试间自由度 混合设计要小心 组间因素 分解出   被试内 有自由度 总 减 被试间 可得出 定下 被试内因素 误差 ...
  • spss多因素方差分析报告文书例子.doc

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,542
精华内容 20,216
关键字:

多因素方差分析