Running anovan on a Large (21504Rx90C) matrix

2 views (last 30 days)
John Smith
John Smith on 6 Nov 2020
Commented: John Smith on 10 Nov 2020
I am currently attempting to run a full anovan model on a 21504Rx90C matrix, which results in an out-of-memory error. I am doing this in order to extract the sum of squares contribution of each factor used in the anova model.
The anova model itself has 7 factors with 3,4,4,4,7,4,4 levels respectively. I was wondering if there was perhaps a way of breaking down the code to avoid running into this error and staying within the memory constraints?
Dummy code below:
Data = randn(21504,90)
SumSq = zeros(190,size(Data,2));
for iii = 1:size(Data,2)
[~,tbl,~,~] = anovan(Data(:,iii),{var1 var2 var3 var4 var5 var6 var7},...
'model','full',...
'varnames',{'var1','var2','var3','var4','var5','var6','var7'});
SumSq(1:end,iii) = cell2mat(tbl(2:end,2));
iii
end
  4 Comments
Jeff Miller
Jeff Miller on 9 Nov 2020
Edited: Jeff Miller on 9 Nov 2020
See chapter 9 of this book
Watch out for numerical problems, though.
John Smith
John Smith on 10 Nov 2020
Thank you. I will try and implement this method and see if I have any luck.

Sign in to comment.

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!