两个向量具有不同长度时的卡方检验

机器算法验证 r 卡方检验 群体差异
2022-03-31 22:25:10

我想比较具有不同长度的两组(向量),看看它们的分布是否有很大差异。但是,当我使用 时chisq.test,由于长度不等而出现错误:

> chisq.test(factor(Group1), factor(Group2))

结果是:

Error in chisq.test(factor(Group1[, col]), factor(Group2[, col])) : 
'x' and 'y' must have the same length

有人可以帮我解决这个问题吗?谢谢。

1个回答

我认为(如评论中所述)假设检验并不能真正回答您说您感兴趣的问题。(如果对任何因素进行排序,它也缺乏力量)。

问题是,“差别不大”与效应大小(它们有多大不同?)有关,而不是假设检验(“我们的样本是否足够大,可以发现甚至不重要的差异?”)。

你说你有非常大的样本量。这将导致您拒绝非常相似的不同分布(因为您将有足够的能力来发现微小的差异)。这真的是你的意思吗?或者,在这种情况下,您更愿意说“实际上,它们的分布相当相似”?


该问题的直接答案是您使用table要测试的一对因素(例如组和种族),然后将其用作chisq.test例如的输入

# make up some data
set.seed(32892917)
mydata <- data.frame(group=as.factor(sample(1:5,199,replace=TRUE)),
                     race=as.factor(sample(1:3,199,replace=TRUE)))

# look at the table:
 (mytab <- with(mydata,table(group,race)) )
     race
group  1  2  3
    1 16 19 11
    2 14 15 13
    3  9 14 20
    4 12 13 11
    5 11 11 10

(您会注意到每个组的人数不同 - 例如,第 1 组有 46 人,第 5 组有 32 人)

 # do the chi-square 
 chisq.test(mytab)

    Pearson's Chi-squared test

data:  mytab
X-squared = 6.0928, df = 8, p-value = 0.6368