我们现在已经对因果图的工作原理有了基本认识。但这一切的前提是,我们已经拥有一个可操作的因果图。那么,如何才能得到这样的因果图呢?答案是我们需要自己绘制。
因果图代表了生成我们数据的数据生成过程\(DGP\)。绘制因果图的核心在于将我们对\(DGP\)的理解转化为纸面(或屏幕)上的图形。
这一过程可能颇具挑战!它要求我们在动笔前尽可能全面地了解数据生成过程。因此,绘制因果图的第一步实际上是开展研究 ——围绕你的主题进行大量、深入的调研。
完成研究后,你可以将所学知识与自身直觉相结合,按照本章的指引逐步推进。突然间,它就出现了——一个完整的因果图。距离解答那个研究问题,又近了一步。
我们如何才能将纷繁复杂的世界简化为一张因果图?毕竟,现实世界充满复杂性,而因果图却追求简洁明了。但别担心,我们终将找到方法。
关键在于聚焦核心问题 。始终围绕研究问题展开思考,沉浸在与该问题相关的特定情境中。我们不可能——也不需要——将世间万物都塞进图中,必须时刻警惕这种贪大求全的陷阱。真正要做的,是确保图中包含与研究问题相关的一切要素 。
在整个过程中,请牢记:我们的目标是构建一个能反映数据生成过程\(DGP\)的因果图。我们需要思考:
哪些因素导致了我们观测到的数据?
哪些因素影响了结果变量?
哪些因素又影响了处理变量?
通过具体案例来实践,或许会更容易理解。
让我们通过一项我参与的研究来具体说明。这样,我就能确切地告诉你,在思考数据生成过程\(DGP\)时我们考虑了哪些因素。这项研究关注的是 在线课程 对社区大学学生留存率 (以华盛顿州的社区大学为例)的影响。
第一步:明确相关变量
首先,为确保理解一致——什么是变量? 虽然前面的章节已经讲过,但在实际应用中很容易忘记,因此值得重申。
在因果图中,变量 \(variable\)是我们能够获取的一种测量值 ,它可以呈现不同的结果。举个例子,在我们的研究问题中,其中一个相关变量是 “在线课程 \(online \space class\)” ——即“你所选修的课程是在线的吗?”这就是测量的内容。其可能的取值为“是”或“否”。如果我们愿意,也可以将其命名为 “课程类型 \(type \space of \space class\)” ,并设定取值为“在线课程”和“面对面课程”。需注意的是,我们不会为“在线课程”和“面对面课程”分别设定两个变量——因为它们并非独立的变量,而是同一变量可能呈现的两种不同取值。
因此,这里有一个相关变量——在线课程 \(online \space class\)。这是我们的处理变量 \(treatment \space variable\)。我们关注的是该变量的影响。另一个相关变量是“辍学 \(dropout\)”——学生在上完这门课后是否从大学退学?这是我们的结果变量 \(outcome \space variable\)。处理变量和结果变量始终是一个好的分析起点1。
变量列表:
在线课程
退学
好了,接下来呢?
我们希望纳入所有与 数据生成过程 相关的变量。这意味着任何能说明我们是否观察到有人参加在线课程、是否观察到有人退学,或者是否观察到这两种情况同时出现或分别出现的变量。每一个导致处理变量或结果变量出现的变量,或者导致了某个导致了某个导致了处理变量或结果变量的事物的变量,又或者导致了某个导致了某个导致了某个……事物的变量,都很适合被纳入。
有哪些因素可能会促使人们参加在线课程呢?嗯,不同的学生对在线课程有不同的偏好或反感,所以“偏好”是一个因素。这些偏好可能受到诸如种族、性别、年龄和社会经济地位等背景因素的驱动。同样的背景因素可能会影响学生有多少“可用时间”——时间紧张的学生可能更喜欢在线课程。而“可用时间”可能会受到学生工作时长的影响。此外,参加在线课程还需要有稳定的“网络接入”条件。
那么,有哪些因素可能会导致人们从社区大学退学呢?之前提到的一些相同的背景因素可能也与此相关,比如种族、性别、社会经济地位 \(SES\) 和工作时长。你之前在学校的学业表现“学业成绩”也很可能是一个因素。
现在我们的列表是什么样的呢?
线上课程
辍学
偏好
种族
性别
年龄
社会经济地位
可支配时间
工作时长
网络接入情况
学业情况
现在是时候停下来,看看我们的列表,认真思考一下是否遗漏了什么重要内容。你或许能想到一两个遗漏的因素。但就目前而言,我们先维持这个列表不变。
我们如何判断某样东西是否足够重要,值得纳入考虑范围呢?我刚才提到我们应该思考是否有重要的因素被遗漏了。但我们要如何判断一个变量是否重要呢?
这实际上取决于我们认为该变量所产生的因果联系有多“强”。
例如,某人所在地区有安静咖啡馆,这可能会促使他们参加在线课程。一个舒适安静且不在家里的学习场所。这很可能确实会激励少数额外的学生去参加在线课程。但对于太多学生来说,它不太可能真正成为一个决定性因素。
所以,没错,它是相关的,但平均而言,它似乎不太可能对学生是否参加在线课程产生除微小影响之外的其他作用。所以我们把它排除在外可能也没问题。
手里有了这组变量后,我们必须试着思考哪些变量会“导致”其他哪些变量。
方便的是,我们在这里其实已经完成了大部分工作。当我们思考要纳入哪些变量时,我们就在问自己,可能存在哪些变量会导致我们的处理变量或结果变量。所以我们已经对可能导致这些变量的因素有了一些想法。
剩下的就是思考这些变量之间可能是如何相互影响的,或者它们可能是如何被处理变量或结果变量所影响的。我们可能还想考虑是否有一些变量是相关的,但彼此之间不存在因果关系,在这种情况下,它们肯定有某种我们可以纳入考虑的共同原因。
从我们在上一节介绍变量时对它们的描述中,我们已经了解到了一些影响处理变量和结果变量的因素,以及其他一些因素:
在线课程\(OnlineClass\):2导致辍学\(Dropout\)。
辍学\(Dropout\)
偏好\(Preferences\):导致在线课程\(OnlineClass\)
种族\(Race\):导致辍学\(Dropout\)
性别\(Gender\):导致辍学\(Dropout\)
年龄\(Age\):导致辍学\(Dropout\)
社会经济地位\(SES\):导致辍学\(Dropout\)
可用时间\(AvailableTime\):导致在线课程\(OnlineClass\)、辍学\(Dropout\)
工作时长\(WorkHours\)
网络接入\(InternetAccess\):导致在线课程\(OnlineClass\)
学业情况\(Academics\):导致辍学\(Dropout\)
那么,非处理变量和非控制变量之间是如何相互影响的呢?年龄肯定会影响社会经济地位\(SES\),所有的背景变量(种族、性别、年龄、社会经济地位)都会影响可用时间\(AvailableTime\)和工作时长\(WorkHours\)。社会经济地位\(SES\)可能也会影响网络接入\(InternetAcccess\)。
在没有明确因果方向的情况下,哪些变量相互关联呢?在这种情况下,我们引入共同原因,我们可以简单地将其称为 U1、U2 等等,这些共同原因会同时影响两个变量。如果图中的两个变量存在一个共同原因,但我们却没有把这个共同原因画在图上,那么我们的图实际上就不算“完整”。即便我们无法确切指出那个共同原因究竟是什么,也应该把它作为一个未知因素标注在图上。
学业表现和社会经济地位\(SES\)显然与种族和性别相关,所以我们需要在这些因素之间设置某种共同原因。学业表现可能还与某人从事的工作类型有关,从而影响工作时长。互联网接入情况可能不仅由社会经济地位决定,还受地理位置影响,而到目前为止我们都还没考虑地理位置这个因素。所以地理位置也应该列入考虑范围。
现在我们有了哪些信息呢?
线上课程:会导致辍学
辍学
个人偏好:会导致选择线上课程
种族:会影响个人偏好、辍学情况、可支配时间、工作时长,与学业表现、社会经济地位相关
性别:会影响个人偏好、辍学情况、可支配时间、工作时长,与学业表现、社会经济地位相关
年龄:会影响个人偏好、辍学情况、社会经济地位、可支配时间、工作时长
社会经济地位:会影响个人偏好、辍学情况、网络接入情况、可支配时间、工作时长
可支配时间:会影响选择线上课程、辍学情况 * 工作时长:会影响可支配时间
网络接入情况:会影响选择线上课程
学业表现:会影响辍学情况、工作时长,与种族、性别相关
地理位置:会影响网络接入情况,与社会经济地位相关
现在我们有了这样一份清单,就可以绘制一个图表了。鉴于这份清单很长,而且描述了这么多因果关系箭头,我得提醒你,这个图表会有点杂乱。好吧,是非常杂乱。这种情况是可能出现的。我们稍后会回来把它清理整理一下。
Figure 7.1: A Messy Diagram of the Effect of Online Classes on Dropout
现在我们有了\(图7.1\)中的这个图表。现在是进行修正的好时机。看看这个图表,可能遗漏了什么呢?哪些变量可能是相关的,但却没有出现在图中?哪些箭头可能应该存在,但却没有画上去?
这里可能有很多我们遗漏的东西。一个很重要的因素是所就读的具体社区学院——有些学院提供大量的线上课程,而有些则几乎不提供!所以这很可能是选择线上课程的一个重要原因,并且它会受到列表中很多其他因素的影响,尤其是地理位置\(Location\)。
但这还不是全部。仔细审视因果图,认真思考哪些重要因素被遗漏了,这是一项很有益的练习。
现实世界是复杂的,真正的数据生成过程也是如此。
这就给我们带来了一个问题。构建像因果图这样的模型,其核心目的是帮助我们理解数据生成过程,最终弄清楚如何利用它来找到研究问题的答案。
但如果我们最终得到的图表像上一节中的那样,我们将很难从中理出任何头绪。要是我们能以某种方式将其简化就好了。
为什么简化很重要呢?归根结底,因果图越复杂,它可能就越没什么用。想象一下,你向某人询问去下一个加油站的路线,对方没有说“在高速公路向北两个出口处,然后就在温蒂汉堡店旁边”,而是递给你一本巨大的地图集,其中每一页都详细得离谱,却只涵盖一平方英里的区域。有时候,信息少反而意味着信息多。
诀窍在于,要在我们力所能及的范围内进行简化,但又不能简化到让我们的图表不再能代表真实的数据生成过程。要是把地图集拿走,然后只说最近的加油站“在地球上的某个地方”,那就又走向另一个极端了。
如何达到既简单又不太简单的黄金标准? 我们可以应用几个简单的测试,看看我们的图表中是否有不必要的复杂性。
不重要性。 我们已经讨论过这个问题了 - 如果进出某个变量的箭头可能非常小且效果不重要,我们可以删除该变量。
冗余性。 如果图表上有任何变量占据相同的空间 - 也就是说,它们有来自/去往相同变量的箭头 - 我们可以将它们组合起来并一起描述(即使某些变量被组合在一起,这也能起作用)。
中介变量。 如果一个变量只是图表中一个变量影响另一个变量的方式(例如,\(A \rightarrow B \rightarrow C\)中的 \(B\),而 \(B\) 没有连接到其他任何变量),那么我们或许可以删除它,直接让 \(A \rightarrow C\)3。
无关性。 这需要一些关于\(第8章\)因果路径的额外知识。有些变量是数据生成过程的重要组成部分,但与手头的研究问题无关。如果一个变量不在处理变量和结果变量之间的任何路径上,那么我们可以删除该变量。
我们能把这些步骤应用到\(图7.1\)中的图表上吗?我们已经完成了“不重要性”的筛选步骤,并因此省略了几个变量。目前先把“无关性”放一放,因为我们还没学到第8章呢。我们能进行“冗余性”或“中介变量”的分析吗?
我们的图表中确实有一些变量占据了相同的位置,因此可能存在冗余。特别是,“性别”和“种族”的入向箭头和出向箭头完全相同。所以我们可以把它们合并成一个变量,我们可以称之为“人口统计学特征”。
那么中介变量呢?这里有几个中介变量,其中最明显的是“偏好”\(Preferences\)。与其让“性别”\(Gender\)、“种族”\(Race\)、“社会经济地位”\(SES\)和“年龄”\(Age\)影响“偏好”,再让“偏好”影响“在线课程”\(OnlineClass\),我们可以直接让这四个变量影响“在线课程”。还有一个例子是“地理位置”\(Location\)→“网络接入”\(Internet \space Access\)→“在线课程”。我们可以直接去掉“网络接入”这一变量,而且不会有任何损失!
最后一个情况不太确定。“工作时长”\(WorkHours\)通过“可用时间”\(Avialable \space Time\)影响“在线课程”。“工作时长”和“可用时间”不太符合冗余性的情况,因为“学业情况”\(Academics\)会影响“工作时长”,但不会影响“可用时间”。它们也不完全符合中介变量的定义,因为除了“工作时长”之外,其他变量也会影响“可用时间”。
然而,除“工作时长”之外,导致“可用时间”变化的其他变量也会导致“工作时长”的变化。所以,如果我们去掉“可用时间”,直接让“工作时长”影响“在线课程”(当作中介变量处理),那些影响“可用时间”的因素仍然会影响“工作时长”,并且不会有任何损失(类似冗余性情况)。唯一棘手的问题是“学业情况”不会直接导致“可用时间”的变化。但在这种情况下这没问题,因为“学业情况”确实会……通过“工作时长”影响“可用时间”!由于“学业情况”这个变量的存在,这种简化会让我们损失一点信息,所以我们必须仔细考虑是否能接受这种简化。
现在,我们有了下面这个虽然仍略显杂乱,但看起来好多了的因果图:
Figure 7.2: A Cleaner Diagram of the Effect of Online Classes on Dropout
虽然这些步骤非常有用,但要密切留意其中“可能”一词的使用。我们不能盲目地应用这些步骤。即使某个变量适用于其中某一步骤,如果它对我们的研究设计至关重要,或者对于解释正在发生的事情不可或缺,我们也不想将其移除。
例如,假设我们想研究运动对寿命的影响。运动可能延长寿命的一个原因是它会提高心率,另一个原因是它能锻炼肌肉。心率和肌肉发育可能适用于中介变量这一步骤——如果指向它们的箭头都只来自运动,而从它们发出的箭头都只指向寿命,那么我们可以把这两者都去掉,只让运动指向寿命。但如果我们想知道运动起作用的“原因”(是因为心率还是因为肌肉呢?),要是心率和肌肉发育实际上不在因果图中,我们就没办法回答这个问题了。所以这样的简化就过头了。
再举个例子,就在几段之前,我们因为网络接入是中介变量而将其剔除。但在我们所讨论的这项原始研究中,网络接入会导致在线课程这一事实至关重要,因为它起到了“工具变量”的作用(第19章)。如果我们在研究中进行那样的简化,那这项研究就没法开展了!
有一样东西是因果图所不能容忍的,那就是循环。也就是说,你不应该能够从一个变量出发,沿着箭头所指的路径走,最后又回到起始的变量。
下面\(图7.3\)中有两个存在循环的图的例子。在第一个图中,你可以沿着\(A \rightarrow B \rightarrow C \rightarrow A\)的路径走。在第二个图中,变量之间相互因果,所以你可以沿着\(A \rightarrow B \rightarrow A\)的路径走。
Figure 7.3: Two Causal Diagrams with Cycles
为什么不能有循环呢?因为如果有循环,那么一个变量就可以导致自身,突然间,我们就完全没希望找出任何事物的原因了,因为我们无法区分\(B\)对\(A\)的影响、\(B\)对\(A\)再对\(A\)的影响、\(B\)对\(A\)再对\(B\)再对\(A\)的影响……以此类推。
但是等一下。现实世界中肯定有很多数据生成过程存在这样的反馈循环。富人会更富,物体具有惯性,如果我打了你,你就会打我,这又会让我再打你。
难道每次出现这种情况我们都只能放弃吗?
当然不是。这是因为,如果你仔细想想,在真实的数据生成过程中实际上不可能存在真正的循环。这是因为有时间因素。
让我们来思考一下那个互相拳击的反馈循环。显然,这个图看起来应该像\(图7.4\)那样。
Figure 7.4: A Diagram About Punching
但这并不完全正确。毕竟,如果我打了你,然后你还手打我,这并不会导致我打出第一拳——这不可能,因为我已经打出了。然而,这可能会导致我稍后再打一拳。
让我们关注这些拳是在何时打出的。正如在考虑时间因素的统计应用中常见的那样,我们将这些时间段称为 \(t\)、\(t + 1\)、\(t + 2\) 等等,其中 \(t\) 是“某个特定的时间”,\(t + 1\) 是“紧接着那个时间之后的时间”,依此类推。现在,这个图就变成了\(图7.5\)的样子,循环消失了。目前这个图只展示了 \(t\) 和 \(t + 1\) 这两个时间点,但如果我们愿意,还可以继续向右延伸到 \(t + 2\)、\(t + 3\) 等等。
Figure 7.5: Cycles are Even Worse than Punching. But Also Don’t Punch People.
每当我们的图中出现循环时,我们可以通过考虑添加一个时间维度来摆脱它。而且这肯定行得通——循环之所以出现,是因为箭头自身绕了回来。但时间的箭头只朝一个方向移动。
还有另一种方法可以打破因果图中的循环4。如果你能找到循环中某个变量的随机变化的来源(例如,通过随机实验),那么如果我们只关注由随机性驱动的变量部分,那么效果就不能循环回来。所以,如果我不是等你打我,而是决定根据抛硬币的结果来打你,那么在图中我们仍然有 \(IPunchYou \rightarrow YouPunchMe\),但不再是 \(YouPunchMe \rightarrow IPunchYou\),而是 \(CoinFlip \rightarrow IPunchYou\)。现在循环被打破了5。
在本章中,我着重强调了你的因果图应尽可能基于现实世界的知识和先前的研究。但由于我们不可能了解数据生成过程每个部分的所有情况,所以因果图中也包含了大量假设。
这既必要又令人不安!写下这样一个因果图意味着要冒险表明立场。你必须明确指出“这个”导致“那个”。你得说明“那个”不会导致“这个”,或者至少影响小到不足以画一条箭头来表示因果关系。你还得判定“另一个因素”甚至不值得在图中体现。你肯定会觉得,这么做肯定会招来他人的反对,至少会引来教授微微不满的一瞥。
但为了取得进展,我们确实必须做出假设。你研究的质量将取决于这些假设的准确程度。那么,我们如何才能坦然接受必须做出假设这一想法呢?又如何才能让这些假设尽可能准确呢?
实证研究的便利之处在于,假设很少有绝对的对错之分。它们更多地处于一个从“可能错误”到“可能正确”的区间。
毕竟,如果我们必须做出一个假设,通常是因为我们的知识存在空白。我们根本无法确定。与数学问题不同,我们的任务不是证明自己是正确的,而是要让一位严谨的读者觉得“好吧,这听起来合理,我接受”。
所以,至少在数学意义上的“证明”层面,证明我们是正确的并非我们的职责,但让那位严谨的读者接受我们的观点确实是我们的工作。
这就明确了我们的工作方向。对于一个给定的假设,问问自己:“这可能是真的吗?我能提供什么证据,让它从‘有可能’变为‘很可能’呢?”
设身处地站在那位严谨读者的角度思考。他们为什么可能不相信这个假设呢?可以给他们看什么证据来说服他们呢?然后,尽可能地提供相关证据。
例如,假设你正在绘制一个图表,以展示为某位候选人上门拉票是否真的会增加该候选人的选票数。在你的图表中,“候选人拥有的资金数额”和“开展上门拉票活动”之间没有箭头相连。
一位读者可能会想:“等等……资金更充裕的候选人肯定更容易负担得起上门拉票活动,对吧?这里应该有个箭头才对。”针对这个疑问,你要查看你所掌握的所有相关证据。你是否有关于候选人竞选资金影响的过往研究?去查一查!你是否有关于这个话题的数据?查看你的数据,看看资金和上门拉票之间是否存在关联。这两种做法都不能真正证明这里不应该有箭头,但它们可能会让那位读者从持怀疑态度转变为接受你的观点(而且这也给了你一个发现自己的假设实际上有误的机会,这样你就可以修正它)。
这归根结底就是这么回事。思考一下我们的假设是否合理,尽可能让这些假设建立在可靠的知识和以往的研究基础之上。如果我们认为这些假设有值得怀疑的理由,那就问问什么样的证据能支持这个假设,然后努力提供这样的证据。
我们还可以采取其他一些方法来提供帮助。
第一种方法就是找别人来审视。对自己的假设持怀疑态度可能很难——毕竟是你自己做出的假设,所以你可能觉得它们相当合理。但也许存在一些你没有想到的值得怀疑的理由!把你的模型展示给另一个人看,尤其是对你试图绘制因果图的场景或主题有所了解的人。或者只是描述一下你所做的一些假设,看看他们有什么看法。他们认可和不认可的内容可能会让你大吃一惊。
我们还可以进行一些更正式的检验。因果图的一个好处是,它们能为我们产生“可检验的含义”。也就是说,一旦我们把图绘制出来,它会告诉我们某些关系“应该”为零。我们可以使用基本的相关性分析,在实际数据中检验这些关系。如果它们不为零,那说明我们的图存在问题!我们将在\(第8章\)更详细地讨论这些正式检验方法。
处理变量(Treatment Variable)
:我们希望探究其作用 的变量 —— 它对结果有何影响?
结果变量(Outcome Variable)
:我们希望观察其变化 的变量 —— 处理变量如何作用于它?↩︎
鉴于下面提到的几个人口统计学方面的影响因素,此时指出这个过程的两点情况很合适:(1)这里的因果关系不涉及“正负性”——这些因果箭头并不表明某个给定的因素会使辍学的可能性增加还是减少,只是表明它会以某种方式改变分布情况;(2)可能会省略“作用机制”——有箭头只表明一个事物会导致另一个事物,但并没有说明“为什么”会这样。在大多数情况下,你可以在原因变量和结果变量之间加入另一个变量,比如在这种情况下,如果你愿意,可以加入“学校精神”或“教育质量”来解释这种联系。但通常我们没有足够的信息来对每一种作用机制进行定量研究,所以我们会把它留到后续研究中,或者在因果图之外对我们认为可能的作用机制进行理论分析。↩︎
这就是我在前面一个脚注中提到的情况,即关于一个变量导致另一个变量的“机制”被省略了。↩︎
当研究人员认为他们遇到了因果循环时,这是一种常见的处理方法。不过,出于本节所阐述的原因,也许他们实际上不应该把它当作真实因果图中的一个循环。但即便采用通过引入时间来打破循环的方法,在识别过程中仍然存在一些非常类似循环的因素需要去解决。↩︎
如果你无法随机确定所有变量,这种方法仍然会让你面临一些问题。例如,可参见第23章中关于社交网络的讨论。↩︎