Repeated-measures ANOVA with no between-factor
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi all!
I am trying to perform a two-way repeated measures ANOVA by using the function fitrm and ranova. I have two within-factors (e.g. Condition & Side) and no between-subject factors. I tried the code below, based on the different topics on the mathworks help page. Cause I have no between-subjects factor I thought i should use ~1 as constant. However, I keep getting the following error:
Error using RepeatedMeasuresModel.fit (line 1347)
The between-subjects design must have full column rank.
Error in fitrm (line 77)
s = RepeatedMeasuresModel.fit(ds,model,varargin{:});
Error in Statistics_JvdH_versie5 (line 7778)
rm_APMoS_MSZP = fitrm(t_APMoS_MSZP,'CWSaff-CWS2laff~1','WithinDesign',Condition)
Does anyone know how to solve this problem? Or know another way to perform this analysis in matlab.
See code below:
t_APMoS_MSZP = table(MoS_AP_side1_CWS_MSZP,MoS_AP_side2_CWS_MSZP,MoS_AP_side1_FWS_MSZP,...
MoS_AP_side2_FWS_MSZP,MoS_AP_side1_CWS2_MSZP,MoS_AP_side2_CWS2_MSZP...
,'VariableNames',{'CWSside1','CWSside2','FWSside1','FWSside2','CWS2side1','CWS2side2'});
Condition = table([1 1 2 2 3 3]',[1 2 1 2 1 2]','VariableNames',{'Condition' 'Side'});
rm_APMoS_MSZP = fitrm(t_APMoS_MSZP,'CWSside1-CWS2side2~1','WithinDesign',Condition)
[b1_APMoS,A_APMoS,C_APMoS,D_APMoS] = ranova(rm_APMoS_MSZP,'WithinModel','Condition*Side');
0 commentaires
Réponses (1)
Scott MacKenzie
le 2 Août 2021
Modifié(e) : Scott MacKenzie
le 2 Août 2021
You don't need a between-subjects factor to use ranova. Your design has two within-subjects factors, and that's just fine.
I see two minor issues in your code. First, you've used "Condition" both as the name of the within-subjects design and as the name of one of the variables in the design. Probably not a good idea. Below, I changed the name of the design to withinDesign. Second, you need to define the Condition and Side variables as categorical. I added two lines to do this, and got a clean run of your code with some random test data. See below.
% test data
MoS_AP_side1_CWS_MSZP = rand(20,1);
MoS_AP_side2_CWS_MSZP = rand(20,1);
MoS_AP_side1_FWS_MSZP = rand(20,1);
MoS_AP_side2_FWS_MSZP = rand(20,1);
MoS_AP_side1_CWS2_MSZP = rand(20,1);
MoS_AP_side2_CWS2_MSZP = rand(20,1);
t_APMoS_MSZP = table(MoS_AP_side1_CWS_MSZP,MoS_AP_side2_CWS_MSZP,MoS_AP_side1_FWS_MSZP,...
MoS_AP_side2_FWS_MSZP,MoS_AP_side1_CWS2_MSZP,MoS_AP_side2_CWS2_MSZP...
,'VariableNames',{'CWSside1','CWSside2','FWSside1','FWSside2','CWS2side1','CWS2side2'});
withinDesign = table([1 1 2 2 3 3]',[1 2 1 2 1 2]','VariableNames',{'Condition' 'Side'});
withinDesign.Condition = categorical(withinDesign.Condition);
withinDesign.Side = categorical(withinDesign.Side);
rm_APMoS_MSZP = fitrm(t_APMoS_MSZP,'CWSside1-CWS2side2 ~ 1','WithinDesign',withinDesign);
[b1_APMoS,A_APMoS,C_APMoS,D_APMoS] = ranova(rm_APMoS_MSZP,'WithinModel','Condition*Side');
2 commentaires
Voir également
Catégories
En savoir plus sur Repeated Measures and MANOVA dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!