📄 threewayanova.m
字号:
function threewayanova(Y,n,m,p);
ss=ssq(Y);
% compute grand mean
mm=mean(Y(:));
ssm=n*m*p*mm^2;
% compute residuals after subtraction of grand mean
Y=Y-mm;
% compute main effects
ma=mean(Y')';
Y=permnew(Y,n,m,p);
mb=mean(Y')';
Y=permnew(Y,m,p,n);
mc=mean(Y')';
Y=permnew(Y,p,n,m);
ssa=m*p*ssq(ma);
ssb=n*p*ssq(mb);
ssc=n*m*ssq(mc);
% compute residuals after subtraction of main effects
Y=Y-ma*ones(1,m*p);
Y=permnew(Y,n,m,p)-mb*ones(1,n*p);
Y=permnew(Y,m,p,n)-mc*ones(1,n*m);
Y=permnew(Y,p,n,m);
% compute second order interactions
mbc=mean(Y);
Y=permnew(Y,n,m,p);
mac=mean(Y);
Y=permnew(Y,m,p,n);
mab=mean(Y);
Y=permnew(Y,p,n,m);
ssab=p*ssq(mab);
ssac=m*ssq(mac);
ssbc=n*ssq(mbc);
% compute residuals after subtraction of second order interacions
Y=Y-ones(n,1)*mbc;
Y=permnew(Y,n,m,p);
Y=Y-ones(m,1)*mac;
Y=permnew(Y,m,p,n);
Y=Y-ones(p,1)*mab;
Y=permnew(Y,p,n,m);
ssabc=ssq(Y);
% fprintf(' SS_gm = %12.6f (%6.2f) \n',ssm,ssm/ss*100);
ss=ss-ssm;
fprintf(' Total ssq after subtraction of grand mean = %12.6f \n',ss);
disp(' ')
fprintf(' SS_a = %12.6f (%6.2f) \n',ssa,ssa/ss*100);
fprintf(' SS_b = %12.6f (%6.2f) \n',ssb,ssb/ss*100);
fprintf(' SS_c = %12.6f (%6.2f) \n',ssc,ssc/ss*100);
fprintf(' SS_ab = %12.6f (%6.2f) \n',ssab,ssab/ss*100);
fprintf(' SS_ac = %12.6f (%6.2f) \n',ssac,ssac/ss*100);
fprintf(' SS_bc = %12.6f (%6.2f) \n',ssbc,ssbc/ss*100);
fprintf(' SS_abc = %12.6f (%6.2f) \n',ssabc,ssabc/ss*100);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -