前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【数据分析 R语言实战】学习笔记 第八章 双因素方差分析与R实现

【数据分析 R语言实战】学习笔记 第八章 双因素方差分析与R实现

作者头像
统计学家
发布2019-04-10 15:53:02
6.7K1
发布2019-04-10 15:53:02
举报

8.2双因素方差分析及R实现

8.2.1无交互作用的分析

例:

某商品在不同地区、不同包装的销售数据

首先为了建立数据集,引入生成因子水平的函数g1(),其调用格式为:

gl(n, k, length=n*k,labels=1:n,ordered=FALSE)

n是因子的水平个数;k表示每一水平上的重复次数;length=n*k表示总观测数;可通过参数labels对因子的不同水平添加标签;ordered为逻辑值,指示是否排序。

> x=c(20,12,20,10,14,22,10,20,12,6,24,14,18,18,10,16,4,8,6,18,26,22,16,20,10) > sales=data.frame(x,A=gl(5,5),B=gl(5,1,25)) > sales$B [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 12 3 4 5 Levels: 1 2 3 4 5

分析前先对因素A和B作方差齐性检验,使用函数bartlett.test()

> bartlett.test(x~A,data=sales) Bartlett test of homogeneity of variances data: x by A Bartlett's K-squared =0.66533, df = 4, p-value = 0.9555 > bartlett.test(x~B,data=sales) Bartlett test of homogeneity of variances data: x by B Bartlett's K-squared =1.2046, df = 4, p-value = 0.8773

因素A和B的P值都远大于0.05的显著性水平,不能拒绝原假设,说明因素A, B的各水平是满足方差齐性的。这时再进行双因素方差分析,输入指令

> sales.aov=aov(x~A+B,data=sales) > summary(sales.aov) Df Sum Sq Mean Sq F valuePr(>F) A 4 199.4 49.84 2.303 0.1032 B 4 335.4 83.84 3.874 0.0219 * Residuals 16 346.2 21.64 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’1

检验的结论:因素B的P值=0.0219<0.05,拒绝原假设,说明销售地区对饮料的销售量有显著影响;而因素A的P值=0.1032>0.05,不能拒绝原假设,因此没有充分的理由可以说明包装方式对销售有明显影响。

8.2.2有交互作用的分析

R仍然用函数aov()作双因素方差分析,只需将formula改为x~A+B+A:B或x~A*B的形式即可。

例:

不同路段和不同时段的行车时间数据

首先构造数据集,对因素A和B作方差齐性检验,利用函数bartlett.test()

> time=c(25,24,27,25,25,19,20,23,22,21,29,28,31,28,30,20,17,22,21,17,18,17,13,16,12,22,18,24,21,22) > traffic=data.frame(time,A=gl(2,15,30),B=gl(3,5,30,labels=c("I","II","III"))) > bartlett.test(time~A,data=traffic) Bartlett test of homogeneity of variances data: time by A Bartlett's K-squared =0.053302, df = 1, p-value = 0.8174 > bartlett.test(time~B,data=traffic) Bartlett test of homogeneity of variances data: time by B Bartlett's K-squared =0.57757, df = 2, p-value = 0.7492

检验结果的P值均远大于显著性水平0.05,说明两个因素下的各水平都满足方差齐性的要求,可以进一步做方差分析。画图来观察一下数据的特点,首先是箱线图。

> op=par(mfrow=c(1,2)) #分割图形区域 > plot(time~A+B,data=traffic) Hit <Return> tosee next plot:

从图形上单独观察时段和路段对行车时间的影响,可以发现因素的不同水平还是有明显差别的。为了考察因素间的交互作用是否存在,利用函数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表示横轴的因子

trace.factor表示分类绘图的因子

response是数值向量,要输入响应变量

fun表示汇总数据的方式,默认为计算每个因子水平下的均值

type指定图形类型

legend是逻辑值,指示是否生成图例

trace.label给出图例中的标签。

> attach(traffic) > interaction.plot(A,B,time,legend=F) > interaction.plot(B,A,time,legend=F)

曲线均没有相交,所以可以初步判断两个因素之间应该没有交互作用。用方差分析进行确认:

> traf.aov=aov(time~A*B,data=traffic) > summary(traf.aov) Df Sum Sq Mean Sq F value Pr(>F) A 1 313.63 313.63 84.766 2.41e-09 *** B 2 261.60 130.80 35.351 7.02e-08 *** A:B 2 6.67 3.33 0.901 0.42 Residuals 24 88.80 3.70 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

根据检验结果的P值作判断:引素A时段和B路段对行车时间有显著影响;而交互作用A:B的P值=0.42>0.05 ,因此不能拒绝原假设H0,说明两个因素间没有明显的交互效应。

8.3协方差分析及R实现

为了提高试验的精确性和准确性,我们对除研究因素以外的一切条件都需要采取有效措施严加控制,使它们在因素的不同水平间尽量保持一致,这叫做试验控制。但当我们进行试验设计时,即使做出很大努力控制,也经常会碰到试验个体的初始条件不同的情况,如果不考虑这些因素有可能导致结果失真。如果考虑这些不可控的因素,这种方差分析就叫做协方差分析,其是将回归分析和方差分析结合在一起的方法。它的基本原理如下:将一些对响应变量Y有影响的变量X(未知或难以控制的因素)看作协变量,建立响应变量Y随X变化的线性回归分析,从Y的总的平方和中扣除X对Y的回归平方和,对残差平方和作进一步分解后再进行方差分析。

例:

施用3种肥料的苹果产量

> Weight_Initial=c(15,13,11,12,12,16,14,17,17,16,18,18,21,22,19,18,22,24,20,23,25,27,30,32) > Weight_Increment=c(85,83,65,76,80,91,84,90,97,90,100,95,103,106,99,94,89,91,83,95,100,102,105,110) > feed=gl(3,8,24) > data_feed=data.frame(Weight_Initial,Weight_Increment,feed) > library(HH) > m=ancova(Weight_Increment~Weight_Initial+feed,data=data_feed) > summary(m) Df Sum Sq Mean Sq F value Pr(>F) Weight_Initial 1 1621.1 1621.1 142.44 1.50e-10 feed 2 707.2 353.6 31.07 7.32e-07 Residuals 20 227.6 11.4 Weight_Initial *** feed *** Residuals --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

协方差分析的P值非常小,说明结果非常显著,应该拒绝原假设,认为各因素在不同水平下的试验结果有显著差别,即三种肥料对苹果产量有很大的影响。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习与统计学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档