你可以尝试一下,然后发现R的卡方检验在这种情况下返回的结果其检验统计量是NaN。列联表的卡方检验是想检验行与列的两个变量是否独立,它是通过\(p_{ij} = p_{i, \cdot} * p_{\cdot, j}\)
这一独立性的性质来构建的检验,即在独立性的假设下,单元格内的发生概率应该等于对应的两个边际分布概率的乘积。
同时,卡方检验是是通过汇总“观察值相对于期望值的差异”来进行构建的,就是那个
$$\frac{(obs - exp)^2}{exp}, $$
其中“期望值”exp就是通过边际分布的乘积得到,我们会用我们观察到数据的边际情况来做这个理论值的估计。而如果某一行/列完全为0,就意味着这里的exp会是0,因此会导致实际的检验统计量无法计算。
你可以考虑删去全为0的行或者列,那么这意味着你的原假设中不包含被删去的那些行或者列。你也可以考虑将小的那些类别进行合并,或者收集更多的数据。