在进行双因素方差分析中,我们在考虑两个因素之间是否存在着交互作用时,我们还可以借助交互效应图来直观的进行判断。
在图中,将某一因素(假设A)作为横轴,用另一因素(假设为B)各水平在目标问题(因变量)上的均值作为纵轴取值,并用线段依此将各点连接起来。
R语言中绘制交互效应图的函数
在R语言中可以使用interaction.plot()函数来绘制交互作用图,该函数的原型如下:
interaction.plot(x.factor, trace.factor, response, fun = mean,
type = c("l", "p", "b", "o", "c"), legend = TRUE,
trace.label = deparse(substitute(trace.factor)), fixed = FALSE,
xlab = deparse(substitute(x.factor)), ylab = ylabel,
ylim = range(cells, na.rm = TRUE),
lty = nc:1, col = 1, pch = c(1:9, 0, letters),
xpd = NULL, leg.bg = par("bg"), leg.bty = "n",
xtick = FALSE, xaxt = par("xaxt"), axes = TRUE, ...)
主要的参数含义如下:
x.factor : 作为x轴的因素;
trace.factor:另外一个因素,其在response(因变量)上的取值用于绘制直线;
response:一个数值变量(因变量的取值)
fun:计算因变量取值的函数,默认为均值。
legend:逻辑值,用于指示是否显示图例说明。
trace.label:图例说明标签,默认从trace.factor中提取各水平的名称。
fixed:逻辑值,用于指示标签的顺序,默认为FALSE。取值TRUE时则按照trace.factor中的水平顺序来显示,否则按照绘图中右端的上下顺序给出。
其它参数与其它绘图函数的含义相同,在此不再赘述,感兴趣的读者可以到本站前面有关绘图函数的介绍中去查阅。
R语言中绘制交互效应图的例子
例1:这里仍然使用本站在《使用R语言进行有交互作用的双因素方差分析》中使用的例1中的例子:电池的板极材料与使用的环境温度对电池的输出电压均有影响。例子具体内容可以点击上面的连接进入查看。
右击将数据另存为下载:电池板极材料及使用环境温度对电池输出电压的影响数据
完整程序参考如下:
#####有交互作用的方差分析交互图#####
#使用scan函数从文本文件中读取数据
V<-scan("vmt.txt")
#定义材料因子
M<-gl(3,12,labels=c("M1","M2","M3"))
#定义温度因子
T<-gl(3,4,36,labels=c("T1","T2","T3"))
#绘制交互效应图
interaction.plot(M,T,V,lwd=2,col=c(2,3,4))
绘制的交互效应图如下图所示:
从这个图中,我们可以看出:
(1)对于同一材料,如M2,温度不同时(不同的颜色代表不同的温度),其电压均值不同,可以初步认为温度对输出电压有影响;
(2)对于同一温度(图中指同一颜色的折线),材料不同时,其电压均值不同,可以初步认为材料对输出电压有影响;
(3)各折线是交叉的,说明温度和材料对输出电压有交互影响。
借助上一篇文章中方差分析表中的p值,可以得到印证。
如果将温度作为横坐标,可以得到下图的形式:
例2:将锑加到锡-铅焊料中替代较昂贵的锡,从而降低焊接成本。下表中给出了锑的4种添加比例及4种冷却方法对抗剪强度影响的试验结果,每种组合进行了3次试验。对数据进行方差分析。(1)每种添加比例之间是否存在显著差异?(2)每种冷却方法之间是否存在显著差异?(3)添加比例与冷却方法是否存在交互效应?画出两因素的交互效应图。
数据保存在名为 ti-cold_strength的文本文件中,每个数据以空格作为分隔,读者可以右击下面的连接,将其另存到本地:
右击选择另存为,将文件保存到你的机器中
锑的添加比例 | 冷却方法 | |||
水冷 | 油冷 | 气吹 | 炉内冷却 | |
0% |
17.6 |
20.0 24.3 21.9 |
18.3 19.8 22.9 |
19.4 19.8 20.3 |
3% | 18.6 19.5 19.0 |
20.0 20.9 20.4 |
21.7 22.9 22.1 |
19.0 20.9 19.9 |
5% | 22.3 19.5 20.5 |
20.9 22.9 20.6 |
22.9 19.7 21.6 |
19.6 16.4 20.5 |
10% | 15.2 17.1 16.6 |
16.4 19.0 18.1 |
15.8 17.3 17.1 |
16.4 17.6 17.6 |
编写R程序如下:
###锑添加量及冷却方式对焊接抗剪强度的影响分析###
#定义数据
strength <- scan("ti-cold_strength.txt")
#定义锑的添加比例因子
Ti <- gl(4,12,labels=c("0%","3%","5%","10%"))
#定义冷却方式因子
Cold <- gl(4,3,48,labels=c("水冷","油冷","气吹","炉内冷却"))
#进行方差分析
aov.rel<-aov(strength~Ti + Cold+Ti*Cold)
#提取方差分析表
summary(aov.rel)
#绘制交互作用图
interaction.plot(Ti,Cold,strength,lwd=2,col=2:5)
方差分析表如下图所示:
从这个分析表中,可以回答题目中的三个问题:
(1)由于Ti变量的P值<0.05,则拒绝零假设,认为Ti的添加比例对抗剪强度有显著影响;
(2)由于Cold的P值<0.05,则拒绝零假设,认为不同的冷却方式对抗剪强度有显著影响;
(3)两者交互作用的检验p值>0.05,不能拒绝零假设,则认为两者的交互作用对抗剪强度的影响不够显著。
绘制的交互作用图如下:
新闻热点
疑难解答