分类变量之间的共线性

机器算法验证 r 方差分析 分类数据 多重共线性 平方和
2022-03-29 06:27:57

关于连续预测变量的共线性有很多,但我在分类预测变量上找不到那么多。我有这种类型的数据,如下所示。

第一个因素是遗传变量(等位基因计数),第二个因素是疾病类别。显然,基因先于疾病,并且是显示导致诊断的症状的一个因素。然而,使用类型 II 或 III 平方和的常规分析,如在 SPSS 中通常使用的那样,会错过效果。当输入适当的顺序时,I 类平方和分析会选择它,因为它依赖于顺序。此外,疾病过程中可能存在与 II 型或 III 型未很好鉴定的基因无关的额外成分,参见下面的 anova (lm1)与 lm2 或 Anova。

示例数据:

set.seed(69)
iv1 <- sample(c(0,1,2), 150, replace=T)
iv2 <- round(iv1 + rnorm(150, 0, 1), 0)
iv2 <- ifelse(iv2<0, 0, iv2)
iv2 <- ifelse(iv2>2, 2, iv2)
dv  <- iv2 + rnorm(150, 0, 2)
iv2 <- factor(iv2, labels=c("a", "b", "c"))
df1 <- data.frame(dv, iv1, iv2)

library(car)
chisq.test(table(iv1, iv2))          # quick gene & disease relations
lm1 <- lm(dv~iv1*iv2, df1);    lm2 <- lm(dv~iv2*iv1, df1)
anova(lm1);                    anova(lm2)
Anova(lm1, type="II");         Anova(lm2, type="II")
  1. 对我来说,具有 I 型 SS 的lm1似乎是在给定背景理论的情况下分析数据的合适方法。我的假设正确吗?
  2. 我习惯于显式操作正交设计,这些问题通常不会出现。在以 SPSS 为中心的领域的背景下,是否难以说服审阅者这是最好的过程(假设第 1 点是正确的)?
  3. 在统计部分报告什么?任何额外的分析,或应该进入的评论?
2个回答

因素之间的共线性是相当复杂的。经典示例是对三个连续变量“年龄”、“时期”和“年份”进行分组和虚拟编码时得到的示例。分析在:

在删除四个(不是三个)参考后,您获得的系数仅被识别为未知的线性趋势。这可以进行分析,因为共线性源于源变量中的已知共线性(年龄+年=期间)。

还对两个因素之间的虚假共线性进行了一些工作。已在以下方面进行了分析:

结果是分类变量之间的共线性意味着数据集必须拆分为不连贯的部分,每个组件都有一个参考水平。不同分量的估计系数不能直接比较。

对于三个或更多因素之间更复杂的共线性,情况就复杂了。确实存在寻找可估计函数的程序,即可解释的系数的线性组合,例如:

  • Godolphin 和 Godolphin 在 Utilitas Mathematica (60) pp 51-65 中的“行列设计的连通性”

但据我所知,不存在以直观方式处理此类共线性的通用灵丹妙药。

在与周围的一些统计人员聊天之后。看来这种问题可能不是最正确的问题。当它们高度相关时,使用 ANOVA(或类似方法)研究神经心理学测量的遗传和诊断相互作用是一个难题。相反,我被指出用结构方程建模来检查数据的结构。

随着我对 SEM 的了解更多,这个答案会得到更新。