利用Matlab作方差分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
利用Matlab作方差分析
例1(单因素方差分析)一位教师想要检查3种不同的教学方法的效果,为此随机地选取水平相当的15位学生。把他们分为3组,每组5人,每一组用一种方法教学,一段时间以后,这位教师给15位学生进行统考,成绩见下表1。问这3种教学方法的效果有没有显著差异。表1 学生统考成绩表
Matlab中可用函数anova1(…)函数进行单因子方差分析。
调用格式:p=anova1(X) 含义:比较样本m×n的矩阵X中两列或多列数据的均值。其中,每一列表示一个具有m个相互独立测量的独立样本。
返回:它返回X中所有样本取自同一总体(或者取自均值相等的不同总体)的零假设成立的概率p。
解释:若p值接近0(接近程度有解释这自己设定),则认为零假设可疑并认为至少有一个样本均值与其它样本均值存在显著差异。 Matlab程序: Score=[75 62 71 58 73;81 85 68 92 90;73 79 60 75 81]’; P=anova1(Score) 输出结果:方差分析表和箱形图 ANOVA Table
Source SS df MS F Prob>F Columns 2 Error 12 Total
14
由于p值小于,拒绝零假设,认为3种教学方法存在显著差异。
例2(双因素方差分析)为了考察4种不同燃料与3种不同型号的推进器对火箭射程(单位:海里)的影响,做了12次试验,得数据如表2所示。表2 燃料-推进器-射程数据表
在Matlab中利用函数 anova2函数进行双因素方差分析。
调用格式:p=anova2(X,reps) 含义:比较样本X中两列或两列以上和两行或两行以上数据的均值。不同列的数据代表因素A的变化,不同行的数据代表因素B的变化。若在每个行-列匹配点上有一个以上的观测量,则参数reps指示每个单元中观测量的个数。
返回:当 reps=1(默认值)时,anova2将两个p值返回到向量p中。 H0A:因素A的所有样本(X中的所有列样本)取自相同的总体; H0B:因素B的所有样本(X中的所有行样本)取自相同的总体。当reps>1时,anova2还返回第三个p值: H0AB:因素A与因素B没有交互效应。
解释:如果任意一个p值接近于0,则认为相关的零假设不成立。 Matlab程序:disp1=[ ; ; ; ]’; p=anova2(disp1,1)
输出结果:方差分析表ANOVA Table Source SS df MS F Prob>F Columns 3 Rows 2
Error 6 12 Total 11
由于燃料和推进器对应的p值均大于,所以可以接受零假设H0A和H0B,认为燃料和推进器对火箭的射程没有显著影响。
例3(Matlab作方差分析双因素方差分析)设火箭的射程在其它条件基本相同时与燃料种类及推进器型号有关。现在考虑4种不同的燃料及3种不同型号的推进器,对于每种搭配个发射了火箭两次,得数据见表3。问各自变量和自变量的交互效应是否对火箭的射程有显著影响表3 燃料-推进器-射程数据表
Matlab程序:
disp2=[ ; ; ]’; p=anova2(disp2,2)
输出结果:方差分析表ANOVA Table Source SS df MS F Prob >F
Columns 2 Rows 3 Interaction 6 Error 12
Total 23 显著。