【发布时间】:2023-01-12 07:56:09
【问题描述】:
这个问题的一个版本已经被问过几次,但从来没有以最简单的方式问过。基本上,当两组之间的样本量不均匀时,stats::chisq.test 函数不起作用,尽管根据我的理解,卡方检验应该适用于不相等的样本量。
下面是一些测试数据:
df1 <- data.frame("x" = c("Yes","No","Yes","No","Yes","No","Yes","No","Yes","No","Yes","No","Yes","No","Yes","No"))
df2 <- data.frame("x" = c("Yes","Yes","Yes","Yes","Yes","Yes","Yes","Yes","No","Yes","No","Yes","Yes","Yes","No"))
我的目标是查看样本量不相等的两组之间的结果x(即结果是“是”还是“否”)是否存在差异。但是当我运行以下代码时:
chisq.test(table(df1$x,df2$x))
我收到以下错误:
Error in table(df1$x, df2$x) : all arguments must have the same length
除了通过将 NA 添加到较短的 df 来创建具有相同样本大小的新数据框之外,是否有一个简单的解决方法?如果卡方检验可以在被比较的组中样本量不相等的情况下运行,为什么这个错误甚至会存在?
【问题讨论】:
-
该错误来自
table(df1$x,df2$x),不一定来自chsq.test。当你有这样不均匀的数据时,你希望表格看起来像什么? -
也许你期待一张更像
table( stack(list(a=df1$x, b=df2$x)))的桌子?关键是在将它传递给chisq.test之前,您需要为您的假设正确构建表格。 -
对,就是这样。我发现我错误地调用了卡方函数。这段代码也适用于我实现我心中的目标。
标签: r statistics chi-squared sample-size