首页 > 其他分享 >方差分析——双因素方差分析(R语言)

方差分析——双因素方差分析(R语言)

时间:2022-11-17 16:37:09浏览次数:75  
标签:因素 语言 假设 检验 0.05 方差分析 response

双因素方差分析(Double factor variance analysis) 有两种类型:一个是无交互作用的双因素方差分析,它假定因素A和因素B的效应之间是相互独立的,不存在相互关系;另一个是有交互作用的双因素方差分析,它假定因素A和因素B的结合会产生出一种新的效应。例如,若假定不同地区的消费者对某种品牌有与其他地区消费者不同的特殊偏爱,这就是两个因素结合后产生的新效应,属于有交互作用的背景;否则,就是无交互作用的背景。这里介绍无交互作用的双因素方差分析。

一、双因素方差分析

当方差分析涉及两个分类试验因素对试验指标的影响差异性时,则可称为双因素方差分析。如要检验不用地区的不同品牌商品的市场销售潜力是否相等,或要检验不同区域不同品牌连锁店的服务消费者认可度是否相等,两个例子中均涉及“区域”、“品牌”两个因素,故其属于双因素方差分析。

1.1问题描述

在双因素分析中,所考虑的因素有两个,各因素又包含若干种水平,而不同水平之间有可能存在系统性差异,只是需要通过检验才能验证这种系统差异是否确实存在。在检验过程中,需要分析两种因素下的不同水平间的差异是否显著存在。
例1 设有 n 个工人使用 m 台机器生产同一种产品,记录每个工人使用每台机器的日产量。那么不同工人之间的生产能力是否有差异,不同机器之间的生产性能是否有差异,需要进行检验,这里所要分析的因素既包括“工人”,也包括“机器”。
例2 灯泡厂在 3 个不同技术员操作下,用 4 种不同配料方案制成的灯丝生产了 4 批灯泡,那么不同技术员之间的技术是否有差异,不同配料方案之间的性能是否有差异,需要进行检验,这里所要分析的因素既包括“技术员”,也包括“配料方案”。

为分析需要,在双因素方差分析中,用A表示因素1,用B表示因素2,A因素的k个水平(总体)分别用A1,A2,…,Ak表示,B 因素的 r 个水平(总体)分别用B1,B2,…,Br表示,每个观测值用 xij(i =1,2,…,k; j =1,2,…,r )表示,即 xij表示 A 因素第 i 个水平(总体)和 B 因素第j个水平所组合成的k×r个总体中抽取的样本量为1的样本观测值。

1.2 分析步骤

第一步,提出假设
对A因素提出的假设为
H0:μ1=μ2=…=μk(假设A因素各水平间没有显著差异,也即A因素对试验指标无显著影响)
H1:μi不全相等(i=1,2,…,k)(假设A因素各水平间有显著差异,也即A因素对试验指标有显著影响)
对B因素提出的假设为
H0:μ1=μ2=…=μr(假设B因素各水平间没有显著差异,也即B因素对试验指标无显著影响)
H1:μi不全相等(i=1,2,…,r)(假设B因素各水平间有显著差异,也即B因素对试验指标有显著影响)
第二步,构造方差分析表
双因素的方差分析表如下表所示:

二、双因素方差分析示例

2.1 问题

研究5种不同的配料(A、B、C、D、E)对某一化学过程反应时间的效应。每批新材料仅够进行5次试验。每次试验大约需要1.5小时,所以一天只能做5次试验。实验者决定用拉丁方来进行实验,使用日期和批次效应可以系统地控制。分析不同配料对反应时间的效应有无显著差异。

image-20211102110300714

2.2 R语言计算

读取数据并进行预处理

#将上面图中数据编辑为数据文件data.csv
mydata = read.csv("data.csv")
head(mydata)
  time batch ingredients response
1    1     1           A        8
2    1     2           C       11
3    1     3           B        4
4    1     4           D        6
5    1     5           E        4
6    2     1           B        7
time <- factor(time)
batch <- factor(batch)
ingredients <- factor(ingredients)

读取数据,将时间(time)、批次(batch)和配料(ingredients)进行因子化处理

对数据进行正态性检验

对全体响应(response)进行正态性分布,采用w检验

shapiro.test(response)  #检验全体response
	Shapiro-Wilk normality test
data:  response
W = 0.95056, p-value = 0.2581

检验原假设是全体响应满足正态性分布,由w检验可知 p > 0.05 p>0.05 p>0.05,接受原假设,response服从正态分布

对数据进行方差齐性检验

采用bartlett方法对不同配方下响应进行方差齐性检验

bartlett.test(response ~ ingredients, data=mydata)
	Bartlett test of homogeneity of variances
data:  response by ingredients
Bartlett's K-squared = 1.5544, df = 4, p-value = 0.817

检验原假设是不同配料下的各组响应满足方差齐性,由检验结果可知 p > 0.05 p>0.05 p>0.05,接受原假设,不同配料下的各组响应满足方差齐性

对数据进行方差分析

使用aov()函数对数据进行方差分析;检验对象为响应(response),自变量为时间(time)、批次(batch)和配方(ingredients)

mydata.aov.blk = aov(response ~ ingredients + time + batch)
summary(mydata.aov.blk)
            Df Sum Sq Mean Sq F value   Pr(>F)    
ingredients  4 141.44   35.36  11.309 0.000488 ***
time         4  12.24    3.06   0.979 0.455014    
batch        4  15.44    3.86   1.235 0.347618    
Residuals   12  37.52    3.13                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

结果

由方差分析结果可知,对于原假设H0:不同配料对反应时间的效应无显著差异,而方差分析结果为原假设出现的概率 p = 0.000488 , p < 0.05 p=0.000488,p<0.05 p=0.000488,p<0.05,故不同配料对反应时间的效应有显著差异。同理可知,使用日期和批次效应对反应时间的效应影响不大。

总结

在实际问题的研究中,有时需要考虑两个因素对实验结果的影响。例如饮料销售,除了关心饮料品牌之外,我们还想了解销售地区是否影响销售量,如果在不同的地区,销售量存在显著的差异,就需要分析原因。采用不同的销售策略, 使该饮料品牌在市场占有率高的地区继续深入人心,保持领先地位;在市场占有率低的地区,进一步扩大宣传,让更多的消费者了解、接受该产品。若 把饮料的品牌看作影响销售量的因素A,饮料的销售地区则是影响因素B。对因素A和因素B同时进行分析,就属于双因素方差分析的内容, 双因素方差分析是对影响因素进行检验,究竟是一个因素在起作用,还是两个因素都起作用,或是两个因素的影响都不显著。

参考文献

R语言对完全随机分组实验、拉丁方实验及正交实验进行方差分析

标签:因素,语言,假设,检验,0.05,方差分析,response
From: https://www.cnblogs.com/haohai9309/p/16898256.html

相关文章

  • 方差分析——正交表(一)(R语言)
    正交试验设计(orthogonaldesign简称正交设计(orthoplan),是利用正交表(orthogonaltable)科学地安排与分析多因素试验的方法,是最常用的试验设计之一。正交表是一种特殊的表格,内......
  • 转载:为什么Lisp语言如此先进?(译文)
    http://ruanyifeng.com/blog/2010/10/why_lisp_is_superior.html为什么Lisp语言如此先进?(译文)作者: 阮一峰日期: 2010年10月14日上周,《黑客与画家》总算翻译完成,已经......
  • 【c&c++】C语言中#ifdef,#ifndef和#endif的作用
    现在规定一下头文件书写规范,根据陈皓编写的跟我一起些makefile,一定要记住:头文件中应该只是声明,而定义应该放在C/C++文件中。否则如果出现有定义,比如头文件中有inta=2;如......
  • C语言创建树
    C语言创建树所需要的文件创建树一般是采用层次遍历创建的方法1.先定义树中有什么,有值,有左右孩子指针,这个指针指向左右孩子,本质就是指向下一个节点2.创建数组,只不过指针......
  • 方差分析—单因素方差分析(R语言)
    方差分析是由英国著名统计学家:R.A.Fisher推导,也叫F检验,用于多个样本间均数的比较(分析类别变量(有序变量))。当包含的因子是解释变量时,关注的重点通常会从预测转向组别差异......
  • 脚本语言基础
    解释性语言和编译性语言的区别平台独立性是解释性语言最大的特点,平台独立意味着只需要安装相关的解释平台就可以进行解释执行解释性语言各个部分比较独立,当出现问题时,只......
  • 计算机等级考试二级C语言程序设计专项训练题——程序设计题(二)
    11、请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。例如,当n=10,x=0.3时,函数值为1.349859。注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号......
  • 计算机等级考试二级C语言程序设计专项训练题——程序设计题(一)
    1、请写函数proc(),其功能是:求正整数x和y的最大公约。例如,程序执行时,若输入的两个正整数为12,24,则它们的最大公约数为12,最小公倍数为24。注意:部分源程序给出如下。请勿改动m......
  • a和b之一有一个为1,但不能都为1的c 语言
    有一个为1写作a==1||b==1都不能为1写作!(a==1&&b==1)所以直接写是if((a==1||b==1)&&!(a==1&&b==1))等效于if((a==1||b==1)&&(a!=1||b!=1))也可以写作if((a==......
  • python语言绘图:绘制贝叶斯方法中最大后验密度(Highest Posterior Density, HPD)区间图的
    代码源自:https://github.com/PacktPublishing/Bayesian-Analysis-with-Python  内容接前文:​​python语言绘图:绘制贝叶斯方法中最大后验密度(HighestPosteriorDensity,......