一、单因子方差模型内容
二、matlab实现
function [ST,SA,Se,F_rate,W,p,result]=var_ana(Y,alpha)
% 此代码适用于单因子方差分析模型,仅供学习使用.
% 输入端Y为需进行方差分析的矩阵,每行为一个因子水平下的数据,alpha为显著水平;
% 输出端ST为总偏差平方和,SA为组间偏差平方和,Se为组内偏差平方和,
% F_rate为F比,W为拒绝域左端点,p为假设检验的p值,result为是否有显著差异.
r=length(Y(:,1));m=length(Y(1,:));n=r*m;
f1=r-1;f2=n-r;
W=finv(1-alpha,f1,f2);
T=sum(Y(:));
ST=sum(Y(:).^2)-(T^2)/n;
SA=sum(sum(Y').^2)/m-(T^2)/n;
Se=ST-SA;
F_rate=(SA/f1)/(Se/f2);
if F_rate >= W
result = '有显著差异';
else
result = '无显著差异';
end
p=1-fcdf(F_rate,f1,f2);
end
三、例题
Y=[7.3,8.3,7.6,8.4,8.3;5.4,7.4,7.1,6.8,5.3;7.9,9.5,10.0,9.8,8.4];
alpha=0.05;
[ST,SA,Se,F_rate,W,p,result]=var_ana(Y,alpha)
运行结果为
对比答案: