一个“控制其他变量”到底如何?


140

这是引起这个问题的文章:不耐烦会使我们发胖吗?

我喜欢这篇文章,它很好地展示了“控制其他变量”(IQ,职业,收入,年龄等)的概念,以便最好地隔离所讨论的两个变量之间的真实关系。

您可以向我解释一下如何实际控制典型数据集上的变量吗?

例如,如果您有2个人的耐心程度和BMI相同,但收入不同,您将如何处理这些数据?您是否将他们分为收入,耐心和BMI相似的不同子组?但是,最终有数十个变量需要控制(IQ,职业,收入,年龄等),然后如何汇总这些(潜在地)100个子组?实际上,现在我已经说了出来,我有一种感觉是这种方法使错误的树陷入困境。

感谢您为我几年来一直想深入了解的事情提供任何信息...!


3
Epi&Bernd,非常感谢您尝试回答此问题。不幸的是,这些答案与我的问题相比有很大的飞跃,已经超出了我的范围。也许是b / c,我没有R的经验,只是一个基本的Statistics 101基础。就像对您的教学的反馈一样,一旦您从BMI,年龄,急躁等抽象为“协变量”等,您就完全迷失了我。自动生成伪数据也无助于澄清概念。实际上,这使情况变得更糟。很难学习没有内在含义的虚拟数据,除非您已经知道要解释的原理(即:老师知道我
JackOfAll 2011年

7
感谢您提出这个至关重要的问题,@JackOfAll-如果没有这些问题,该网站将是不完整的-我已经“收藏”了这个。此处的答案对我以及基于投票数的其他很多人都非常有帮助。如果在认真考虑之后,发现答案对自己(或对任何问题的答案)有所帮助,我鼓励您使用投票,并接受确定的答案。可以通过分别单击答案和对勾旁边的向上一点的钟形曲线来完成。
2012年

4
这不是一个完整的答案,也不是任何东西,但我认为值得读克里斯·阿亨(Chris Achen)的“让垃圾桶可以回归,垃圾桶可以归于何处”。(PDF链接:http//qssi.psu.edu/files/Achen_GarbageCan.pdf)这同样适用于贝叶斯方法和惯常方法。仅将术语放入设置中不足以“控制”效果,但是可悲的是,这在许多文献中都可以用来控制效果。
2012年

9
您问“ 计算机软件如何在 数学上同时控制所有变量 ”。您还说“我需要一个不包含公式的答案”。我不知道如何同时实现这两个目标。至少没有冒着直觉缺陷的严重风险。
Glen_b 2014年

2
我很惊讶这个问题没有得到更多的关注。我同意OP的评论,即网站上的其他问题并未完全涵盖此处提出的特定问题。@Jen,对您(第二个)问题的简短回答是,多个协变量确实同时被部分化,而不是您所描述的那样迭代。现在,我将考虑对这些问题的更详细,更直观的答案。
Jake Westfall 2014年

Answers:


124

有很多方法可以控制变量。

您想到的最简单也是最简单的方法是对数据进行分层,以使您拥有具有相似特征的子组-然后便有将这些结果汇总在一起以获得单个“答案”的方法。如果您要控制的变量数量很少,这将起作用,但是正如您已经正确发现的那样,当您将数据分成越来越小的块时,这种情况很快就消失了。

一种更常见的方法是在回归模型中包含要控制的变量。例如,如果您有一个回归模型,可以在概念上描述为:

BMI = Impatience + Race + Gender + Socioeconomic Status + IQ

对不耐烦的估计将是不耐烦在其他协变量水平内的影响-回归允许您在没有大量数据的地方(分层方法的问题)从本质上平滑(尽管应该这样做)慎用。

还有其他更复杂的控制其他变量的方法,但是当有人说“控制其他变量”时,这很奇怪,这意味着它们已包含在回归模型中。

好了,您已经要求您提供一个示例,以进行了解。我将逐步指导您。您只需要安装R的副本即可。

首先,我们需要一些数据。将以下代码块剪切并粘贴到R中。请记住,这是我当场制作的一个虚构示例,但它显示了该过程。

covariate <- sample(0:1, 100, replace=TRUE)
exposure  <- runif(100,0,1)+(0.3*covariate)
outcome   <- 2.0+(0.5*exposure)+(0.25*covariate)

那就是你的数据。请注意,我们已经知道结果,暴露和协变量之间的关系-这是许多模拟研究的重点(这是一个非常基本的示例。您从已知的结构开始,并确保您的方法可以得到正确的答案。

现在,进入回归模型。输入以下内容:

lm(outcome~exposure)

您是否获得了拦截= 2.0和曝光= 0.6766?考虑到数据中会有一些随机变化,还是接近它呢?好-这个答案是错误的。我们知道这是错误的。为什么错了?我们未能控制影响结果和暴露的变量。这是一个二进制变量,您可以随意设置-性别,吸烟者/不吸烟者等。

现在运行此模型:

lm(outcome~exposure+covariate)

这次,您应该获得截距= 2.00,曝光= 0.50和0.25的协变量的系数。众所周知,这是正确的答案。您已经控制了其他变量。

现在,当我们不知道是否已经处理了所有需要的变量(我们从未真正做到)时,会发生什么?这被称为残差混杂,它是大多数观察研究中关注的一个问题,即我们控制不完善,而我们的答案虽然接近正确,但并不准确。有帮助吗?


谢谢。任何人都可以在网上或通过教科书知道一个简单的基于回归示例的示例吗?
JackOfAll 2011年

@JackOfAll可能有数百个这样的示例-您对问题的哪个领域/类型感兴趣,可以使用哪些软件包?
Fomite 2011年

好吧,任何学术/人为的例子对我来说都很好。我有Excel,可以做多变量回归,对吗?还是我需要像R这样的东西?
JackOfAll 2011年

10
+1为了回答这个问题而没有我会使用的否定性。:)通常来说,控制其他变量意味着作者将它们投入了回归。如果他们没有验证变量是否相对独立并且整个模型结构(通常是某种GLM)是有充分根据的,这并不意味着他们认为这意味着什么。简而言之,我的观点是,每当有人使用此短语时,这意味着他们对统计数据了解甚少,因此应该使用您提供的分层方法重新计算结果。
Iterator

7
@SibbsGambling您将注意到原始提问者要求一个简单的示例。
2015年

56
  1. 介绍

    我喜欢@EpiGrad的答案(+1),但让我采取不同的观点。在下文中,我指的是此PDF文档:“多元回归分析:估计”,其中包含“多元回归的'部分退出'解释”一节(第83f页)。不幸的是,我不知道谁是本章的作者,我将其称为REGCHAPTER。类似的解释可以在Kohler / Kreuter(2009)“使用Stata进行数据分析”,第8.2.3章“'受控'是什么意思”中找到。

    我将使用@EpiGrad的示例来说明这种方法。R代码和结果可在附录中找到。

    还应该注意的是,“控制其他变量”仅在解释变量适度相关(共线性)时才有意义。在上述示例中,exposure和之间的乘积矩相关性covariate为0.50,即

    > cor(covariate, exposure)
    [1] 0.5036915
  2. 残差

    我假设您对回归分析中残差的概念有基本的了解。这是维基百科的解释:“如果对某些数据进行回归,则因变量观测值与拟合函数的偏差就是残差”。

  3. “控制之下”是什么意思?

    控制装置,用于可变covariate,效果(回归重量)的exposureoutcome可以被描述为如下(我草率和跳过最索引和所有帽子,请参考上面提及的文本一个精确的描述):

    β1=residi1yiresidi12

    residi1是当我们exposure在上回归时的残差covariate,即

    exposure=const.+βcovariatecovariate+resid

    的“残差[..]是部分是不相关的。[...]因此,测量之间的样品关系和后一直部分退出”(第84章)。“部分退出”是指“受控于”。xi1xi2β^1yx1x2

    我将使用@EpiGrad的示例数据来演示此想法。首先,我将回归exposurecovariate。由于我只对残差感兴趣,因此lmEC.resid省略了输出。

    summary(lmEC <- lm(exposure ~ covariate))
    lmEC.resid   <- residuals(lmEC)

    下一步是outcome对这些残差(lmEC.resid)进行回归:

    [output omitted]
    
    Coefficients:
                Estimate Std. Error t value Pr(>|t|)    
    (Intercept)  2.45074    0.02058 119.095  < 2e-16 ***
    lmEC.resid   0.50000    0.07612   6.569 2.45e-09 ***
    ---
    Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1 
    
    [output omitted]

    如您所见,在此简单回归中,的回归权重lmEC.resid(请参见估计,)等于的多重回归权重,也为(请参见@EpiGrad的答案或R输出)下面)。βlmEC.resid=0.50covariate0.50

附录

R代码

set.seed(1)
covariate <- sample(0:1, 100, replace=TRUE)
exposure <- runif(100,0,1)+(0.3*covariate)
outcome <- 2.0+(0.5*exposure)+(0.25*covariate)

## Simple regression analysis
summary(lm(outcome ~ exposure))

## Multiple regression analysis
summary(lm(outcome ~ exposure + covariate))

## Correlation between covariate and exposure
cor(covariate, exposure)

## "Partialling-out" approach
## Regress exposure on covariate
summary(lmEC <- lm(exposure ~ covariate))
## Save residuals
lmEC.resid <- residuals(lmEC)
## Regress outcome on residuals
summary(lm(outcome ~ lmEC.resid))

## Check formula
sum(lmEC.resid*outcome)/(sum(lmEC.resid^2))

R输出

> set.seed(1)
> covariate <- sample(0:1, 100, replace=TRUE)
> exposure <- runif(100,0,1)+(0.3*covariate)
> outcome <- 2.0+(0.5*exposure)+(0.25*covariate)
> 
> ## Simple regression analysis
> summary(lm(outcome ~ exposure))

Call:
lm(formula = outcome ~ exposure)

Residuals:
      Min        1Q    Median        3Q       Max 
-0.183265 -0.090531  0.001628  0.085434  0.187535 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  1.98702    0.02549   77.96   <2e-16 ***
exposure     0.70103    0.03483   20.13   <2e-16 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.109 on 98 degrees of freedom
Multiple R-squared: 0.8052,     Adjusted R-squared: 0.8032 
F-statistic: 405.1 on 1 and 98 DF,  p-value: < 2.2e-16 

> 
> ## Multiple regression analysis
> summary(lm(outcome ~ exposure + covariate))

Call:
lm(formula = outcome ~ exposure + covariate)

Residuals:
       Min         1Q     Median         3Q        Max 
-7.765e-16 -7.450e-18  4.630e-18  1.553e-17  4.895e-16 

Coefficients:
             Estimate Std. Error   t value Pr(>|t|)    
(Intercept) 2.000e+00  2.221e-17 9.006e+16   <2e-16 ***
exposure    5.000e-01  3.508e-17 1.425e+16   <2e-16 ***
covariate   2.500e-01  2.198e-17 1.138e+16   <2e-16 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 9.485e-17 on 97 degrees of freedom
Multiple R-squared:     1,      Adjusted R-squared:     1 
F-statistic: 3.322e+32 on 2 and 97 DF,  p-value: < 2.2e-16 

> 
> ## Correlation between covariate and exposure
> cor(covariate, exposure)
[1] 0.5036915
> 
> ## "Partialling-out" approach
> ## Regress exposure on covariate
> summary(lmEC <- lm(exposure ~ covariate))

Call:
lm(formula = exposure ~ covariate)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.49695 -0.24113  0.00857  0.21629  0.46715 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.51003    0.03787  13.468  < 2e-16 ***
covariate    0.31550    0.05466   5.772  9.2e-08 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.2731 on 98 degrees of freedom
Multiple R-squared: 0.2537,     Adjusted R-squared: 0.2461 
F-statistic: 33.32 on 1 and 98 DF,  p-value: 9.198e-08 

> ## Save residuals
> lmEC.resid <- residuals(lmEC)
> ## Regress outcome on residuals
> summary(lm(outcome ~ lmEC.resid))

Call:
lm(formula = outcome ~ lmEC.resid)

Residuals:
    Min      1Q  Median      3Q     Max 
-0.1957 -0.1957 -0.1957  0.2120  0.2120 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  2.45074    0.02058 119.095  < 2e-16 ***
lmEC.resid   0.50000    0.07612   6.569 2.45e-09 ***
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1 

Residual standard error: 0.2058 on 98 degrees of freedom
Multiple R-squared: 0.3057,     Adjusted R-squared: 0.2986 
F-statistic: 43.15 on 1 and 98 DF,  p-value: 2.45e-09 

> 
> ## Check formula
> sum(lmEC.resid*outcome)/(sum(lmEC.resid^2))
[1] 0.5
> 

5
该章看起来像婴儿·伍尔德里奇(Baby Wooldridge)(又名计量经济学:杰弗里·伍尔德里奇的现代方法)
Dimitriy V. Masterov 2012年

2
我可能误会了一些东西,但是为什么不还需要对协变量进行回归,然后最终对暴露残差进行回归呢?
hlinee

@hlinee是正确的。您能解释为什么不这样做吗?
Parseltongue

41

当然会涉及一些数学运算,但是数量不多:Euclid会很好地理解它。您真正需要知道的是如何添加重新缩放向量。尽管如今被称为“线性代数”,但您只需要在两个维度上对其进行可视化。 这使我们能够避免线性代数的矩阵机制,而专注于概念。


几何故事

在第一张图中,是 与。(按数值因子缩放的向量;希腊字母(alpha),(beta)和(gamma)将指代这种数值比例因子。)yy1αx1x1ααβγ

图1

该图实际上是从原始向量和开始的(显示为实线)。 通过获取在图形平面中最接近的倍数,可以找到的最小二乘“匹配” 这就是发现方式。采取这一匹配远离左中,残留的相对于。(点“ ”将始终指示哪些向量已“匹配”,“取出”或“受控于”。)x1yyx1x1yαyy1yx1

我们可以将其他向量匹配到。这里是一个图片被匹配到,表达它作为多的加上其剩余:x1x2x1βx1x21

图2

(无关紧要的是,包含和的平面可以不同于包含和的平面:这两个图形是彼此独立获得的。保证它们共同具有的是向量。)类似地,任何数字向量可以与匹配。x1x2x1yx1x3,x4,x1

现在考虑包含两个残差和的平面。我将图片定向为水平,就像我将先前图片定向为水平,因为这次将扮演匹配器的角色:y1x21x21x1x21

图3

注意,在这三种情况下,残差均垂直于匹配项。 (如果不是,我们可以调整匹配以使其更接近,或。)yx2y1

关键思想是,到最后一张图,涉及的两个向量(和)在构造上已经垂直于。因此,对任何后续调整都涉及垂直于更改。结果,新匹配和新残差保持垂直于。x21y1x1y1x1γx21y12x1

(如果涉及其他向量,我们将以相同的方式将它们的残差匹配到。)x31,x41,x2

还有一点很重要。这种构造产生了一个垂直于和的残差。这意味着,是在剩余空间通过跨越(三维欧几里德境界)和。就是说,这个两步的残差匹配和取值过程必须在平面中找到最接近。由于在此几何描述中,和哪个先出现并不重要,我们得出结论:y12x1x2y12x1,x2,yx1,x2yx1x2如果以另一顺序完成该过程,则以作为匹配器,然后使用,结果将是相同的。x2x1

(如果还有其他向量,我们将继续此“取出匹配器”过程,直到每个向量都变成匹配器为止。在每种情况下,操作都与此处所示相同,并且总是在飞机。)


应用于多元回归

该几何过程具有直接的多元回归解释,因为数字列的行为完全类似于几何向量。 它们具有矢量所要求的所有属性(在理论上),因此可以以完美的数学准确性和严格性以相同的方式进行思考和操纵 在具有变量,和的多元回归设置中,目标是找到最接近的和()的组合。从几何,和所有此类组合(X1X2,YX1X2YX1X2)对应于空间中的点。 拟合多个回归系数无非就是投影(“匹配”)向量。几何论证表明X1,X2,

  1. 匹配可以顺序进行,

  2. 匹配的顺序无关紧要。

通过将所有其他矢量替换为残差来“取出”匹配器的过程通常称为匹配器的“控制”。正如我们在图中看到的,一旦控制了匹配器,所有后续计算都将进行与该匹配器垂直的调整。如果愿意,您可以将“控制”视为“对匹配器对所有其他变量的贡献/影响/效果/关联进行(最小二乘)核算”。


参考文献

您可以在https://stats.stackexchange.com/a/46508的答案中看到所有这些操作以及数据和工作代码。对于那些喜欢算术而不是平面图像的人来说,这个答案可能更具吸引力。(尽管如此,在顺序引入匹配器时调整系数的算法还是很简单的。)匹配语言来自Fred Mosteller和John Tukey。


1
在Wicken的书“多元统计的几何学”(1994年)中,可以找到更多有关这些方面的插图。这个答案中有一些例子。
caracal 2014年

2
@Caracal感谢您的参考。我最初设想的答案是使用与您的答案类似的图-对此处的答案进行了很好的补充-但创建它们后,感觉到伪3D图形可能太复杂,模棱两可,无法完全适用。我很高兴发现参数可以完全简化为平面中最简单的向量运算。还可能需要指出,数据的初步居中是不必要的,因为这是通过在包括一个非零常数向量来处理的。xi
ub

1
我喜欢这个答案,因为它比代数提供了更多的直觉。顺便说一句,不确定您是否检查了此人的youtube频道。我非常喜欢
Haitao Du

3

迄今为止,关于协变量调整作为“控制其他变量”的手段,进行了精彩的讨论。但是我认为这只是故事的一部分。实际上,有许多(其他)基于设计,模型和机器学习的策略可以解决许多可能混淆的变量的影响。这是对一些最重要的(非调整)主题的简要调查。尽管调整是“控制”其他变量的最广泛使用的方法,但我认为一个好的统计学家应该了解在其他过程和程序的情况下它做什么(不做什么)。

匹配:

匹配是一种设计配对分析的方法,其中将观察结果分为2个一组,否则它们的最重要方面是相似的。例如,您可以抽样两个人,他们的学历,收入,职业任期,年龄,婚姻状况(等等)一致,但因急躁而不一致。对于二进制暴露,简单的配对t检验足以测试他们的BMI平均值差控制所有的匹配特征。如果要对连续曝光进行建模,则类似的度量将是通过差异原点进行的回归模型。参见Carlin 2005

E[Y1Y2]=β0(X1X2)

权重

加权是另一种单变量分析,它对连续或二进制预测变量与结果之间的关联进行建模,以使暴露水平的分布在各组之间是均匀的。这些结果通常被报告为标准化的,例如两个国家或几家医院的年龄标准化死亡率间接标准化从“控制”或“健康”人口中获得的比率计算出预期结果分布,该比率被预测为参考人口中的阶层分布。直接标准化则相反。这些方法通常用于二进制结果。倾向得分加权ÿXY说明二元接触的可能性,并在这方面控制这些变量。它类似于曝光的直接标准化。参见罗斯曼,《现代流行病学》第3版。

随机化和准随机化

这是一个微妙的要点,但是如果您实际上能够将人们随机分配到某个实验条件,那么可以减轻其他变量的影响。这是一个非常强大的条件,因为您甚至不需要知道那些其他变量是什么。从这个意义上说,您已经“控制”了他们的影响力。这在观察性研究中是不可能的,但是事实证明,倾向评分方法为暴露提供了一种简单的概率测度,可以衡量,调整或匹配参与者,从而可以与准随机研究相同的方式对其进行分析。 。参见Rosenbaum,Rubin 1983年

微观模拟

模拟可能从随机研究中获得的数据的另一种方法是执行微观模拟。在这里,人们实际上可以将注意力转移到更大,更复杂的机器学习(如模型)上。我喜欢Judea Pearl创造的一个术语是“ Oracle模型 ”:复杂的网络,能够为许多功能和结果生成预测和预测。事实证明,可以“折叠”这种oracle模型的信息,以在代表随机队列,在“控制变量”分布中保持平衡的均衡队列中模拟结果,并使用简单的t检验例程来评估可能存在差异的大小和精度。参见Rutter,Zaslavsky和Feuer 2012

回归模型中的匹配,加权和协变量调整都估计相同的关联,因此,可以说所有这些都是“控制”其他变量的方式


完全在我头上。
JackOfAll

这是对所提问题的答案,到目前为止,良好的讨论只是多方面的,有利于多元模型的调整。
AdamO '18年

多变量模型,匹配等都是有效的技术,但是研究人员何时通常将一种技术用于另一种技术?
mnmn

-1

该软件实际上并不控制变量。如果您熟悉回归的 矩阵表示法,那么您可能还记得最小二乘解是。因此,该软件使用计算线性代数方法对数字表达式进行数字评估。b = X Ť X - 1 X Ť ÿY=Xβ+εb=(XTX)1XTY


4
感谢您借此机会提供此信息。为了解决问题中给出的需求,我们需要知道第二个表达式中素数的含义和第二个表达式中的含义。我知道斜率是一个轴上的变化超过另一个轴上的变化。记住,符号是一种特殊的语言,最初是使用非符号词汇创建和学习的。接触不懂语言的人需要使用其他单词,这是跨学科传播知识的持续挑战。
2014年

2
一旦进入多元回归,没有线性代数就无法进行。Wiki链接包含变量的所有描述。在这里,我可以说代表矩阵的转置。您必须学习如何设计矩阵。在这里解释太久了。阅读我发布的Wiki,其中包含很多信息。恐怕除非您了解线性代数,否则您将无法以有意义的方式回答您的问题。 XXX
Aksakal 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.