关于我们
![]() ![]() |
基于Python的因果推断 本书将帮助读者:学习如何理解因果推断的基本概念。将业务问题定义为因果推断问题。理解偏差如何干扰因果推断。学习因果效应如何能够因人而异。将相同客户不同时间的观测用于因果推断。在随机化不可行的时候利用地理和回溯实验。检验非遵从性偏差和效应稀释。 [巴西] 马修斯 法库尔(Matheus Facure) 前言想象自己是一名刚刚步入快速发展、前途光明的数据科学领域的新手。虽然尚未精通机器学习知识,但你完全相信自己有这个能力。你可能已经学完了几门该领域的线上课程,甚至在Kaggle 平台的数据挖掘和预测竞赛中取得过不错的成绩。你或许正在准备甚至迫不及待地运用所掌握的知识去解决实际问题。一切顺风顺水。领导还会问:嗨,请算算我们实际取得了多少新增的客户付费营销份额。刚开始的时候,的确我们看到有些客户来自付费营销渠道,但是看上去在免费应用方面却有下降。我们认为,有些来自付费营销渠道的客户即使不付费也会来。这就意味着一个新的挑战,但是,这个挑战是什么呢?你如何知道没有付费营销将会发生什么呢?或许,在营销活动开始前后,你会比较免费应用和付费应用的总数。但是,在一个快速发展的公司里,你应该如何才能知道营销活动改变不了什么(见图2)?再换个话题,将自己当作一名业内大咖的风险分析师,刚受雇于一家贷款公司。首要任务是完善该公司的信用风险模型。目标是建立一个自动决策系统,用于评估客户信誉(为客户担保)并决定公司可以为客户提供的贷款额度。当然,系统的错误将会导致严重的代价,特别是如果给出的信贷额度过高的话。这样的决策系统,关键在于明确信贷额度对客户违约可能性的影响程度。客户能否管理大额信贷?是否具备偿还能力?是否会陷入过度支出和难以控制的债务危机?为了把握这些动向,你首先应该根据给出的贷款额度绘制信贷平均违约率曲线。出乎意料的是,数据显示出非预期的结果,如图3 所示。信用卡额度与信贷违约率看上去呈反比例关系。如何实现提高信贷额度而又能降低信贷违约风险呢?有理由怀疑,你会去跟其他分析师交流这个问题。答案很简单也不意外:贷款公司将向违约概率小的客户提供更多信贷。因此,提高信贷额度并不能降低违约风险,事实正好相反。低违约风险会提高信贷额度。尽管如此,还是没能解决最Z早的问题:如何根据数据建立信贷风险与信贷额度的关系模型。原本也并不指望系统知道更大的信贷额度意味着违约风险的降低。而且,仅仅为了看看结果如何而想当然地在A/B 测试中随机确定信贷额度,必定是徒劳无功的,因为错误的信贷额度决策,代价高昂。上述问题的共同点是,需要知道改变能够控制的事情(营销预算和信贷额度)如何影响希望得到的商务结果(客户应用和违约风险)。影响或效果评价长期以来是现代科学的重要支柱,但直到最Z近,在将这些工具手段加以体系化,形成所谓因果推断领域的方面,才取得了重大进展。而机器学习的进展以及对实现基于数据的决策自动化的普遍意愿也将因果推断引入工业部门和公共机构。然而,因果推断工具尚未广泛被决策者或数据科学家们了解。为此,作者曾经写过一本名为《勇敢者与求真者的因果推断》(CausalInference for the Brave and True)的在线图书。该书以严谨而又不失轻松的方式介绍了因果推断的传统工具和最Z新进展,而且全部附带开源的Python 软件。本书作者试图再进一步,从应用角度论述所有相关内容,不仅更新了示例,而且进行了更直观的解释说明。作者希望本书能够成为解决所有基于数据的决策问题的起点。前提要求本书是利用Python 实现的因果推断的导论,但并不是一般的入门书。之所以是导论,是因为本书聚焦于应用实践,而不是关于因果推断的严谨的证明和定理。而且,本书作者更倾向于给出简单而直观的解释说明,而不是完整的复杂的论述。之所以又不是一般的入门书,是因为作者希望你已经具备关于机器学习、统计学和Python 编程的知识。内容并不高深,但本书还是会涉及你应该已掌握的一些概念和术语。例如,书中会有如下的文本描述:首先需要处理的是,连续型变量处处使得P(T=t)=0。原因在于,概率是密度曲线下面积,而单点的面积总为零。为了避免这种情况,可以用条件密度f(T|X) 代替条件概率P(T=t|X)。本书并不过多介绍什么是密度以及为什么密度不同于概率。再举一个关于机器学习的例子:你也可以用机器学习模型估计倾向性评分(propensity score),但需加倍小心。第d一,要确保机器学习模型能够输出校准过的概率预测。第二,需要采用折外预测(out-of-fold predictions)以避免过拟合所产生的偏差。这里仍然不解释机器学习模型是什么,也不解释机器学习模型输出校准过的预测是什么意思,过拟合是什么,折外预测又是什么。因为这些都是数据科学的基本概念,你应自行掌握。建议你阅读本书之前具备以下知识:? Python 基础知识,包括 pandas、NumPy、Matplotlib、scikit-learn 等最Z常用的数据科学库。即使你的专业是经济学,也不必担心会不会用好那些非常繁杂的代码。你只需要掌握基础知识就行。? 统计学基础概念,例如分布、概率、假设检验、回归、噪声、期待值、标准差以及独立性。第2 章将对统计学做一回顾,有助于新手学习。? 数据科学基础概念,例如机器学习模型、交叉验证、过拟合以及一些最Z常用的机器学习模型(梯度提升、决策树、线性回归、逻辑回归)。? 高等数学知识,例如函数、对数、根、矩阵、向量,以及导数和积分等大学数学知识。本书的主要对象你是各行各业的数据科学家。如果你是这样的人,那么肯定具备了前面提到的先决知识。而且请谨记,这样的受众很多,各自拥有很多不同的技能。因此,本书将提供一些面向高水平读者的备注、段落或章节。无需担心不理解本书的某些内容,你仍能够从书中受益匪浅。有时掌握了一些基础知识之后还可以再次阅读,重新认识。内容概要第d一部分介绍因果推断的基本概念。第d1 章介绍因果推断的关键概念,这些概念用于说明降价的效应。第2 章讨论A/B 测试(也称随机对照试验)的重要性,它不仅是决策工具,也是用于对标其他因果推断工具的黄金标准。该章也将回顾一些统计学概念。第3 章偏理论介绍,包括因果识别与图模型。该方法(按字面意思)确定关于因果过程的假设并明确如何理清因果关系。学完第d一部分的内容后,你应该具备了因果推断思考的基础。第二部分介绍从关联性理清因果性的两种方法:线性回归与倾向加权。第4章介绍线性回归,但以不同于为大多数数据科学家所熟悉的角度。将会了解到一种重要的偏差消除方法正交化。第5 章介绍倾向性评分与双重鲁棒估计。第三部分在第二部分的基础上介绍机器学习和大数据技术。因果推断可被视为个性化决策工具。通过食品配送服务应用示例,尝试了解应该给哪些客户提供折扣券以便提升他们的参与度,也了解哪些客户并不需要这些优惠。第6章介绍异质治疗效应问题。第7 章介绍机器学习与因果推断交叉融合的新进展。该章将学习T- 学习器、X- 学习器、S- 学习器,以及双重/ 去偏机器学习等方法,都结合个性化治疗问题加以阐述。第四部分考察引入时间维度的因果推断。有时人们拥有相同客户或市场多个时间段的记录数据,汇聚称作面板数据集。将学习如何利用面板去发现付费营销的实际影响,即使无法随机确定谁看到相关的广告。第8 章将介绍双重差分模型及其相关最Z新进展。第9 章介绍合成控制(及其变种),也是结合市场促销影响理解的问题。第五部分详细介绍不考虑随机性情况的替代实验设计方法。第d10 章介绍旨在找到治疗区域和控制区域的地理实验法和用于分析部位有限而又想确定治疗效果的回溯实验法。后者针对相同部位反复治疗和中止治疗。第d11 章介绍非遵从实验和工具变量法。该章也简单介绍不连续设计(discontinuity design,或断点设计)。排版约定本书采用以下排版约定。斜体(Italic)表示新术语、URL、电子邮件地址、文件名和文件扩展名。等宽字体(Constant Width)表示程序清单,在段落内表示程序元素,例如变量、函数名称、数据库、数据类型、环境变量、语句和关键字。粗体等宽字体(Constant width bold)表示应由用户原封不动输入的命令或其他文本。斜体等宽字体(Constant width italic)表示应该替换成用户提供值的文本,或者由上下文决定的值。代码示例使用本书的补充材料, 包括代码示例、练习等, 可从https://github.com/matheusfacure/causal-inference-in-python-code 处下载利用。使用代码示例,如遇到技术性问题,请反馈给邮箱support@oreilly.com。本书为你开展工作助一臂之力。通常情况下,如果代码示例随本书提供,那么你可以将其用于自己的程序和文档中。你不必联系我们以获得许可,除非你要复用大量的代码。例如,编写一段使用了本书几块代码段的程序无需获得许可。但是,出售或传播OReilly 书籍的代码示例则必须申请许可。引用本书知识回答问题以及引用代码示例不需要许可。将本书大量代码示例编入产品说明书则需要得到许可。我们欢迎(但不是强制要求)标明本书信息。这些信息通常包括书名、出版商以及ISBN 书号。例如,Causal Inference in Python,Matheus Facure(OReilly). Copyright 2023 Matheus Facure Alves, 978-1-098-14025-0。如果你觉得代码示例使用不合理或者没被许可,请通过邮件 permissions@oreilly.com 联系我们。OReilly 在线学习平台(OReilly Online Learning)近40 年来,OReilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。OReilly 的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及OReilly 和200 多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问http://oreilly.com。联系我们任何有关本书的意见或疑问,请按照以下地址联系出版社。美国:OReilly Media, Inc.1005 Gravenstein Highway NorthSebastopol, CA 95472中国:北京市西城区西直门南大街2号成铭大厦C座807室(100035)奥莱利技术咨询(北京)有限公司我们为本书专设网页,在上面列有勘误信息、示例以及其他信息。你可以访问网页,地址为https://oreil.ly/causal-inference-in-python。关于本书与课程的新闻与信息,请访问https://oreilly.com。我们的LinkedIn:https://linkedin.com/company/oreilly-media。我们的Twitter:https://twitter.com/oreillymedia。我们的YouTube:https://youtube.com/oreillymedia。致谢首先,感谢无所不能的编辑Virginia Wilson。感谢你的反应和耐心,没有你,可能也就无法成就本书。其次,感谢Nicole Butterfield 以及OReilly 的整个团队,支持我完成我的这本处女作并给予充分的信任。特别感谢Danny Elfanbaum 在写作过程中帮我解决了相关技术问题。作者感谢所有技术评阅人,他们付出宝贵的时间审阅了本书。感谢Laurence Wong 为本书提供了非常详细的评论以及指出完善之处。感谢Adrian Keister进行全书审阅后给出了非常中肯的意见,而且还运行了代码并提出了非常重要的修改建议。正是有了这些反馈。本书得到了明显的改进。感谢Jorge Reyes 千方百计地发现技术描述中难以发现的错误,既坦诚指出问题又不吝谬赞。感谢Roni Kobrosly 给予的提高本书易读性和趣味性的建议。感谢Subhasish Misra 的有益反馈,特别是关于第5 章的反馈意见。感谢Shawhin Talebi 建议增加一些密切相关的话题内容。感谢所有给予内容相关反馈的朋友。感谢Guilherme Jardim Duarte 帮忙审阅Pearlian causality 相关内容,特别是第3 章。感谢Henrique Lopes 和Juliano Garcia 帮忙审阅因果推断与商务应用的相关内容,第4 章、第6 章和第7 章因此得到了很大的改进。感谢Raphael Bruce 关于第4 章的直率而准确的意见反馈。感谢Luis Moneda 给予的专业支持、关于因果性的多次讨论,以及帮忙审阅第d1 章。统计学是门难度大的学科,感谢Denis Reis 审阅第2 章,从而让作者如释重负。技术类书籍的写作有时是孤勇的行为,正因为如此,本人为能得到很多令人高兴和尊重的专业人士的支持帮助而感到幸运万分。他们是Sean J. Taylor、Pedro H. C. SantAnna、Nick C. Huntington-Klein、Carlos Cinelli、Joshua Angrist 和Scott Cunningham。没有你们的善意反馈,作者可能早就放弃了。很荣幸从事这样有许多相互帮助和相互关心的研究人员的工作。非常感谢Kaspar Wthrich 耐心回答作者关于合成控制法的问题并审阅了合成控制t 测试章节。非常感谢Jinglong Zhao 在非传统试验设计方面的贡献,回答作者关于合成控制法和折返试验设计。感谢Peter Hull,在线性回归方面造诣颇深。感谢所有与作者交往过的学者们,他们让作者对因果性有了更深刻的认识:Pedro H. C. SantAnna、Carlos Cinelli、Nick C.Huntington-Klein 和Peter Hull。另外,感谢Nubank 公司的朋友和同事们,他们总是愿意与作者讨论最Z有趣最Z有挑战性的因果推断问题:Arthur Goes、Nilo Kruchelski、Pedro Igor、Tatyana Zabanova、Diandra Kubo、Pedro Bair?o、Fernanda Leal、Murilo Nicolau、Mariana Sanches、Victor Dalla、Euclides Filho、Guilherme Peixoto、Silvano Filho、Alexandre Floriano、Ana Ortega、Hector Lira、Lucas Estevam、Risk Slangen 和André Segalla。感谢Edigar Antonio Lutero Alves 审读全书并给予了精准的评论反馈,他是父亲也是榜样。感谢Elis Jord?o Stropa 始终与作者同在并支持作者的近乎疯狂的想法和项目。感谢她在本书写作期间特别是Francisco 出生后一如既往的耐心。她是位了不起的妻子和母亲。 Matheus Facure是Nubank的经济学家和高级数据科学家。他在很多商务场景成功应用了因果推断技术,从自动实时信用卡决策到交叉邮件与营销预算优化。 目录
你还可能感兴趣
我要评论
|