您如何处理回归模型中的“嵌套”变量?

机器算法验证 回归 广义线性模型 咕噜咕噜 嵌套数据 常问问题
2022-01-22 20:25:59

考虑一个统计问题,其中您有一个response变量,您想以一个explanatory变量和一个nested变量为条件来描述,其中嵌套变量仅作为解释变量的特定值的有意义变量出现在解释变量不允许有意义的嵌套变量的情况下,后者通常NA在数据集中进行编码,或者如果使用值进行编码,则该值只是一个没有任何有意义解释的占位符。

当你有一个解释变量表明一个事物的存在,以及一个或多个描述该事物特征的嵌套变量时,就会出现这种情况。统计问题中这种情况的一些例子如下:

  • 解释变量是调查参与者是否是的指标,married嵌套变量是一些characteristic of the spouse(如教育、年龄等);

  • 解释变量是presence of an item空间中的一个指标,嵌套变量是一些characteristic of the item(如大小、距离等)的度量;

  • 解释变量是an发生的指标,event嵌套变量是对一些characteristic of the event(例如,持续时间、幅度等)的描述。

在这种情况下,我们通常希望建立一个回归类型的模型(广义上包括 GLM、GLMM 等)来描述响应变量与其他变量之间的关系。在这种类型的模型中如何处理嵌套变量并不明显。

问题:我们如何处理nested这种模型中的变量?


注意:此问题旨在对CV.SE上关于回归中的嵌套变量的反复出现的问题给出一般性答案(参见例如,herehereherehere)。这个问题旨在给出这个问题的一个通用的独立于上下文的例子。

1个回答

嵌套变量的无意义值不得影响您的模型:此类数据分析 的关键要求是,如果原始变量不承认它是有意义的变量,则该nested变量不得影响模型。explanatory换句话说,模型必须是忽略嵌套变量的无意义值的形式。这是具有嵌套变量的有效模型的关键要求,因为它确保模型输出不受任意编码选择的影响。


使用嵌套变量建模:此要求是通过创建一个指示变量来实现的,该变量确定您的嵌套变量何时有意义,并将nested变量放入模型中仅作为与该指标的交互,而不将其作为主要影响。请注意,这是一般规则的一个例外,即不应将术语作为没有主效应术语的交互包含在内。

考虑一般情况下,变量仅在变量位于某些值集中nested时才有意义在这种情况下,您将使用这样的模型形式:explanatoryA

response ~ 1 + explanatory + (explanatory %in% A) + (explanatory %in% A):nested + ...

这假设解释变量是连续的;如果它已经是一个因子变量,则该(explanatory %in% A)术语将是多余的并且可以删除。explanatory在您的变量是指示变量(值为 1 产生有意义的嵌套变量)的常见情况下,此模型形式简化为:

response ~ 1 + explanatory + explanatory:nested + ...

请注意,在这些模型陈述中变量没有主效应项。nested这是设计使然 --- 嵌套变量不应具有主效应项,因为在解释变量没有条件的情况下,它不是有意义的变量。使用这种类型的模型形式,您将获得解释变量效应的估计值和嵌套变量效应的另一个估计值。


在数据中编码嵌套变量:在处理列出回归变量的数据框时,最好对nested变量的值进行编码,NA因为它没有有意义地来自解释变量。这告诉读者这里没有有意义的变量。一些分析师用其他值(例如零)对这些变量进行编码,但这通常是不好的做法,因为它可能被误认为是有意义的数量。

在数学上,如果你将任何实数乘以零,你就会得到零。但是,如果您正在编码,则R必须在这里小心,因为程序乘以0:NA给出NA而不是0. 这意味着您可能需要将这些NA值重新编码为零以进行模型拟合,或者为模型构建设计矩阵,以便将这些值设置为零。


基础变量是嵌套变量的函数的情况:在涉及嵌套变量的回归分析中偶尔会出现一种情况,即嵌套变量具有足够的详细信息,可以完全确定它产生的初始解释变量 - -- 即原始解释变量是嵌套变量的函数。这方面的一个例子出现在这个问题中,分析师有一个指示变量DrugA表示是否服用了药物,还有一个嵌套变量DrugA_Conc表示药物的浓度。在此示例中,后一个变量允许浓度值为零,这相当于未服用药物,因此DrugA相当于DrugA_Conc != 0

在这些类型的情况下,解释变量和嵌套变量之间的交互项在功能上等同于嵌套变量,因此可以(并且通常需要)从模型中完全删除初始解释变量,并简单地使用嵌套变量本身。在这种情况下这是合法的,因为嵌套变量中的值决定了初始解释变量的值。我们在上面已经注意到,NA当嵌套变量的条件不适用时,编码嵌套变量通常是合适的。如果条件来自作为指示符的解释变量,并且指示符对应于嵌套变量的使用,则事件nested != NA等价于explanatory. 在这种情况下,可以重新编码嵌套变量,以便模型中根本不需要初始解释变量。

请注意,在查看这种情况时必须小心。即使在您使用作为指示变量的初始解释变量的情况下,不合并解释变量和嵌套变量也可能有助于解释目的。此外,在解释变量不是指示变量的情况下,它通常会包含嵌套变量中不包含的信息,因此无法删除。


您应该考虑分层或线性混合模型:上述方法可确保您的嵌套变量在它们无意义的情况下不会对回归做出贡献。然而,在标准回归模型中使用 OLS 估计仍然假设模型中的“误差项”是不相关的。在您有嵌套变量的情况下,这可能会产生相关错误,这些错误最好由分层模型或线性混合模型表示。因此,当您在回归中有嵌套变量时,您应该考虑同一嵌套“组”中数据点的结果是否具有相关的结果(以其他回归量为条件)。

目前的答案不会详细介绍分层模型和线性混合模型。它们都是具有大量统计文献的广泛模型类。 Gelman 和 Hill (2007)很好地概述了该主题,从标准线性回归开始,然后进入多级层次建模。它还提供了在R.