请教一下,进行分类变量的组间差异性检验时,若存在频数为0的行或者列,按公式无法执行卡方检验。我是否可以删去全为0的行或列,然后再执行检验?这与原本的检验有何不同?

我习惯使用SAS,它在考虑0频数的单元格时,遇到这种情况不会执行检验。R语言是怎么做的?

你可以尝试一下,然后发现R的卡方检验在这种情况下返回的结果其检验统计量是NaN。列联表的卡方检验是想检验行与列的两个变量是否独立,它是通过pij=pi,p,jp_{ij} = p_{i, \cdot} * p_{\cdot, j}这一独立性的性质来构建的检验,即在独立性的假设下,单元格内的发生概率应该等于对应的两个边际分布概率的乘积。

同时,卡方检验是是通过汇总“观察值相对于期望值的差异”来进行构建的,就是那个

(obsexp)2exp,\frac{(obs - exp)^2}{exp},

其中“期望值”exp就是通过边际分布的乘积得到,我们会用我们观察到数据的边际情况来做这个理论值的估计。而如果某一行/列完全为0,就意味着这里的exp会是0,因此会导致实际的检验统计量无法计算。

你可以考虑删去全为0的行或者列,那么这意味着你的原假设中不包含被删去的那些行或者列。你也可以考虑将小的那些类别进行合并,或者收集更多的数据。