在MATLAB中的chi2test - 矢量不同的长度

时间:2013-12-04 09:43:28

标签: matlab chi-squared

我有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中执行适合我的情况的卡方检验?

提前致谢

1 个答案:

答案 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