方差分析的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值减小。