123456789101112131415161718192021222324252627282930313233343536373839404142 |
- function [D,Pa]=rmanova(M)
- %[D,Pa]=rmanova(M)
- % Input
- % M each row is a subject and each column is a condition
- % Output
- % D is a matrix where the rows are Conditions, Subjects, Interaction, Total
- % cols are Sum^2, DF, MSE, F
- % Pa is the p value for the conditions subjects effect.
- n=size(M,1);
- a=size(M,2);
- rowMu=mean(M,1);
- SSa = n*sum((rowMu-mean(rowMu)).^2);
- colMu=mean(M,2);
- tt1=(colMu-mean(rowMu)).^2;
- SSs = a*sum(tt1(:));
- SSt=sum(sum((M-mean(rowMu)).^2));
- SSas=SSt-SSa-SSs;
- DFa=a-1;
- DFs=n-1;
- DFas=DFa*DFs;
- DFt=a*n;
- MSa=SSa/DFa;
- MSs=SSs/DFs;
- MSas=SSas/DFas;
- Fa=double(MSa)/MSas;
- Pa = 1-fcdf(Fa, DFa, DFas);
- D=[SSa DFa MSa Fa; SSs DFs MSs nan; SSas DFas MSas nan; SSt DFt nan nan];
- fprintf('F(%d,%d)=%.2f, p=%.2f\n', DFa, DFas, Fa, Pa);
|