MATLAB中的chi2test——向量不同长度

MATLAB中的chi2test——向量不同长度,matlab,chi-squared,Matlab,Chi Squared,我有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个数据向量代表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)
我如何将其用于两组以上的数据以及长度不同的数据?是否有其他适合我的情况的方法在MATLAB中执行卡方检验


提前感谢

听起来你想测试不同群体的男性/女性比例是否不同。一种方法是使用logistic回归模型,以男性/女性作为反应变量,以群体成员作为分类预测因子。然后看看模型整体与常数模型的卡方检验

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