如何使用非排他性分类变量测试独立性?

机器算法验证 分类数据 非独立的 预测器
2022-03-12 08:27:11

介绍

我有一个包含许多行和二进制结果的分类列联表,我计算:

name  outcome1  outcome2
----  --------  --------
A     14        5       
B     17        2       
C     6         5       
D     11        8       
E     18        14

这一切都很好,因为这两个类别(名称和结果)彼此独立,人 A 不能同时是人 B,并且结果 1 不会与结果 2 同时发生。

添加问题

但是,我现在想通过为代理分配类来丰富我的数据集。这些类不是排他性的,有些甚至可能相互依赖。对于上面的示例,有四个类 C x

name  C1   C2   C3   C4 
----  ---  ---  ---  ---
A     0    0    1    1  
B     1    0    1    0  
C     1    1    0    1  
D     1    1    0    0  
E     1    1    1    0

我现在想知道一个类是否依赖于实验的结果。

可能的(天真的)解决方案

我的想法最初是基于类进行聚合,然后执行独立性测试,这样表格看起来像这样:

class   outcome1  outcome2
------  --------  --------
C3      49        21
not_C3  17        13

但是,后来我突然想到,我用这种方法掩盖了其他类的影响,因为我是基于类进行隔离的,如果某些类相互依赖,这可能会给我带来不好的结果。

此外,我的真实数据集包含大约 200 个代理和 30 个类别,所以我的方法会给出很多我现在知道如何解释的结果。

问题

考虑到这一点,我转向您:哪种统计方法适用于测试(不)依赖于具有一个分类非排他变量和一个二元分类变量的数据集?

我想得到一些结果,“第 1 类是结果的最强预测因子(p < 0.01)。它也与第 2 类相关。”

使用 Python 或 R 的解决方案非常受欢迎,但我不需要代码。我需要知道哪种方法适用。

1个回答

我建议分别对结果 1 和结果 2(响应变量)进行泊松回归,将 class1、class2、class3 或 class4 作为解释变量。

你说类不是排他的,但是如果考虑到类之间的交互,这不是问题。您可以在以下帖子中阅读有关交互的更多信息:使用 glm() 对交互术语的规范和解释

如何处理类之间的依赖关系(就进行泊松回归而言),我看不到任何出路。您可以使用卡方检验测量关联的显着性,以及使用Cramer's V的关联强度。如果这回答了你的问题,我不知道。