This function is written to do aligned rank transform using matlab

for a data with heavy tail, this function could be used for getting the aligned rank transformed data and implementing Analysis of variance and mixed effect models

This is an approach used when the data has non-normal distribution

function Raligned = Aligned_Rank_Transform(Arg) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % INPUT: Arg: Arg should be a n * 3 matrix % columns of Arg: % ------------------ 1- first categorical variable % ------------------ 2- 2nd categorical variable % ------------------ 3- dependent variable % This function is used to do aligned rank transform for a data with % heavy tail --> TO SEE FIXED EFFECT AND INTERACTION EFFECT % using Analysis of variance.. % This is an approach used when the data has non-normal distribution % Reference: % Wobbrock, J.O., Findlater, L., Gergle, D. and Higgins, J.J. (2011). % The Aligned Rank Transform for nonparametric factorial analyses using only ANOVA procedures. % Proceedings of the ACM Conference on Human Factors in Computing Systems (CHI '11). % Vancouver, British Columbia (May 7-12, 2011). New York: ACM Press, pp. 143-146. Honorable Mention Paper. % http://faculty.washington.edu/wobbrock/pubs/chi-11.06.pdf %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % by: AbuAli Amin % www.aminbros.com %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% r1 = Arg(:,1); r2 = Arg(:,2); R = Arg(:,3); q1 = unique(r1); q2 = unique(r2); if isnumeric(q1) q1 = cellstr(num2str(q1));r1 = cellstr(num2str(r1)); end if isnumeric(q2) q2 = cellstr(num2str(q2));r2 = cellstr(num2str(r2)); end Z = zeros(size(R)); Yaligned1 = zeros(size(R)); Yaligned2 = zeros(size(R)); Yaligned3 = zeros(size(R)); mu = nanmean(R); for i = 1:size(q1,1) ME1 = nanmean(R(strcmp(r1,q1{i}))) - mu; for j = 1:size(q2,1) Z(strcmp(r1,q1{i}) & strcmp(r2,q2{j})) = R(strcmp(r1,q1{i}) & strcmp(r2,q2{j})) - nanmean(R(strcmp(r1,q1{i}) & strcmp(r2,q2{j}))); ME2 = nanmean(R(strcmp(r2,q2{j}))) - mu; ME12 = nanmean(R(strcmp(r1,q1{i}) & strcmp(r2,q2{j}))) - mu; MEI = ME12 - ME1 - ME2 + mu; Yaligned1(strcmp(r1,q1{i}) & strcmp(r2,q2{j})) = Z(strcmp(r1,q1{i}) & strcmp(r2,q2{j})) + ME1; Yaligned2(strcmp(r1,q1{i}) & strcmp(r2,q2{j})) = Z(strcmp(r1,q1{i}) & strcmp(r2,q2{j})) + ME2; Yaligned3(strcmp(r1,q1{i}) & strcmp(r2,q2{j})) = Z(strcmp(r1,q1{i}) & strcmp(r2,q2{j})) + MEI; end end R1 = tiedrank(Yaligned1); R2 = tiedrank(Yaligned2); R3 = tiedrank(Yaligned3); Raligned = [R1,R2,R3];

Hey man,

I not quite sure of what each of the three columns in R represents. The same way, how should I use it to run the ANOVA test?

Best regards,

Fernando

Hello Fernando, R include 3 columns, each are aligned and rank transformed in the appropriate effect. It has 2 main effects and 1 interaction effect. so the first 2 columns are for the main effects and the last column is for interaction effect.

After using this function you can run ordinary Two way Analysis of variance three times.

1- using column 1 for only first main effect.

2- using column 2 for only 2nd main effect.

3- using 3rd column for only interaction effect.

Note: in each of these 3 ANOVA test, the F value for other effects should be approximately close to zero..

Regards

Dear AbuAli Amin,

Could you clarify if this algorithm can be used for repeated measures ANOVA.

In our case there are numerous subjects and 4 measures for each subject. Those four measures comprise the combinations of two factors, A and B, two levels each: A1B1, A1B2, A2B1, A2B2. We need the effect of each factor and interaction but not of subjects.

Thank you in advance!

Sincerely yours,

Volodymyr

Hello Volodymyr,

yes, aligned rank transform could be used for repeated measures ANOVA, just note that:

Repeated measure anova is done on wide data. while the aligned rank transform for ANOVA is done on long data. so in Repeated measure ANOVA specially the interaction effect is questionable.. For more info see this reference: https://pdfs.semanticscholar.org/4379/e15e4a16ea78347cbf41a1ee6858f8612d38.pdf

Regards