我有3个数据向量代表3组A,B,C的性别(0 =男性,1 =女性)。
例如
A = [0 0 0 0 1 1 1 1 0 0];
B = [1 1 1 1 1 1 1 0];
C = [1 0 0 1 0 1 1 0 1 1 1 1 1];
和男性和女性的相对数量
n_maleA =6;
n_femaleA =4;
n_maleB = 1;
n_femaleB = 7;
n_maleC = 4;
n_femaleC = 9;
我想知道3组之间在性别上是否存在显着差异。要做到这一点,我读到可以使用
[tbl,chi2stat,pval] = crosstab(x1,x2)
如何使用超过2组数据和长度不同的数据?有没有其他方法可以在MATLAB中执行适合我的情况的卡方检验?
提前致谢
答案 0 :(得分:1)
听起来你想测试不同群体中男性/女性的比例是否不同。一种方法是使用逻辑回归模型,其中男性/女性作为响应变量,组成员作为分类预测因子。然后看一下整个模型与常数模型的卡方检验。
>> mf = [A';B';C'];
>> group = [ones(length(A),1);2*ones(length(B),1);3*ones(length(C),1)];
>> group = nominal(group);
>> fitglm(group,mf,'distribution','binomial')
ans =
Generalized Linear regression model:
logit(y) ~ 1 + x1
Distribution = Binomial
Estimated Coefficients:
Estimate SE tStat pValue
________ _______ ________ ________
(Intercept) -0.40547 0.6455 -0.62814 0.52991
x1_2 2.3514 1.2488 1.8829 0.059715
x1_3 1.2164 0.88192 1.3793 0.16781
31 observations, 28 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 4.79, p-value = 0.0913