第02章 从数据到因果

亚历克斯的食物过敏探索之旅

想象一名大学生亚历克斯,他饭后偶尔会身体不适,却找不到致病食物。如今大众对食物过敏的认知不断提升,反复的过敏反应让他十分困扰,于是决定展开调查。为找出诱因,他开始记录自己吃的每一样食物,标注食材,并追踪饭后身体感受,建立了一份个人数据集。

亚历克斯的研究过程,正是典型定量研究的雏形:收集数据、使用描述性统计、数据可视化、寻找相关关系,最终用科学方法推断过敏诱因。他每日记录用餐与过敏反应程度,为系统分析打下基础。随着记录增多,他通过可视化挖掘数据规律,梳理自身经历背后的逻辑。

为更清晰地梳理关联,亚历克斯使用了几种简单却高效的数据可视化工具:

  • 过敏反应强度直方图:展示不同严重程度的过敏反应出现频率。若强烈反应(\(8-10\)级)大多出现在食用大蒜的日子,就是值得重点关注的信号。

  • 按食材分类的反应柱状图:对比大蒜、乳制品、小麦等不同食材对应的平均过敏强度。若大蒜对应的数值持续偏高,可疑性便会增加。

  • 时间序列折线图:记录过敏强度随时间的变化,找出身体不适的集中时段,并判断是否与特定用餐时间对应。

这些可视化方法让潜在的相关关系一目了然。例如,直方图能直观看到\(8-10\)级的强烈反应常在食用某些食物后出现;柱状图对比各类食材的平均反应强度,凸显大蒜的可疑性;时间序列图展示随时间变化的规律,标记出反应峰值对应的日期,再与当日饮食匹配。通过可视化识别规律与相关关系后,亚历克斯提出了过敏诱因的假设,进而单独测试特定食物,或采用更进阶的分析方法。

探究相关关系

量化观测:亚历克斯将每次过敏反应按\(1-10\)分打分,\(10\)分为最严重。几周的数据积累后,清晰的规律浮出水面:只要食用大蒜,他的过敏强度稳定处于\(8-10\)分;而乳制品、小麦等食物只会偶尔引发轻微反应(\(3-4\)分),且没有固定规律。这一差异帮他锁定了最可能的过敏原。

潜在混杂因素:某天亚历克斯一顿不含大蒜、但含奶昔的饭后感到不适,他怀疑乳制品也是潜在过敏原,于是更细致地记录乳制品摄入情况。一段时间后他发现,好几天大量摄入乳制品却毫无症状,说明之前的不适只是巧合,或是其他变量导致。这体现了混杂因素会干扰数据解读

相关强度:随着数据增加,大蒜与过敏症状的关联愈发明显。几乎每次食用大蒜,都会出现强烈反应。从统计角度,这属于强正相关:在记录中,大蒜摄入与强烈过敏反应的变化趋势高度一致,远超其他食物。

虚假相关:亚历克斯发现,自己的过敏常在周末发作。乍看与饮食无关,但仔细思考后,他意识到周末常外出就餐,而外出餐食更易含大蒜。这是典型的虚假相关:周末本身并非诱因,只是周末接触真正过敏原(大蒜)的概率更高。若不仔细甄别,这类规律极易误导结论。

得出初步结论

尽管相关不等于因果,但大蒜与不适症状持续且强烈的关联,让亚历克斯得出可靠假设:他可能对大蒜过敏。

米娅的不明不适

亚历克斯的女友米娅,也开始出现身体不适。追溯症状后,她发现难受的日子大多是和亚历克斯相处的日子。她不禁担忧:自己是不是也患上了食物过敏?是不是在共同用餐时误食了大蒜?

米娅抱着好奇与谨慎,同步记录自身症状与亚历克斯的大蒜摄入记录。她意外发现:即便自己没吃大蒜,只要亚历克斯吃了大蒜,她有时也会感到不适。

揭穿虚假相关:进一步调查后,真相浮出水面。亚历克斯在家用大蒜做饭时,会点燃一款香薰蜡烛掩盖残留气味。原来米娅的不适根本不是大蒜导致,而是蜡烛的香味。米娅的症状与亚历克斯吃大蒜看似相关,实则是虚假相关,真正诱因是环境因素,并非饮食。

这个例子说明:当变量因巧合或间接关联同步变化时,我们极易误判因果;得出因果结论前,必须排除其他解释。

亚历克斯探究大蒜摄入量对过敏严重程度的影响

发现大蒜摄入与过敏反应存在强相关后,亚历克斯决定深入研究。二者关联明确,但他想量化大蒜对症状的影响,同时探究其他因素的作用:过敏强度是否不只受大蒜影响,还和体重、天气、用餐地点(室内/室外)有关?

收集数据:几周内,亚历克斯在原有饮食、过敏记录基础上,新增多项变量:每餐大蒜摄入量、每日体重、当日最高气温、用餐是否在室外。

为厘清变量间关系,他采用普通最小二乘法(OLS)回归,估计控制其他变量不变时,各因素对过敏强度的影响。结果十分明确:大蒜摄入量的系数为正,证实大蒜吃得越多,过敏反应越强烈。有趣的是,体重略高的日子,过敏反应反而更轻,说明身体或许有更强的过敏原缓冲能力;气温越高,过敏强度越低。

起初室外用餐与更强烈的过敏相关,亚历克斯后来意识到:外出就餐多为餐厅,食材不可控,更容易接触隐藏的大蒜。

他想起米娅曾说自己周末反应更严重,由此发现规律:周末外出就餐更多,大蒜接触概率更高。周末本身不是诱因,又是一例虚假相关,大蒜才是背后真正的驱动因素。

探究因果关系

通过OLS回归控制混杂变量、确认强相关后,亚历克斯明白:仅靠相关无法证明因果。描述性分析与OLS回归虽帮他剥离了体重、气温、用餐地点等变量的影响,却仍无法完全排除其他解释。要证实大蒜确实引发过敏,需要超越统计控制的严谨证据。

他想起一篇新闻报道:部分与大蒜结构、化学成分相似的食物,也会引发敏感人群的过敏。这让问题更复杂:或许大蒜不是唯一诱因,相关食物会加重症状,甚至混淆判断。

为得到确切答案,亚历克斯采用更严谨的实验法——确立因果关系的黄金标准。实验能人为控制条件,系统性观测效应。他计划在饮食中系统添加、剔除大蒜及大蒜类食物,同时保持其他因素不变。

为提升实验可信度,他邀请三位无已知食物过敏的朋友作为对照组。在完全相同的条件下对比反应,精准剥离大蒜的专属影响。

一周内,所有人食用标准化餐食,唯一变量为是否加入大蒜及同类食物。三位朋友全程无任何过敏症状,而亚历克斯只要吃了大蒜,就会出现不适,对比结果清晰且稳定。

朋友即便食用化学性质与大蒜相近的食物也毫无反应,帮亚历克斯排除了其他可疑食物。最终证实:只有大蒜会引发他的过敏。设置对照组,不仅确认了大蒜的作用,也排除了其他同类食物、环境因素的干扰。

确立因果关系

经过反复、稳定的实验结果,同时排除其他潜在诱因,亚历克斯笃定:大蒜与他的过敏不只是相关,而是因果关系。用科学语言来说,他成功从相关推断推进到因果推断

这段经历正是科学研究的缩影:细致观测、系统收集数据、识别混杂变量、回归分析,最终通过可控实验剥离因果效应。它展示了统计学、机器学习等领域的研究者,如何从单纯识别数据规律,走向可靠的因果推断。

2.1 定性与定量研究方法

研究中广泛使用两种主流研究范式:定性研究定量研究

定性研究通过焦点小组、非结构化或深度访谈、文本分析等方式收集非数值型数据,识别特定模式或主题。在社会科学中,定性研究可探究个人对教育回报的看法、女性获得正式就业面临的阻碍,通过深度访谈理解个体真实经历;也可访谈低收入社区的家庭,分析童工与入学选择背后的决策逻辑。

与之相对,定量研究侧重可测量的数值型数据,采用问卷调查、结构化访谈、行政记录等标准化工具,常依托统计、数学或计算分析开展研究。例如,经济学家可利用全国调查数据估计教育对收入的因果效应,或评估最低工资政策变化对不同人口群体就业率的影响。这类研究常使用大型数据集,通过统计方法识别相关关系或因果效应。

定量研究也可结合现有数据集与计算方法开展预测、模拟政策影响。例如,研究者利用住户调查数据,预测不同税收政策下未来的收入分布;在健康领域,定量研究可对比参保组与未参保组的健康结果,评估新医保项目对医疗服务可及性的影响。这类研究基于标准化观测或测量,采用描述性分析、准实验、实验设计等方法,针对特定样本总体展开研究。

两种范式均能产出知识,但底层研究逻辑存在差异。

  • 定性研究多采用归纳逻辑:基于数据中观测到的规律,构建理论或提出假设。

  • 定量研究采用演绎逻辑:利用实证数据,检验已有的假设或理论模型。

二者的数据性质也不同:定性研究具有主观性,从受访者视角理解现实情境。例如,社会学家可通过访谈,探究农村小微企业主对新金融监管政策的解读。定量研究更偏向客观,基于可观测、可量化的结果,测量特定干预的影响,例如估算现金转移项目对家庭消费的作用。

定性数据以文本形式呈现,从少量案例中挖掘深度见解;定量数据以数值形式呈现,覆盖更广的总体,但单个案例的分析深度有限。

  • 定性研究的分析多为解释性分析,采用编码、主题分析等方法;

  • 定量研究运用统计检验评估显著性、效应量或预测能力,得到更标准化的结论。

在数据收集层面:

  • 定性研究多使用非结构化/半结构化形式,支持开放式作答;

  • 定量研究采用固定作答格式,搭配预设量表或分类选项。

受限于案例深度,定性研究结论的可推广性较弱;定量研究因覆盖范围更广,结论更具可推广性。

尽管本章节将定性、定量方法区分介绍,但许多研究者采用混合研究法,结合两种范式丰富分析内容。例如,研究者可先通过定性访谈设计调查问卷,再采用定量方法评估项目干预效果。

综上,定性与定量研究的研究目的不同,但均是分析经济、社会现象的有效工具。二者在研究方法、分析流程、数据类型、结论可推广范围上存在差异,针对不同研究问题各有优势。本书将重点介绍定量研究方法

2.2 定量研究方法

本节从宏观视角介绍健康、经济学与社会科学领域常用的研究方法。研究始于一个清晰、可回答的问题。尽管现有数据与工具未必总能给出确切答案,但我们往往能获得新认知,加深对现实世界运行规律的理解。一个好的研究问题通常与研究假设相关——即我们在现实中观测到的现象,或基于理论做出的预判。若某一理论预测了事物的运行方式,原则上我们可以用数据对其进行检验。

为此,研究者收集或获取数据,挖掘数据规律、提出假设并开展分析。研究结论可能反映变量间的关联、相关或因果关系,研究目标通常是解释观测现象、进行预测或辅助决策。本书开篇就介绍了这些核心思路。

不同学科依托各自的方法论传统: 在健康研究中,循证方法是核心。\(查尔斯·曼斯基\)在《不确定性下的患者照护》中指出,无论是研究治疗效果还是个性化风险,核心目标都是基于患者特征,对治疗结果进行概率性预测。

  • 经济学家将其称为回归分析

  • 心理学家称为统计或精算预测

  • 计算机科学家称为机器学习/人工智能

  • 商科研究者常称为预测性分析

健康领域的研究者通常先通过描述性分析识别变量关联。当目标是估计因果效应(例如干预 \(X\) 是否会导致结果 \(Y\))时,他们高度依赖随机对照试验(RCT),该方法常被视作研究的“黄金标准”。这类方法同样支撑规范性决策,例如在临床监测与激进治疗之间做出选择,同时结合临床经验与实证证据。

随机对照试验因内部有效性广受认可,即研究结论在样本内具备可信度。但循证研究也存在明显局限:更强的识别假设虽能得出更确定的结论,却会降低结论可信度。这种权衡使得学界更偏好假设更少、更透明的方法,尤其是随机实验。核心逻辑是:当干预被随机分配时,实验组与对照组的对比更能反映真实的因果效应。该思路在其他领域有不同名称:机器学习中的\(A/B\)测试、经济学中的随机田野实验。

不过,随机对照试验本身也存在挑战:试验样本可能与总体人群存在差异;小样本会导致估计结果统计精度不足;志愿者参与模式也无法完全反映真实患者的行为。因此,基于试验数据的预测可能不够稳健,尤其当不确定性未被妥善处理时。\(迪顿 \space \& \space 卡特赖特(2018)\)就此提出批评:随机对照试验有时被误解或滥用,因果证据的质量不仅取决于随机化本身,也依赖严谨的研究设计与结果解读。

尽管存在上述问题,健康领域研究者通常更看重 \(200\) 人规模的随机对照试验,而非 \(200000\) 人的观测性研究。这种偏好常依托\(唐纳德·坎贝尔 \space \& \space 斯坦利(1963)\)提出的内部有效性与外部有效性框架:

  • 内部有效性:结论在研究样本内的可信度,类似机器学习中的样本内分析;

  • 外部有效性:结论能否推广到其他总体,对应样本外预测。

\(20\)世纪\(60\)年代起,\(坎贝尔\)提出的“内部有效性优先”观点,奠定了实验法相对于观测法的主导地位,与样本规模无关。

但可靠的因果推断仍要求样本能代表目标总体。若样本不具备代表性,即便识别严谨,估计结果也可能存在偏差或误导。这一问题在观测性研究中尤为突出,因为干预分组、样本抽样往往是非随机的。我们将在后续探讨抽样与总体推断时展开说明——这是所有实证研究的核心难题。

与健康研究不同,经济学研究更重视观测性研究,尤其是依托大规模、代表性数据集的研究。坎贝尔的有效性框架同样适用:优质的观测性研究能尽可能贴近随机实验,同时依托代表性数据获得更强的可推广性。正如\(班纳吉 \space \& \space 迪弗洛(2009)\)强调,高质量的观测与准实验研究,尤其是立足真实场景的研究,即便不开展完全随机实验,也能产出对政策有价值的结论。

这类方法论分歧也反映了研究目标的差异。\(施穆埃利(2010)\)将研究分为解释性建模(旨在理解因果关系)与预测性建模(旨在预测未来结果)。二者都是各学科研究的核心,但对数据、假设、评价标准的要求不同。例如,预测能力强的模型,可能难以解释因果机制,反之亦然。

最后,经济学与统计学对建模秉持实用主义视角。正如\(博克斯(1976)\)的名言:“所有模型都是错的,但有些是有用的。” \(弗里德曼(1953)\)也提出类似观点:不切实际的假设未必是缺陷,关键在于模型推导的结论能否近似现实。\(卡特赖特(2007)\)进一步拓展:模型的价值不仅取决于形式特征,更取决于其能否贴合现实结构。这一哲学视角持续影响着研究者对内部有效性、外部有效性与模型现实性之间权衡的评估。

2.3 数据与可视化

健康、经济学、商科、社会科学等领域的研究者高度依赖数据,以此分析动态(随时间变化)与静态(不随时间变化)的各类现象。实证研究中最常用的数据形式包括横截面数据、时间序列数据与面板(纵向)数据

  • 横截面数据:在单一时间点或短时期内,对多个研究对象(如个人、家庭、企业、国家)开展观测,相当于各类特征的快照,用于分析不同个体间的差异,但无法体现时间变化。

  • 时间序列数据:对单一对象,在固定间隔内进行重复观测,适合识别时序规律、预测未来结果。

  • 面板数据:结合前两者特点,对同一批对象在多个时期内持续追踪,既能分析个体自身随时间的变化,也能对比个体间差异,还可通过固定效应等方法控制不可观测的异质性。

研究者通过多种数据源整合数据集,包括调查数据(如住户调查、劳动力调查)、行政记录(如医保账单、入学登记)、实验数据(如实地试验),以及网络爬虫、传感器数据、手机应用记录等数字数据源。

获取数据后,研究遵循标准化流程:首先探索原始数据,掌握其结构与内容;随后开展数据清洗,识别并修正错误,通过删除或插补处理缺失值,剔除或调整异常值。处理敏感数据时,研究者还需遵守伦理与法律要求,保护隐私、获取知情同意、符合数据保护法规。清洗后的干净数据可用于分析与可视化,从而挖掘数据结构、识别规律、辅助结果解读。

可视化是该过程的基础工具,既支持探索性分析,也能清晰呈现研究结果。优质可视化可以揭示原始数据中不易发现的趋势、异常值、聚类与关联关系。常用静态可视化方法包括直方图、条形图、箱线图、散点图、热力图。

  • 直方图:展示连续或离散变量的频数分布。每个矩形代表一段取值区间,高度表示该区间内的样本数量,例如收入在每\(10000\)美元区间内的人数。
  • 条形图:多用于分类变量,对比不同组别间的均值或中位数,例如不同班级的平均考试分数、不同城市的平均房价。
  • 箱线图:直观呈现数据离散程度、偏态,标记潜在异常值,展示四分位距(中间\(50\%\)数据)、中位数与极值,便于对比多组数据分布。
  • 散点图:用于绘制两个连续变量,每个点代表一个观测值,可识别相关关系或非线性关系,例如受教育水平与工资的关系。
  • 热力图:利用矩阵布局中的颜色深浅表示数值大小,尤其适合可视化相关系数矩阵、地理空间分布(如温度、犯罪密度)。

更高级的可视化方法拓展了分析维度:折线图适合时间序列数据,用于追踪时序变化;面积图展示不同构成部分随时间对总体的贡献;网络图刻画实体间关系,例如社交网络分析、生物系统分析。

交互式可视化如今应用愈发广泛,尤其适用于网页端报告。仪表盘、交互地图、滑动控件等工具,可让用户调整参数,实时观察规律与结果变化,在探索性研究、政策制定者仪表盘、教学工具中效果突出。

结合静态与交互式可视化,能让研究者更深入理解数据,更清晰地展示结果。这些工具共同助力精准诊断、模型构建与数据驱动决策。

在此基础上,下一节将介绍相关系数,用于量化变量间关联的强弱与方向,是探索性分析与模型构建的关键步骤。

本书全程先以横截面数据为例,随后介绍面板数据,最后讲解时间序列数据,并为每种数据匹配对应的方法与R语言实操案例。

R语言为数据分析与可视化提供了强大灵活的环境。利用基础Rtidyverse系列包(readrreadxldplyrggplot2等),可高效导入、清洗、汇总数据,其中整洁数据原则是核心。

  • 可视化方面:ggplot2可绘制直方图、条形图、箱线图、散点图等,支持多层叠加与高度自定义;

  • 时序与面板数据:tsibblezooplm等包可完成数据重构、建模与时序可视化;

  • 交互可视化:plotlyleafletshiny可搭建动态网页可视化工具。

各类R包共同构建了一个可复现、可扩展、透明的实证研究平台。

2.4 相关分析

从数据可视化过渡到分析方法,接下来自然要理解变量之间的关联,这就引出了数据分析中应用最广泛的概念之一:相关

在讨论统计关系时,我们常引用”相关不等于因果”,以此强调数据解读中的重要警示。要充分理解这句话的含义,首先需要掌握相关的概念,以及它在衡量两个变量间联系时的作用。

相关是一种统计指标,用于量化两个变量的关联程度,通常描述二者线性关系的紧密程度。关联的概念比相关更广,它包含变量间线性或非线性的所有关系形式。在实际应用中,相关分析在金融、医疗、市场营销等诸多领域发挥关键作用,帮助人们依据变量间的关系制定决策与策略。有趣的是,英文单词 correlation 由”共同(co‑)“和”关联(relation)“构成,体现了它刻画变量联动关系的本质。

相关分为三类:正相关、负相关、零相关

  • 正相关:两个变量变化方向一致。例如广告支出增加,销售收入随之提高,二者为正相关。

  • 负相关:两个变量变化方向相反。例如看电视时长增加,学业表现往往下降。

  • 零相关:不存在可识别的关联,一个变量的变化不会系统性引起另一个变量变化。

相关分析是检验变量之间是否关联、关联强弱的统计方法,帮助研究者量化变量同向或反向变动的程度,判断这种变动是否具有实际意义。通过衡量关联的强度与性质,相关分析可为进一步研究或预测提供方向,但解读时需谨慎,避免得出错误的因果结论。

皮尔逊相关系数是相关分析最常用的工具,用于量化两个数值变量之间线性关系的方向与强弱,取值范围为\(\boldsymbol{[-1,1]}\)

  • 接近\(-1\):强负线性相关

  • 接近\(1\):强正线性相关

  • 接近\(0\):无线性相关

例如,学习时长与考试分数的皮尔逊相关系数为\(0.8\),说明总体上学习时间越长,考试分数越高。

皮尔逊相关系数(通常记作\(r\))有两种等价计算方式。 第一种: \[r=\frac{\sum(x_i-\bar x)(y_i-\bar y)}{\sqrt{\sum(x_i-\bar x)^2\sum(y_i-\bar y)^2}}\]该公式将变量离均差乘积和,除以离均差平方和的几何均值,得到相关系数\(r\)

第二种利用协方差与标准差计算: \[r=\frac{\text{cov}(x,y)}{s_x s_y}\]其中\(\text{cov}(x,y)\)\(x\)\(y\)的协方差,\(s_x\)\(s_y\)分别为\(x\)\(y\)的标准差。该公式表明,相关系数是标准化后的协方差,可用于不同数据集、不同变量之间的对比。

其中\(x\)\(y\)的协方差定义为: \[\text{cov}(x,y)=\frac{1}{n-1}\sum(x_i-\bar x)(y_i-\bar y)\]

\(x\)\(y\)的标准差为: \[s_x=\sqrt{\frac{1}{n-1}\sum(x_i-\bar x)^2},\quad s_y=\sqrt{\frac{1}{n-1}\sum(y_i-\bar y)^2}\]

以上公式中,\(x_i\)\(y_i\)为两个变量的个体观测值,\(\bar x\)\(\bar y\)为各自均值,求和范围覆盖全部\(n\)个样本。可以看出,\(r\)通过将协方差除以标准差的乘积实现标准化,衡量两个变量的协变程度占各自自身波动的比例。

协方差仅能体现变量线性关系的方向(同向增加或一增一减),无法衡量关联强弱,因为其数值大小受变量量纲、单位影响。为克服这一缺陷,我们使用标准化后的协方差——相关系数

本质上,相关系数 = 两个变量的协方差 ÷ 二者标准差的乘积。经过标准化后,相关系数为无量纲指标,取值始终在\([-1,1]\)之间,不受原始变量量纲影响,可跨数据集对比,因此成为挖掘数据关联的强大通用工具。

下面通过模拟示例展示:量纲缩放会改变协方差,但不改变相关系数,以此区分两个概念。 我们先生成两个各含\(20\)个观测值的数值变量,再将每个变量乘以\(1000\)进行缩放。可以发现,协方差的数值大幅改变,说明协方差对变量量纲敏感;但使用上述两种公式计算的相关系数保持不变。该例子体现了:相关系数作为标准化、无量纲的关联指标,具有稳健性。

# Set seed for reproducibility
set.seed(0)

# Generate two variables each with 20 observations, all less than 10
x <- runif(20, min = 0, max = 10)
y <- runif(20, min = 0, max = 10)
# Scaling the data by multiplying each element by 1000
x_scaled <- x * 1000
y_scaled <- y * 1000

# Print the original and scaled variables
print(x)
 [1] 8.9669720 2.6550866 3.7212390 5.7285336 9.0820779 2.0168193 8.9838968
 [8] 9.4467527 6.6079779 6.2911404 0.6178627 2.0597457 1.7655675 6.8702285
[15] 3.8410372 7.6984142 4.9769924 7.1761851 9.9190609 3.8003518
print(y)
 [1] 7.7744522 9.3470523 2.1214252 6.5167377 1.2555510 2.6722067 3.8611409
 [8] 0.1339033 3.8238796 8.6969085 3.4034900 4.8208012 5.9956583 4.9354131
[15] 1.8621760 8.2737332 6.6846674 7.9423986 1.0794363 7.2371095
print(x_scaled)
 [1] 8966.9720 2655.0866 3721.2390 5728.5336 9082.0779 2016.8193 8983.8968
 [8] 9446.7527 6607.9779 6291.1404  617.8627 2059.7457 1765.5675 6870.2285
[15] 3841.0372 7698.4142 4976.9924 7176.1851 9919.0609 3800.3518
print(y_scaled)
 [1] 7774.4522 9347.0523 2121.4252 6516.7377 1255.5510 2672.2067 3861.1409
 [8]  133.9033 3823.8796 8696.9085 3403.4900 4820.8012 5995.6583 4935.4131
[15] 1862.1760 8273.7332 6684.6674 7942.3986 1079.4363 7237.1095
# Calculate the covariance between x and y
covariance_original <- cov(x, y)
print(paste("Original covariance:", covariance_original))
[1] "Original covariance: -1.26490786248817"
# Calculate the covariance between x_scaled and y_scaled
covariance_scaled <- cov(x_scaled, y_scaled)
print(paste("Covariance after scaling:", covariance_scaled))
[1] "Covariance after scaling: -1264907.86248817"
# Compute standard deviations for both datasets
sd_x <- sd(x)
sd_y <- sd(y)
#print(paste("Standard deviation of x:", sd_x))
#print(paste("Standard deviation of y:", sd_y))

# Standardize the variables
x_standardized <- (x - mean(x)) / sd_x
y_standardized <- (y - mean(y)) / sd_y
#print(paste("Standardized variable x:", x_standardized))
#print(paste("Standardized variable y:", y_standardized))

# Calculate the covariance between the standardized x and y
#which give us the correlation coefficient:
correlation_original <- cov(x_standardized, y_standardized)
print(paste("Correlation after standardizing:", correlation_original))
[1] "Correlation after standardizing: -0.152795399233766"
# Equivalent formula to calculate the correlation between the original x and y
correlation_original2 <- cov(x, y) / (sd_x * sd_y)
print(paste("Correlation after standardizing2:", correlation_original2))
[1] "Correlation after standardizing2: -0.152795399233766"
# Compute standard deviations for both scaled datasets
sd_x_scaled <- sd(x_scaled)
sd_y_scaled <- sd(y_scaled)

# Standardize the variables
x_scaled_standardized <- (x_scaled - mean(x_scaled)) / sd_x_scaled
y_scaled_standardized <- (y_scaled - mean(y_scaled)) / sd_y_scaled

# Calculate the correlation between the scaled x and y
correlation_scaled <- cov(x_scaled, y_scaled)/(sd_x_scaled * sd_y_scaled)
print(paste("Correlation after scaling:", correlation_scaled))
[1] "Correlation after scaling: -0.152795399233766"
# Equivalent formula to calculate the correlation between the scaled x and y
correlation_scaled2 <- cov(x_scaled_standardized, y_scaled_standardized)
print(paste("Correlation after scaling:", correlation_scaled2))
[1] "Correlation after scaling: -0.152795399233766"

了解到相关系数不受量纲影响后,我们有必要重温上一小节强调的数据可视化的重要性。安斯康姆四重数据集生动说明了可视化分析的必要性,这一经典案例揭示了仅依靠数值汇总指标的局限性。\(安斯康姆四重数据集(1973)\)包含四组数据,它们的统计特征几乎完全一致:均值、方差、相关系数、线性回归方程均相同。

但将数据绘图后,四组数据呈现出截然不同的分布模式。该案例有力证明:若不结合可视化分析,仅依靠统计汇总指标可能会产生误导。

例如,安斯康姆数据集的第一组呈现典型的线性关系,适合用直线模型拟合;第二组尽管回归方程相同,却呈现曲线非线性模式,线性模型并不适用;第三组存在一个异常值,严重影响回归结果,掩盖了数据的真实结构;第四组大部分数据集中在同一个自变量取值上,仅一个极端值决定了整体回归趋势。这些差异只有通过可视化才能发现,无法仅凭汇总统计量识别。

该案例印证了一个核心观点:在解读相关系数、回归结果等统计指标前,数据可视化必不可少。同时它也帮助我们厘清另一个常见误区:相关系数为 \(0\),并不代表变量相互独立。

相关系数为 \(0\) 仅说明变量间不存在线性关系,无法排除非线性关联。举例来说,我们可以构建简单的非线性关系,比如一个变量是另一个变量的二次函数。即便两个变量明显相关,相关系数也可能趋近于 0,从而误导我们认为二者不存在关联。

set.seed(42)   # Set seed for reproducibility
x <- -10:10    # Generate x as a sequence of values
y <- 9 + 2 * x^2   # Define y as a non‑linear function of x

# Plot x vs y to visualize the non‑linear relationship
plot(
  x,
  y,
  main = "Non‑linear Relationship: 9 + 2*x^2",
  xlab = "x", 
  ylab = "y",
  pch = 19, 
  col = "black"
)

# Calculate and print the correlation between x and y
correlation <- cor(x, y)

print(paste(
  "Correlation between x and y:",
  formatC(correlation, format = "f", digits = 3)
))
[1] "Correlation between x and y: 0.000"

这一局限性说明,当变量间存在非线性或复杂关系时,我们需要其他相关系数指标。除皮尔逊相关系数外,还有多种方法可以更好地刻画这类关联。

偏相关系数便是其中一种。它在控制一个或多个额外变量不变的前提下,衡量两个变量之间的关系,有助于剥离混杂因素,提取二者的直接关联。例如,研究教育水平与收入的关系时,通过偏相关控制年龄、工作年限,能更精准地体现教育本身的直接影响。

条件相关系数与之类似,但通常针对分类变量进行条件限定,用于探究两个连续变量的关联在不同分组、不同人群中的变化。该方法在不同子群体规律存在差异时尤为实用,例如分析运动与血压的相关性是否随性别、年龄组不同而改变。

空间相关系数适用于包含地理、位置信息的数据,衡量邻近区域的观测值之间的关联程度。例如,某一区域的污染水平可能与相邻区域相关。空间相关可识别集聚效应或扩散规律,广泛用于环境研究与城市规划领域。

动态相关系数聚焦变量间关系随时间的演变。在时间序列或面板数据中,它可以捕捉变量是否持续同向变动,或关联关系是否发生变化。在经济、金融领域尤为重要,例如利率与通胀的关联强度会随时期不同而改变,动态相关可揭示这类时序变化。

以上各类相关分析方法各有侧重,适配不同的数据结构与研究目标。选择合适的相关分析方法,研究者可以更准确地把握变量的内在联系,避免解读偏差。

综上,相关分析是探究变量关系强大且灵活的工具。皮尔逊相关适用于线性关联;但当关系受其他变量干扰、随时间变化、受地理因素影响或呈现非线性时,偏相关、条件相关、空间相关、动态相关等方法会更加适用。理解并合理运用这些工具,能帮助研究者更深入地挖掘复杂的关联模式。

需要特别注意:相关仅能描述变量的联动趋势,无法解释背后原因。两个变量强相关,并不代表其中一个导致了另一个,混杂变量、反向因果或纯粹巧合都可能造成这一现象。因此,“相关不等于因果”始终是实证研究的核心准则。要得出因果结论,需要额外的研究工具与严谨的实验设计。后续章节将介绍识别数据中因果关系的原理、策略与统计方法。

2.4.1 相关分析与回归分析

在了解了相关系数如何刻画变量间关系的强度与方向后,我们转向一个相关但截然不同的概念:回归分析。相关分析与回归分析都用于研究变量间的关系,但二者在研究目的、解读方式与实际应用上存在差异。

相关分析与回归分析是分析变量间关联的两种基础统计方法,二者存在相似性:通常均假设变量间存在线性关系,并通过系数量化这种关联,以此反映一个变量的变化如何与另一个变量的变化产生联系。

但我们需要明确二者的核心区别: 相关分析主要是一种描述性方法,仅衡量两个变量间关联的强度与方向,不用于建模或预测结果。相关系数取值范围为 \([-1,1]\),概括两个变量的联动紧密程度:系数为 \(1\) 代表完全正相关,\(-1\) 代表完全负相关,\(0\) 代表无线性关联。当我们只想概括变量间的关联(例如吸烟与肺癌的关联),而不对因果性、方向性做假设时,相关分析尤为适用。

与之相对,回归分析用于解释并量化一个或多个变量对另一变量的影响。它不仅分析变量间的关系,还会构建模型,估计一个变量的变化对另一变量的作用。因此回归分析常用于预测,或是评估解释变量对结果变量的影响。在计量经济学中,回归模型通常在对数据生成过程做出特定假设的前提下,用于估计因果关系或结构性关系。

回归分析可以同时处理连续变量与分类变量。例如,我们可以利用学习时长(连续变量)与专业(分类变量)预测学生的平均学分绩点。回归分析输出的系数可以体现影响的方向与大小,同时结合标准误、\(p\) 值等指标,评估估计精度与统计显著性。

综上,相关分析与回归分析虽都研究变量关系,但用途不同:相关分析仅描述关联的强度与方向,无法推导因果、进行预测;回归分析通过建模进一步刻画关系,支持预测与效应推断。明确两种方法的适用场景,对统计工具与研究目标的匹配至关重要。下一节将更细致地讲解回归分析,重点介绍系数解读、模型拟合度评估,以及严谨分析”\(X\)\(Y\)的效应”的思路。

2.5 X对Y的影响 / 回归分析

经济学家与社会科学家通常使用来自代表性样本的观测数据开展研究。其核心目的并非预测,而是探究:平均而言,一个变量\(x\)的变化如何与另一个变量\(y\)的变化相关联。研究者估计回归模型,旨在揭示变量间的系统性关系,具体来说,就是在控制其他因素不变时,\(y\)的均值如何随\(x\)变化。这种关系由条件期望函数(CEF)刻画,记作\(E(y|x)\),它概括了不同\(x\)取值下\(y\)的期望表现。

普通最小二乘法(OLS)回归无法还原结果的完整分布或个体层面的差异,而是对条件期望函数进行线性近似,即找到最能刻画\(y\)的均值随\(x\)变化规律的直线。简单线性回归模型为: \[y_i=\beta_0+\beta_1 x_i+u_i\]其中,\(\beta_1\)表示:在误差项\(u_i\)\(x_i\)不存在系统性关联的前提下,\(x\)每变动一单位,\(y\)均值的变动幅度。

例如,若\(x\)为受教育年限,\(y\)为收入,则斜率\(\beta_1\)代表:平均每多接受一年教育,收入如何变化,而非某一个体的收入变化。核心要点是:回归分析研究的是均值间的关系,而非精准的个体预测。实际观测值相对回归线的波动,源于未观测因素或个体特有因素,由误差项\(u_i\)捕捉,而模型聚焦于刻画\(E(y|x)\)的变化规律。

这一研究侧重点与以预测为核心的机器学习(ML)形成对比。机器学习算法旨在最小化个体层面的预测误差,通常不预设特定函数形式,而是在数据中寻找灵活的模式,以实现对\(y\)的精准预测。LASSO、随机森林等方法的预测精度往往优于OLS,但无法输出易于解读的回归系数。正如\(维克托·切尔诺丘科夫(2013)\)在美国国家经济研究局报告中提到:在部分数据集上,LASSO对条件期望函数的预测拟合效果优于OLS,但其目标是预测精度,而非可解释性。

\(布鲁斯·汉森(2022)\)在著作《计量经济学》中强调:即便\(x\)\(y\)的真实关系是非线性的,OLS依然能给出条件期望函数的最优线性近似。这一点在经济学与社会科学领域尤为重要——研究者更关注解释平均效应与作用机制,而非最大化预测性能。

回归是初级计量经济学的基础内容。此处不重复讲解运算原理,而是厘清用回归估计效应(基于均值随输入变量的变化)机器学习进行结果预测的直观区别。简言之,回归用于回答”平均而言,受教育年限增加会如何改变收入”,而机器学习用于回答”结合此人的教育、工作经历等特征,其收入大概率为多少”。厘清这一区别,对根据研究目标(分析平均效应或预测个体结果)选择合适方法至关重要。

2.5.1 如何估计总体参数\(\boldsymbol{\beta_0}\)\(\boldsymbol{\beta_1}\)

在回归分析中,我们旨在探究总体里结果变量\(y\)与一个或多个解释变量\(x_1,x_2,\dots,x_k\)之间的关系。由于我们几乎无法观测到全部总体,因此依靠样本数据来估计这些关系。我们设定的总体模型为: \[y_i=\beta_0+\beta_1 x_{i1}+\beta_2 x_{i2}+\dots+\beta_k x_{ik}+\epsilon_i\]式中,\(\beta_0,\beta_1,\dots,\beta_k\)是我们想要估计的总体参数。每个\(\beta_j\)代表:在控制其他因素不变时,\(x_j\)每增加一单位,\(y\)的均值发生的变化。\(\epsilon_i\)代表所有未被纳入解释变量、但会对\(y_i\)产生影响的其他因素。

利用样本数据估计这些参数时,我们提出几个核心假设:误差项均值为0,即\(E(\epsilon_i)=0\);且误差项与每个解释变量不相关,即\(\text{Cov}(x_{ij},\epsilon_i)=0\)。在这些条件下,我们可以采用普通最小二乘法(OLS),得到无偏且一致的参数估计量。

OLS的核心思想是:找到一条直线(多解释变量时为超平面),使得残差平方和最小。残差指实际观测结果与模型预测结果的差值,该方法得到的系数估计量,能让模型预测值平均意义上尽可能贴近真实数据。数学上即求解: \[\min_{\beta_0,\dots,\beta_k}\sum_{i=1}^n \big(y_i-(\hat\beta_0+\hat\beta_1 x_{i1}+\dots+\hat\beta_k x_{ik})\big)^2\]

为简化并推广估计形式,我们常采用矩阵形式书写模型: \[ \boldsymbol{Y}=\boldsymbol{X\beta}+\boldsymbol{\epsilon} \] 其中:\(\boldsymbol{Y}\)\(n\times1\)的结果向量;\(\boldsymbol{X}\)\(n\times(k+1)\)的解释变量矩阵(包含一列常数项 \(1\),用于估计截距);\(\boldsymbol{\beta}\)\((k+1)\times1\)的未知系数向量;\(\boldsymbol{\epsilon}\)\(n\times1\)的误差向量。

OLS估计量为: \[\hat{\boldsymbol{\beta}}=(\boldsymbol{X}'\boldsymbol{X})^{-1}\boldsymbol{X}'\boldsymbol{Y}\] 该公式给出一组估计系数\(\hat\beta_j\),使模型预测值与实际观测值的平均平方距离最小。在标准高斯‑马尔可夫假设下,该估计量是最佳线性无偏估计量(BLUE)

OLS同时满足一个关键性质:其生成的残差,平均意义上与解释变量不相关: \[\frac{1}{n}\sum_{i=1}^n x_i\big(y_i-x_i'\hat{\boldsymbol{\beta}}\big)=0\]该性质进一步说明,回归线能够最优拟合数据中的平均规律。

2.5.2 从参数估计到预测

完成系数估计后,我们可以利用模型对结果进行预测。对任意观测个体\(i\),计算拟合值\[\hat y_i=\hat\beta_0+\hat\beta_1 x_{i1}+\dots+\hat\beta_k x_{ik}\]该拟合值代表:在给定解释变量取值与估计参数的前提下,模型对\(y_i\)的预测结果。

残差定义为: \[\hat\epsilon_i=y_i-\hat y_i\]用于衡量模型预测值与真实观测值之间的偏差。残差可用于评估模型拟合效果,以及检验模型假设是否存在违背。

以矩阵形式表示,拟合值向量与残差向量为: \[\hat{\boldsymbol{Y}}=\boldsymbol{X}\hat{\boldsymbol{\beta}},\quad \hat{\boldsymbol{\epsilon}}=\boldsymbol{Y}-\hat{\boldsymbol{Y}}\]该矩阵形式在多元回归模型中尤为实用,可清晰体现多个预测变量与被解释变量之间的关系。我们将在第\(4\)\(5\)章深入探讨这类关系。

:虽然预测\(y\)的取值是回归的用途之一,但计量经济学的核心关注点通常有所不同:我们关注在控制其他变量不变时,某一解释变量\(x_j\)变化,\(y\)的均值如何变化,即估计条件不变效应。回归系数\(\beta_j\)代表总体中的这类平均效应,我们通过样本估计量\(\hat\beta_j\)来推断它。

这些估计量由普通最小二乘法(OLS)最小化残差平方和得到。需要注意:不同随机样本会给出不同的估计结果,因此我们将\(\hat\beta_j\)视为随机变量,其取值依赖于抽取的样本。尽管存在这种变异性,在特定假设条件下,OLS估计量\(\hat\beta_j\)是真实效应\(\beta_j\)的最优估计。

若估计量满足无偏性,则重复抽样得到的平均估计值等于真实参数。该性质成立需满足多项假设:模型参数线性、数据来自随机样本、解释变量存在变异、误差项条件均值为\(0\)、误差方差恒定(或经异方差稳健调整)。

除无偏性外,我们还关注一致性:随着样本量增大,估计量\(\hat\beta_j\)收敛于真实参数\(\beta_j\)。该性质极具现实意义——实际研究中我们通常仅有一个样本,若样本量大且假设成立,即可将\(\hat\beta_j\)视作\(\beta_j\)的近似值。

最后,当样本量极大时,\(\hat\beta_j\)的渐近分布趋近于正态分布,即渐近正态性。该性质让我们可以使用置信区间、假设检验等标准统计工具,即便有限样本下的分布未知。

当然,以上优良性质均依赖于现实数据未必满足的假设。在实证研究中,我们往往难以保证模型设定正确、误差独立同分布。遗漏变量偏误、测量误差、样本选择、内生性、反向因果等问题,都会威胁OLS估计量的有效性。此时,我们应将结果解读为关联(相关)关系,而非因果效应。我们将在第 \(4\) 章详细探讨这些问题及应对方法。

2.6 因果效应

我们常说”相关不等于因果”,这句话用来警示人们不要错误解读统计关联。更严谨的表述是:相关不足以证明因果,它表明两个事件同时发生,却未必代表其中一个导致了另一个。这一区分在经济学、社会科学、健康科学的研究设计中至关重要,尤其在规划与数据收集的早期阶段。

相关关系只能揭示变量间的模式与关联,无法判断一个变量是否直接影响另一个变量。厘清因果关系对有效决策至关重要,政策干预往往需要明确因果关系的方向与大小。例如,经济增长与基础设施投资的强相关,并不能证明二者存在因果关系,也可能源于反向因果或不可观测的混杂因素。因果推断方法是拆解这类复杂关系、得出可落地结论的关键。

因果推断的目标不止是识别关联关系,更要挖掘背后的成因及其影响。理清因果后,研究者可以为决策提供依据、预测结果、采取措施改变现有关系。例如,分析特定行动、政策、干预手段或疗法的效应,能够评估它们对最终结果的潜在影响。因果效应的假设通常来源于过往观测、个人经验与理论见解。经济学、健康学与社会科学领域的研究者,常采用定量方法分析实证数据,评估各类干预的效果。

在因果推断过程中,研究者必须谨慎确定干预措施如何分配给样本或个体。当直接随机分配不可行时,充分掌握可能影响结果的协变量信息就十分关键。这种主动的实验设计思路,是得到可靠因果推断的核心。

仅依靠相关分析,若没有严格控制条件,无法证明因果关系。从解读已有数据,到主动设计研究,这一转变与传统统计、机器学习任务有着本质区别,凸显了因果分析规划的重要性。

因果推断的一大常见难点,是区分结构模型简约式模型

  • 结构模型旨在揭示因果关系背后的运行机制,依赖明确的理论假设,多用于政策模拟与反事实分析,可预测假想干预的效果;但高度依赖强假设,假设不成立时适用性会受限。

  • 简约式模型在尽可能少的假设下估计因果效应,常利用自然实验或观测数据,优先保证结果可信度,而非解释背后机制,适合以识别因果效应为主要目标的研究。

两种方法各有优劣,选择取决于研究问题与可用数据。

随机化是因果推断的基石,它消除混杂变量,保证实验组与对照组在统计上可比。这种方法能清晰识别因果效应,因为结果的差异可以直接归因于干预措施。但在现实场景中,伦理问题、实施难度、高昂成本等因素,常导致随机对照试验(RCT)难以落地。

无法开展随机实验时,研究者会依靠观测数据与准实验方法。这类方法需要仔细处理混杂因素,才能得到稳健的因果结论。常用方法包括回归调整、倾向得分匹配、工具变量法等,它们通过对数据与变量关系做出假设,解决观测数据带来的特定问题。

这些方法的核心是反事实概念:描述同一个体在未接受干预时会发生的假想结果。反事实分析是估计因果效应的核心,但存在固有难题:我们只能观测到个体的一种潜在结果,另一种属于缺失数据。克服这一局限,需要可靠的假设、严谨的研究设计与先进的计算方法。虽然个体层面的因果效应无法直接观测,但研究者主要估计平均处理效应(ATE),以此推断总体层面的预期结果差异

潜在结果模型\((奈曼‑鲁宾模型,1923;1975)\)、有向无环图(DAG)等工具,是定义与估计因果效应的关键框架。这些框架将因果问题规范化,指导我们选择合适的方法。干预的因果效应,通常定义为个体两种潜在结果的差值:\(Y_i(1)\)(接受干预的结果)与\(Y_i(0)\)(未接受干预的结果)。由于一个体无法同时处于接受和未接受干预两种状态,因果推断存在根本难题\((霍兰,1986)\):我们永远只能观测到其中一种潜在结果。正如霍兰的经典表述:无干预,则无因果

反事实代表在另一套干预或政策下本会发生的结果,本身无法直接观测。鲁宾将因果推断定义为缺失数据问题,研究者需要通过各类方法近似无法观测的反事实。随机对照试验、A/B测试等随机实验是识别因果关系的黄金标准,可保证组间可比性;当随机化不可行时,研究者就需要借助观测数据与准实验方法估计因果效应

这类情况下,研究者会面临可观测选择偏误与不可观测选择偏误。

  • 可观测选择偏误:假设所有影响干预分配与结果的因素都可测量、可控制,可使用倾向得分匹配、回归调整等方法得到可靠的因果估计。

  • 不可观测选择偏误:针对无法直接测量的隐藏偏差,可使用工具变量、双重差分、断点回归等方法,通过人为构建条件,复刻随机实验带来的组间可比性。

这些方法各有其前提假设与局限性。例如,可观测选择法依赖于”所有混杂因素均可被测量并纳入分析”这一假设;工具变量法的有效性取决于能否找到仅通过干预影响结果的工具变量;而双重差分法则假设:在未实施干预的情况下,实验组与对照组随时间的变化趋势是平行的。

理解这些细节,对于得出可信的因果推断、保证结论有效至关重要。

机器学习凭借可灵活建模高维协变量,成为因果推断领域的重要工具。但专为预测设计的传统机器学习方法,并不能自动得到可靠的因果推断结果。预测模型通常以最小化误差(如回归损失、分类损失)为目标,无法处理因果识别的复杂问题,容易产生虚假相关、遗漏混杂变量等误导性结果。为解决这类问题,学界发展出双重/去偏机器学习、因果森林、结合因果图的方法等因果机器学习技术。这类方法结合了机器学习的预测能力与因果推断的严谨框架,帮助研究者在复杂的高维数据中挖掘因果关系

通过调整机器学习算法以适配因果识别,研究者能够解决现代因果分析中的关键难题。正则化、特征筛选(如LASSO、弹性网)等技术可处理大量协变量;随机森林、梯度提升等模型能捕捉数据中复杂的交互关系。此外,机器学习可直接对子群体效应建模,用于估计异质性处理效应,识别哪些人群或子群体能从干预中获益最多。

机器学习与因果推断的结合,在经济学、公共卫生、社会科学领域尤为重要——理解因果关系是评估政策、设计干预措施的核心。在介绍完必要的基础统计与机器学习概念后,我们将详细讲解上述所有方法及其实际应用。

注释

  1. 请阅读这份定量研究写作指南
  2. 健康相关内容主要参考查尔斯·曼斯基所著《不确定性下的患者照护》(普林斯顿大学出版社,\(2019\)年)。
  3. 条件期望函数(CEF)给出\(x\)取每个值时\(y\)的均值。例如,若\(x\)代表\(12\)年受教育年限,条件期望函数就表示拥有\(12\)年教育人群的平均收入。它不刻画个体结果,仅反映期望(均值)结果。
  4. 严格来说,普通最小二乘法(OLS)是对条件期望函数的最优线性近似:它选取系数\(\beta_0\)\(\beta_1\),使真实值\(y_i\)与预测值\(\hat y_i=\beta_0+\beta_1 x_i\)的平均平方距离最小。即便\(x\)\(y\)的真实关系为非线性,该直线仍是最优的线性概括。
  5. 此即零条件均值假设\(E(u_i|x_i)=0\)。它保证平均意义上,遗漏因素(由\(u_i\)表示)与\(x_i\)无关,因此估计出的\(\beta_1\)能反映真实的平均效应。
  6. 正因如此,即便变量间可能存在更复杂的结构,回归分析仍适用于研究平均关系。它无法还原完整的条件期望函数,但可给出实用、可解释的概括。
  7. 该假设保证解释变量具有外生性,与误差项所代表的遗漏影响不存在系统性关联。
  8. 高斯‑马尔可夫假设包括:参数线性、外生性(零条件均值)、解释变量间无完全多重共线性、随机抽样、误差方差恒定(同方差性)。