方差分析的MATLAB实现(单因子)

单因子方差分析是比较俩组或多组数据的均值,它返回原假设——均值相等的概率,在matlab中我们可以用函数

anova1进行单因子方差分析。

函数anova1

格式: p=anova1(X) %X的各列为彼此独立的样本观察值,其元素个数相同,p为各列均值相等的概率值,若p值

接近于0,则原假设受到质疑,说明至少有一列均值与其余列均值有明显的不同

p=anova1(X,group) %X和group为向量且group要与X对应;

[p,table]=anova1(X,group,'displayopt') %displayopt=on/off表示显示与隐藏方差分析表图和盒图

[p,table,stats]=anova1(...) %stats为分析结果的构造;

注:anova1函数产生俩个图:标准的方差分析表图和盒图。

Score=[75 62 71 58 73;81 85 68 92 90;73 79 60 75 81]';
P=anova1(Score)

由于p值小于0.05.拒绝零假设,认为3中教学方法存在显著差异。

X=[0.236 0.238 0.248 0.245 0.243;0.257 0.253 0.255 0.254 0.261;0.258 0.264 0.259 0.267 0.262]';
p=anova1(X)

p=1.3431e-05<0.05;

由于p值小于0.05,拒绝零假设,认为3台机器所生产的薄板的厚度存在显著差异。

strength=[82 86 79 83 84 85 86 87 74 82 78 75 76 77 79 79 77 78 82 79]';
alloy=                        {'st','st','st','st','st','st','st','st','all','all','all','all','all','all','al2','al2','al2','al2','al2','al2'};
[p,table,stats]=anova1(strength,alloy,'on')

p =

1.5264e-04

table =

'Source'    'SS'          'df'    'MS'         'F'          'Prob>F'    
'Groups'    [184.8000]    [ 2]    [92.4000]    [15.4000]    [1.5264e-04]
'Error'     [102.0000]    [17]    [ 6.0000]           []              []
'Total'     [286.8000]    [19]           []           []              []

stats =

gnames: {3x1 cell}
     n: [8 6 6]
source: 'anova1'
 means: [84 77 79]
    df: 17
     s: 2.4495

A=[31.9 27.9 31.8 28.4 35.9;24.8 25.7 26.8 27.9 26.2; 22.1 23.6 27.3 24.9 25.8;27.0 30.8 29.0 24.5 28.5]';
p=anova1(A)

综述:参数意义

第一列:source X中数据可变性的来源

第二列:SS 用于每一列的平方和

第三列:df 与每一种可变性来源有关的自由度

第四列:MS SS/df的值

第五列:F 统计量数值,它是MS的比率

第六列:从F累积分布中得到的概率,当F增加时,p值减小。

posted @ 2020-02-22 01:45  wei客  阅读(2365)  评论(0编辑  收藏  举报