我有一个包含性别的单元格数组,例如
GENDER = {'Male';'Female';'Male';'Male';'Male';'Female';'Female';'Female';'Male';'Male'};
和包含各个组的另一个数组,例如
GROUPS = [1; 2; 1; 1; 3; 3; 1; 2; 2; 3];
我想知道这些群体在男性人数和女性人数方面是否存在显着差异。我想使用anova1 + multcompare函数,如帮助中提供的示例所示。
我该如何对待此案?
anova1(GENDER,GROUPS,'off')
Operands to the || and && operators must be convertible to logical scalar values.
Error in anova1 (line 46)
if (nargin>0 && strcmp(x,'kruskalwallis'))
非常感谢
答案 0 :(得分:0)
问题是您尚未定义ANOVA应该操作的数量。根据您的描述,对于该数量应该是什么有不同的可能解释。一种可能性:男性的绝对数量与女性的绝对数量之间的差异。为此,您可以用+1编码“男性”观察,用-1:
编码“女性”观察GENDER = [ 1; -1; 1; 1; 1; -1; -1; -1; 1; 1];
GROUPS变量可以按照您的指定保留,但由于条目实际上不被视为数值而是作为组标签,因此最好将其写为:
GROUPS = {'1'; '2'; '1'; '1'; '3'; '3'; '1'; '2'; '2'; '3'};
然后,您对anova1
的通话
anova1(GENDER, GROUPS, 'off')
并返回0.609的p值,即显然不重要。
您不需要multcompare
,因为您只检查单因素方差分析中的主效应,从而产生单个p值。
另一个问题是ANOVA,如函数帮助中所述,假定正态分布的数据。如上定义的GENDER变量显然不是正态分布的,而是伯努利分布的。我知道在某些领域中使用ANOVA分析这些类型的数据是常见的做法,但这在统计上并不正确。