双因素方差分析(R)
目录
原理
双因素等重复试验的方差分析
假设前提和模型设定
离差平方和分解
检验统计量和拒绝域
例题
应用
双因素无重复试验的方差分析
假设前提和模型设定
离差平方和分解
检验统计量和拒绝域
例题
应用
原理
在单因素方差分析的基础上,双因素方差分析有两种类型,一种是无交互作用(双因素无重复试验)的双因素方差分析,一种是有交互作用(双因素等重复试验)的双因素方差分析。
双因素等重复试验的方差分析
假设前提和模型设定
设有交互作用的两个因素A,B作用于试验的指标,因素A有r个水平,因素B有s个水平,现对因素A,B的水平的每对组合都作次试验(成为等重复试验),得到结果:
因素 | ... | |||
... | ||||
... | ||||
... | ... | ... | ... | |
... |
由表可知,一共有r*s个总体,基于假设前提:
1.每个总体均服从正态分布,且方差相等,即,
2.每个总体中抽取的样本相互独立
引入记号:
其中,为的效应,为的效应,且
把表示为
其中,称为因素水平和因素水平的交互效应,且
因此可把写成,其中,各独立
对于这一模型,要检验以下三个假设:
离差平方和分解
引入记号:
总离差平方和:
其中,
组内离差平方和为
因素A的效应平方和为
因素B的效应平方和为
因素A、B交互效应平方和为
在实际计算中,可以使用以下公式简便计算:
记
计算
检验统计量和拒绝域
上述离差平方和的统计特性为
离差平方和 | 自由度 | 均值估计量 |
SST | rst-1 | |
SSW | rs(t-1) | |
SSA | r-1 | |
SSB | s-1 | |
SSAB | (r-1)(s-1) |
当为真时,
故拒绝域为
类似地,假设的拒绝域为
假设的拒绝域为
方差来源 | 离差平方和 | 自由度 | 均方 | F比 |
因素A | SSA | r-1 | ||
因素B | SSB | s-1 | ||
交互作用 | SSAB | (r-1)(s-1) | ||
误差 | SSW | rs(t-1) | ||
总和 | SST | rst-1 |
例题
一火箭使用四种燃料A,三种推进器B作射程试验,每种燃料与每种推进器的组合各发射火箭两次,得到射程结果服从双因素方差分析假设条件(以海里计),检验两个因素及交互效应是否显著
B1=c(58.2,52.6,49.1,42.8,60.1,58.3,75.8,71.5)
B2=c(56.2,41.2,54.1,50.5,70.9,73.2,58.2,51.0)
B3=c(65.3,60.8,51.6,48.4,39.2,40.7,48.7,41.4)
d=cbind(B1,B2,B3)
data=data.frame(d)
rownames(data)=c("A1","A1*","A2","A2*","A3","A3*","A4","A4*")
r=4
s=3
t=2
n=24
Xbar=mean(c(mean(data$B1),mean(data$B2),mean(data$B3)))
SST=sum((c(data$B1,data$B2,data$B3)-Xbar)**2)
tdata=data.frame(t(data))
SSA=s*t*((mean(c(tdata$A1,tdata$A1.))-Xbar)**2+(mean(c(tdata$A2,tdata$A2.))-Xbar)**2+(mean(c(tdata$A3,tdata$A3.))-Xbar)**2+(mean(c(tdata$A4,tdata$A4.))-Xbar)**2)
SSB=r*t*((mean(data$B1)-Xbar)**2+(mean(data$B2)-Xbar)**2+(mean(data$B3)-Xbar)**2)
SSAB=0
m=function(rc,sc){#引入目标数组函数简化代码,前述计算也可以用这个函数y=c()for(i in rc){for(j in sc){y=c(y,data[t*i-1,j],data[t*i,j])}}return(y)
}
for(i in 1:r){for(j in 1:s){Xijbar=mean(m(i,j))Xibar=mean(m(i,c(1,2,3)))Xjbar=mean(m(c(1,2,3,4),j))Xbar=mean(m(c(1,2,3,4),c(1,2,3)))SSAB=SSAB+(Xijbar-Xibar-Xjbar+Xbar)**2}
}
SSAB=t*SSAB
SSW=SST-SSA-SSB-SSAB
tab1=data.frame(matrix(nrow = 5,ncol = 5))
colnames(tab1)=c("方差来源","偏差平方和","自由度","均方","F比")
tab1[1,1]="因素A"
tab1[2,1]="因素B"
tab1[3,1]="交互作用"
tab1[4,1]="误差"
tab1[5,1]="总和"
tab1[1,2]=SSA
tab1[2,2]=SSB
tab1[3,2]=SSAB
tab1[4,2]=SSW
tab1[5,2]=SST
tab1[1,3]=r-1
tab1[2,3]=s-1
tab1[3,3]=(r-1)*(s-1)
tab1[4,3]=r*s*(t-1)
tab1[5,3]=r*s*t-1
tab1[1,4]=SSA/(r-1)
tab1[2,4]=SSB/(s-1)
tab1[3,4]=SSAB/((r-1)*(s-1))
tab1[4,4]=SSW/(r*s*(t-1))
tab1[1,5]=tab1[1,4]/tab1[4,4]
tab1[2,5]=tab1[2,4]/tab1[4,4]
tab1[3,5]=tab1[3,4]/tab1[4,4]
qf(1-0.05,r-1,r*s*(t-1))
qf(1-0.05,s-1,r*s*(t-1))
qf(1-0.05,(r-1)*(s-1),r*s*(t-1))
由于
所以因素A,B及其交互效应都显著。
应用
A=c("A1","A1","A2","A2","A3","A3","A4","A4")
mdat=data.frame(A,B1,B2,B3)
library(reshape2)
mdata=melt(mdat,id.vars = "A",measure.vars = c("B1","B2","B3"),variable.name = "B",value.name = "range")
aov=aov(range~A+B+A*B,data=mdata)
summary(aov)
双因素无重复试验的方差分析
假设前提和模型设定
如果在实际问题中,已经知道因素A、B不存在交互作用,就可以对每一个组合只做一次试验,得到实验结果
因素 | ... | |||
... | ||||
... | ||||
... | ... | ... | ... | ... |
... |
由表可知,一共有r*s个样本数据,基于假设前提:
1.每个样本数据均服从正态分布,且方差相等,即,
2.每个样本数据相互独立
沿用上一试验的记号,由于不存在交互作用,,于是
则,其中且各独立
所需检验的假设为:
离差平方和分解
总离差平方和为
因素A的效应平方和为
因素B的效应平方和为
组内离差平方和为
为简便计算,可先计算其他离差平方和,再计算SSW
检验统计量和拒绝域
上述离差平方和的统计特性为
离差平方和 | 自由度 | 均值估计量 |
SST | rs-1 | |
SSA | r-1 | |
SSB | s-1 | |
SSW | (r-1)(s-1) |
假设的拒绝域为
假设的拒绝域为
方差来源 | 离差平方和 | 自由度 | 均方 | F比 |
因素A | SSA | r-1 | ||
因素B | SSB | s-1 | ||
误差 | SSW | (r-1)(s-1) | ||
总和 | SST | rs-1 |
例题
有5个不同时间、4个不同地点空气中的颗粒物的含量(以计)的数据,符合假设前提,检验是否显著
B1=c(76,82,68,63)
B2=c(67,69,59,56)
B3=c(81,96,67,64)
B4=c(56,59,54,58)
B5=c(51,70,42,37)
data2=data.frame(B1,B2,B3,B4,B5)
rowname=c("A1","A2","A3","A4")
rownames(data2)=rowname
r=dim(data2)[1]
s=dim(data2)[2]
n=r*s
m=function(rc,sc){y=c()for(i in rc){for(j in sc){y=c(y,data2[i,j])}}return(y)
}
data2[5,1]=sum(m(1:r,1))
data2[5,2]=sum(m(1:r,2))
data2[5,3]=sum(m(1:r,3))
data2[5,4]=sum(m(1:r,4))
data2[5,5]=sum(m(1:r,5))
rownames(data2)=c(rowname,"Tj")
Ti=c()
for(i in 1:(r+1)){Ti=c(Ti,sum(m(i,1:s)))
}
data2$Ti=Ti
SST=sum(m(1:r,1:s)**2)-(sum(m(1:r,1:s))**2)/r/s
SSA=sum(m(1:r,6)**2)/s-(sum(m(1:r,1:s))**2)/r/s
SSB=sum(m(5,1:s)**2)/r-(sum(m(1:r,1:s))**2)/r/s
SSW=SST-SSA-SSB
tab2=data.frame(matrix(nrow = 4,ncol = 5))
colnames(tab2)=c("方差来源","平方和","自由度","均方","F比")
tab2[1,1]="因素A"
tab2[2,1]="因素B"
tab2[3,1]="误差"
tab2[4,1]="总和"
tab2[1,2]=SSA
tab2[2,2]=SSB
tab2[3,2]=SSW
tab2[4,2]=SST
tab2[1,3]=r-1
tab2[2,3]=s-1
tab2[3,3]=(r-1)*(s-1)
tab2[4,3]=r*s-1
tab2[1,4]=tab2[1,2]/tab2[1,3]
tab2[2,4]=tab2[2,2]/tab2[2,3]
tab2[3,4]=tab2[3,2]/tab2[3,3]
tab2[1,5]=tab2[1,4]/tab2[3,4]
tab2[2,5]=tab2[2,4]/tab2[3,4]
qf(1-0.05,r-1,(r-1)*(s-1))
qf(1-0.05,s-1,(r-1)*(s-1))
由于
所以因素A、B都显著。
应用
library(reshape2)
month=c("A1","A2","A3","A4")
Dat2=data.frame(month,B1,B2,B3,B4,B5)
rdata2=melt(Dat2,id.vars = "month",measure.vars = c("B1","B2","B3","B4","B5"),variable.name = "province",value.name = "concentration")
aov=aov(concentration~month+province,data=rdata2)
summary(aov)
双因素方差分析(R)相关推荐
- R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA)、使用HH包中的interaction2wt函数为任何阶的双因素方差分析可视化主效应和交互作用图、箱图显示主效应
R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA).使用HH包中的interaction2wt函数为任何阶的双因素方差分析可视化主效应和交互作用图(Main ef ...
- R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA)、在双因素方差分析中,受试者被分配到由两个因素交叉分类形成的组(Two-way factorial ANOVA)
R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA).在双因素方差分析中,受试者被分配到由两个因素交叉分类形成的组(Two-way factorial ANOVA) ...
- R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA)、使用interaction.plot函数在双因素方差分析中可视化交互作用(Interaction)
R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA).使用interaction.plot函数在双因素方差分析中显示(可视化)交互作用(Interaction) 目 ...
- R语言双因素方差分析
R语言双因素方差分析 条件: 各个样本是相互独立的随机: 各个样本来自正态总体: 具有方差齐性: 用途: 检验两个或多样本均数间的差异有无统计学意义:注:本均数的比较可以采用 t检验或 F检验,两个以 ...
- R语言统计篇:双因素方差分析
今天介绍双因素方差分析(Two-way ANOVA). 此方法用于检验两个分类变量(自变量)与一个连续变量(因变量)之间的关系. 比方说,如果一个分类变量有两个组别,另外一个分类变量有三个组别,那么一 ...
- Python玩转数据分析——双因素方差分析
概念 方差分析(Analysis of Variance,简称ANOVA),又称"变异数分析"或"F检验",用于两个及两个以上样本均数差别的显著性检验.双因素方 ...
- 【数据分析】双因素方差分析
0.双因素方差分析的分类 无交互作用的方差分析 假定因素AAA和因素BBB的效应之间是相互独立的,不存在相互关系. 有交互作用的方差分析 假定因素AAA和因素BBB的结合会产生出一种新的效应. 无交互 ...
- 【统计模型】ToothGrowth数据集双因素方差分析
目录 ToothGrowth数据集双因素方差分析 一.研究目的 二.数据来源和相关说明 三.描述性分析 3.1 样本描述 3.2 样本均值 3.3 箱线图 四.数学建模 五.结论与建议 5.1 结论 ...
- 双因素方差分析_多因素方差分析
总第173篇/张俊红 01.前言 在前面我们讲过简单的单因素方差分析,这一篇我们讲讲双因素方差分析以及多因素方差分析,双因素方差分析是最简单的多因素方差分析. 单因素分析就是只考虑一个因素会对要比较的 ...
- 第13章重复测量和双因素方差分析
第1章统计学入门 第2章频数分布略 第3章集中趋势的测量 第4章变异性 第5章分数的位置及标准化分布 第6章概率和正态分布 第7章概率和样本:样本均值的分布 第8章假设检验介绍 第9章t检验介绍 第1 ...
最新文章
- thinkPHP5.0 URL路由优化
- c语言115写成16进制,C语言指针问题
- 007_Maven依赖管理
- springboot 替换tomcat_Springboot (二十八)云配置服务器
- topcoder SRM 625 DIV2 IncrementingSequence
- dynamic与var
- leetcode570. 至少有5名直接下属的经理(SQL)
- python获取月份字符串_Python时间获取及转换知识汇总
- Facebook人工智能实验室的前世今生
- 工业基础类IFC—概述
- linux下解压iso文件
- DialogFragment dismiss闪退异常DialogFragment何时持有FragmentManager
- 歌评-《胧月夜》-神前暁
- Qlikview---变量
- 火遍全网的chatGPT怎么使用
- Windows 11 任务栏、菜单栏无故消失解决方案
- 液晶屏接口协议 MIPI LVDS 概览
- seetaface6 GPU版本windows编译
- Web全栈~10.流程控制
- listview控件Android,Android中ListView控件的简单使用