0

我有 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;

我想知道这三组之间的性别是否存在显着差异。为此,我读到可以使用

[tbl,chi2stat,pval] = crosstab(x1,x2)

如何将其与超过 2 组数据和具有不同长度的数据一起使用?有没有其他方法可以在 MATLAB 中执行适合我的情况的卡方检验?

提前致谢

4

1 回答 1

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
于 2013-12-05T17:25:55.773 回答