![]() ![]() |
基于Python的因果推斷 ![]() 本書將幫助讀者:學(xué)習(xí)如何理解因果推斷的基本概念。將業(yè)務(wù)問題定義為因果推斷問題。理解偏差如何干擾因果推斷。學(xué)習(xí)因果效應(yīng)如何能夠因人而異。將相同客戶不同時(shí)間的觀測(cè)用于因果推斷。在隨機(jī)化不可行的時(shí)候利用地理和回溯實(shí)驗(yàn)。檢驗(yàn)非遵從性偏差和效應(yīng)稀釋。 [巴西] 馬修斯 法庫爾(Matheus Facure) 前言想象自己是一名剛剛步入快速發(fā)展、前途光明的數(shù)據(jù)科學(xué)領(lǐng)域的新手。雖然尚未精通機(jī)器學(xué)習(xí)知識(shí),但你完全相信自己有這個(gè)能力。你可能已經(jīng)學(xué)完了幾門該領(lǐng)域的線上課程,甚至在Kaggle 平臺(tái)的數(shù)據(jù)挖掘和預(yù)測(cè)競賽中取得過不錯(cuò)的成績。你或許正在準(zhǔn)備甚至迫不及待地運(yùn)用所掌握的知識(shí)去解決實(shí)際問題。一切順風(fēng)順?biāo)。領(lǐng)導(dǎo)還會(huì)問:嗨,請(qǐng)算算我們實(shí)際取得了多少新增的客戶付費(fèi)營銷份額。剛開始的時(shí)候,的確我們看到有些客戶來自付費(fèi)營銷渠道,但是看上去在免費(fèi)應(yīng)用方面卻有下降。我們認(rèn)為,有些來自付費(fèi)營銷渠道的客戶即使不付費(fèi)也會(huì)來。這就意味著一個(gè)新的挑戰(zhàn),但是,這個(gè)挑戰(zhàn)是什么呢?你如何知道沒有付費(fèi)營銷將會(huì)發(fā)生什么呢?或許,在營銷活動(dòng)開始前后,你會(huì)比較免費(fèi)應(yīng)用和付費(fèi)應(yīng)用的總數(shù)。但是,在一個(gè)快速發(fā)展的公司里,你應(yīng)該如何才能知道營銷活動(dòng)改變不了什么(見圖2)?再換個(gè)話題,將自己當(dāng)作一名業(yè)內(nèi)大咖的風(fēng)險(xiǎn)分析師,剛受雇于一家貸款公司。首要任務(wù)是完善該公司的信用風(fēng)險(xiǎn)模型。目標(biāo)是建立一個(gè)自動(dòng)決策系統(tǒng),用于評(píng)估客戶信譽(yù)(為客戶擔(dān)保)并決定公司可以為客戶提供的貸款額度。當(dāng)然,系統(tǒng)的錯(cuò)誤將會(huì)導(dǎo)致嚴(yán)重的代價(jià),特別是如果給出的信貸額度過高的話。這樣的決策系統(tǒng),關(guān)鍵在于明確信貸額度對(duì)客戶違約可能性的影響程度?蛻裟芊窆芾泶箢~信貸?是否具備償還能力?是否會(huì)陷入過度支出和難以控制的債務(wù)危機(jī)?為了把握這些動(dòng)向,你首先應(yīng)該根據(jù)給出的貸款額度繪制信貸平均違約率曲線。出乎意料的是,數(shù)據(jù)顯示出非預(yù)期的結(jié)果,如圖3 所示。信用卡額度與信貸違約率看上去呈反比例關(guān)系。如何實(shí)現(xiàn)提高信貸額度而又能降低信貸違約風(fēng)險(xiǎn)呢?有理由懷疑,你會(huì)去跟其他分析師交流這個(gè)問題。答案很簡單也不意外:貸款公司將向違約概率小的客戶提供更多信貸。因此,提高信貸額度并不能降低違約風(fēng)險(xiǎn),事實(shí)正好相反。低違約風(fēng)險(xiǎn)會(huì)提高信貸額度。盡管如此,還是沒能解決最Z早的問題:如何根據(jù)數(shù)據(jù)建立信貸風(fēng)險(xiǎn)與信貸額度的關(guān)系模型。原本也并不指望系統(tǒng)知道更大的信貸額度意味著違約風(fēng)險(xiǎn)的降低。而且,僅僅為了看看結(jié)果如何而想當(dāng)然地在A/B 測(cè)試中隨機(jī)確定信貸額度,必定是徒勞無功的,因?yàn)殄e(cuò)誤的信貸額度決策,代價(jià)高昂。上述問題的共同點(diǎn)是,需要知道改變能夠控制的事情(營銷預(yù)算和信貸額度)如何影響希望得到的商務(wù)結(jié)果(客戶應(yīng)用和違約風(fēng)險(xiǎn))。影響或效果評(píng)價(jià)長期以來是現(xiàn)代科學(xué)的重要支柱,但直到最Z近,在將這些工具手段加以體系化,形成所謂因果推斷領(lǐng)域的方面,才取得了重大進(jìn)展。而機(jī)器學(xué)習(xí)的進(jìn)展以及對(duì)實(shí)現(xiàn)基于數(shù)據(jù)的決策自動(dòng)化的普遍意愿也將因果推斷引入工業(yè)部門和公共機(jī)構(gòu)。然而,因果推斷工具尚未廣泛被決策者或數(shù)據(jù)科學(xué)家們了解。為此,作者曾經(jīng)寫過一本名為《勇敢者與求真者的因果推斷》(CausalInference for the Brave and True)的在線圖書。該書以嚴(yán)謹(jǐn)而又不失輕松的方式介紹了因果推斷的傳統(tǒng)工具和最Z新進(jìn)展,而且全部附帶開源的Python 軟件。本書作者試圖再進(jìn)一步,從應(yīng)用角度論述所有相關(guān)內(nèi)容,不僅更新了示例,而且進(jìn)行了更直觀的解釋說明。作者希望本書能夠成為解決所有基于數(shù)據(jù)的決策問題的起點(diǎn)。前提要求本書是利用Python 實(shí)現(xiàn)的因果推斷的導(dǎo)論,但并不是一般的入門書。之所以是導(dǎo)論,是因?yàn)楸緯劢褂趹?yīng)用實(shí)踐,而不是關(guān)于因果推斷的嚴(yán)謹(jǐn)?shù)淖C明和定理。而且,本書作者更傾向于給出簡單而直觀的解釋說明,而不是完整的復(fù)雜的論述。之所以又不是一般的入門書,是因?yàn)樽髡呦M阋呀?jīng)具備關(guān)于機(jī)器學(xué)習(xí)、統(tǒng)計(jì)學(xué)和Python 編程的知識(shí)。內(nèi)容并不高深,但本書還是會(huì)涉及你應(yīng)該已掌握的一些概念和術(shù)語。例如,書中會(huì)有如下的文本描述:首先需要處理的是,連續(xù)型變量處處使得P(T=t)=0。原因在于,概率是密度曲線下面積,而單點(diǎn)的面積總為零。為了避免這種情況,可以用條件密度f(T|X) 代替條件概率P(T=t|X)。本書并不過多介紹什么是密度以及為什么密度不同于概率。再舉一個(gè)關(guān)于機(jī)器學(xué)習(xí)的例子:你也可以用機(jī)器學(xué)習(xí)模型估計(jì)傾向性評(píng)分(propensity score),但需加倍小心。第d一,要確保機(jī)器學(xué)習(xí)模型能夠輸出校準(zhǔn)過的概率預(yù)測(cè)。第二,需要采用折外預(yù)測(cè)(out-of-fold predictions)以避免過擬合所產(chǎn)生的偏差。這里仍然不解釋機(jī)器學(xué)習(xí)模型是什么,也不解釋機(jī)器學(xué)習(xí)模型輸出校準(zhǔn)過的預(yù)測(cè)是什么意思,過擬合是什么,折外預(yù)測(cè)又是什么。因?yàn)檫@些都是數(shù)據(jù)科學(xué)的基本概念,你應(yīng)自行掌握。建議你閱讀本書之前具備以下知識(shí):? Python 基礎(chǔ)知識(shí),包括 pandas、NumPy、Matplotlib、scikit-learn 等最Z常用的數(shù)據(jù)科學(xué)庫。即使你的專業(yè)是經(jīng)濟(jì)學(xué),也不必?fù)?dān)心會(huì)不會(huì)用好那些非常繁雜的代碼。你只需要掌握基礎(chǔ)知識(shí)就行。? 統(tǒng)計(jì)學(xué)基礎(chǔ)概念,例如分布、概率、假設(shè)檢驗(yàn)、回歸、噪聲、期待值、標(biāo)準(zhǔn)差以及獨(dú)立性。第2 章將對(duì)統(tǒng)計(jì)學(xué)做一回顧,有助于新手學(xué)習(xí)。? 數(shù)據(jù)科學(xué)基礎(chǔ)概念,例如機(jī)器學(xué)習(xí)模型、交叉驗(yàn)證、過擬合以及一些最Z常用的機(jī)器學(xué)習(xí)模型(梯度提升、決策樹、線性回歸、邏輯回歸)。? 高等數(shù)學(xué)知識(shí),例如函數(shù)、對(duì)數(shù)、根、矩陣、向量,以及導(dǎo)數(shù)和積分等大學(xué)數(shù)學(xué)知識(shí)。本書的主要對(duì)象你是各行各業(yè)的數(shù)據(jù)科學(xué)家。如果你是這樣的人,那么肯定具備了前面提到的先決知識(shí)。而且請(qǐng)謹(jǐn)記,這樣的受眾很多,各自擁有很多不同的技能。因此,本書將提供一些面向高水平讀者的備注、段落或章節(jié)。無需擔(dān)心不理解本書的某些內(nèi)容,你仍能夠從書中受益匪淺。有時(shí)掌握了一些基礎(chǔ)知識(shí)之后還可以再次閱讀,重新認(rèn)識(shí)。內(nèi)容概要第d一部分介紹因果推斷的基本概念。第d1 章介紹因果推斷的關(guān)鍵概念,這些概念用于說明降價(jià)的效應(yīng)。第2 章討論A/B 測(cè)試(也稱隨機(jī)對(duì)照試驗(yàn))的重要性,它不僅是決策工具,也是用于對(duì)標(biāo)其他因果推斷工具的黃金標(biāo)準(zhǔn)。該章也將回顧一些統(tǒng)計(jì)學(xué)概念。第3 章偏理論介紹,包括因果識(shí)別與圖模型。該方法(按字面意思)確定關(guān)于因果過程的假設(shè)并明確如何理清因果關(guān)系。學(xué)完第d一部分的內(nèi)容后,你應(yīng)該具備了因果推斷思考的基礎(chǔ)。第二部分介紹從關(guān)聯(lián)性理清因果性的兩種方法:線性回歸與傾向加權(quán)。第4章介紹線性回歸,但以不同于為大多數(shù)數(shù)據(jù)科學(xué)家所熟悉的角度。將會(huì)了解到一種重要的偏差消除方法正交化。第5 章介紹傾向性評(píng)分與雙重魯棒估計(jì)。第三部分在第二部分的基礎(chǔ)上介紹機(jī)器學(xué)習(xí)和大數(shù)據(jù)技術(shù)。因果推斷可被視為個(gè)性化決策工具。通過食品配送服務(wù)應(yīng)用示例,嘗試了解應(yīng)該給哪些客戶提供折扣券以便提升他們的參與度,也了解哪些客戶并不需要這些優(yōu)惠。第6章介紹異質(zhì)治療效應(yīng)問題。第7 章介紹機(jī)器學(xué)習(xí)與因果推斷交叉融合的新進(jìn)展。該章將學(xué)習(xí)T- 學(xué)習(xí)器、X- 學(xué)習(xí)器、S- 學(xué)習(xí)器,以及雙重/ 去偏機(jī)器學(xué)習(xí)等方法,都結(jié)合個(gè)性化治療問題加以闡述。第四部分考察引入時(shí)間維度的因果推斷。有時(shí)人們擁有相同客戶或市場(chǎng)多個(gè)時(shí)間段的記錄數(shù)據(jù),匯聚稱作面板數(shù)據(jù)集。將學(xué)習(xí)如何利用面板去發(fā)現(xiàn)付費(fèi)營銷的實(shí)際影響,即使無法隨機(jī)確定誰看到相關(guān)的廣告。第8 章將介紹雙重差分模型及其相關(guān)最Z新進(jìn)展。第9 章介紹合成控制(及其變種),也是結(jié)合市場(chǎng)促銷影響理解的問題。第五部分詳細(xì)介紹不考慮隨機(jī)性情況的替代實(shí)驗(yàn)設(shè)計(jì)方法。第d10 章介紹旨在找到治療區(qū)域和控制區(qū)域的地理實(shí)驗(yàn)法和用于分析部位有限而又想確定治療效果的回溯實(shí)驗(yàn)法。后者針對(duì)相同部位反復(fù)治療和中止治療。第d11 章介紹非遵從實(shí)驗(yàn)和工具變量法。該章也簡單介紹不連續(xù)設(shè)計(jì)(discontinuity design,或斷點(diǎn)設(shè)計(jì))。排版約定本書采用以下排版約定。斜體(Italic)表示新術(shù)語、URL、電子郵件地址、文件名和文件擴(kuò)展名。等寬字體(Constant Width)表示程序清單,在段落內(nèi)表示程序元素,例如變量、函數(shù)名稱、數(shù)據(jù)庫、數(shù)據(jù)類型、環(huán)境變量、語句和關(guān)鍵字。粗體等寬字體(Constant width bold)表示應(yīng)由用戶原封不動(dòng)輸入的命令或其他文本。斜體等寬字體(Constant width italic)表示應(yīng)該替換成用戶提供值的文本,或者由上下文決定的值。代碼示例使用本書的補(bǔ)充材料, 包括代碼示例、練習(xí)等, 可從https://github.com/matheusfacure/causal-inference-in-python-code 處下載利用。使用代碼示例,如遇到技術(shù)性問題,請(qǐng)反饋給郵箱support@oreilly.com。本書為你開展工作助一臂之力。通常情況下,如果代碼示例隨本書提供,那么你可以將其用于自己的程序和文檔中。你不必聯(lián)系我們以獲得許可,除非你要復(fù)用大量的代碼。例如,編寫一段使用了本書幾塊代碼段的程序無需獲得許可。但是,出售或傳播OReilly 書籍的代碼示例則必須申請(qǐng)?jiān)S可。引用本書知識(shí)回答問題以及引用代碼示例不需要許可。將本書大量代碼示例編入產(chǎn)品說明書則需要得到許可。我們歡迎(但不是強(qiáng)制要求)標(biāo)明本書信息。這些信息通常包括書名、出版商以及ISBN 書號(hào)。例如,Causal Inference in Python,Matheus Facure(OReilly). Copyright 2023 Matheus Facure Alves, 978-1-098-14025-0。如果你覺得代碼示例使用不合理或者沒被許可,請(qǐng)通過郵件 permissions@oreilly.com 聯(lián)系我們。OReilly 在線學(xué)習(xí)平臺(tái)(OReilly Online Learning)近40 年來,OReilly Media 致力于提供技術(shù)和商業(yè)培訓(xùn)、知識(shí)和卓越見解,來幫助眾多公司取得成功。我們擁有獨(dú)一無二的專家和革新者組成的龐大網(wǎng)絡(luò),他們通過圖書、文章、會(huì)議和我們的在線學(xué)習(xí)平臺(tái)分享他們的知識(shí)和經(jīng)驗(yàn)。OReilly 的在線學(xué)習(xí)平臺(tái)允許你按需訪問現(xiàn)場(chǎng)培訓(xùn)課程、深入的學(xué)習(xí)路徑、交互式編程環(huán)境,以及OReilly 和200 多家其他出版商提供的大量文本和視頻資源。有關(guān)的更多信息,請(qǐng)?jiān)L問http://oreilly.com。聯(lián)系我們?nèi)魏斡嘘P(guān)本書的意見或疑問,請(qǐng)按照以下地址聯(lián)系出版社。美國:OReilly Media, Inc.1005 Gravenstein Highway NorthSebastopol, CA 95472中國:北京市西城區(qū)西直門南大街2號(hào)成銘大廈C座807室(100035)奧萊利技術(shù)咨詢(北京)有限公司我們?yōu)楸緯鴮TO(shè)網(wǎng)頁,在上面列有勘誤信息、示例以及其他信息。你可以訪問網(wǎng)頁,地址為https://oreil.ly/causal-inference-in-python。關(guān)于本書與課程的新聞與信息,請(qǐng)?jiān)L問https://oreilly.com。我們的LinkedIn:https://linkedin.com/company/oreilly-media。我們的Twitter:https://twitter.com/oreillymedia。我們的YouTube:https://youtube.com/oreillymedia。致謝首先,感謝無所不能的編輯Virginia Wilson。感謝你的反應(yīng)和耐心,沒有你,可能也就無法成就本書。其次,感謝Nicole Butterfield 以及OReilly 的整個(gè)團(tuán)隊(duì),支持我完成我的這本處女作并給予充分的信任。特別感謝Danny Elfanbaum 在寫作過程中幫我解決了相關(guān)技術(shù)問題。作者感謝所有技術(shù)評(píng)閱人,他們付出寶貴的時(shí)間審閱了本書。感謝Laurence Wong 為本書提供了非常詳細(xì)的評(píng)論以及指出完善之處。感謝Adrian Keister進(jìn)行全書審閱后給出了非常中肯的意見,而且還運(yùn)行了代碼并提出了非常重要的修改建議。正是有了這些反饋。本書得到了明顯的改進(jìn)。感謝Jorge Reyes 千方百計(jì)地發(fā)現(xiàn)技術(shù)描述中難以發(fā)現(xiàn)的錯(cuò)誤,既坦誠指出問題又不吝謬贊。感謝Roni Kobrosly 給予的提高本書易讀性和趣味性的建議。感謝Subhasish Misra 的有益反饋,特別是關(guān)于第5 章的反饋意見。感謝Shawhin Talebi 建議增加一些密切相關(guān)的話題內(nèi)容。感謝所有給予內(nèi)容相關(guān)反饋的朋友。感謝Guilherme Jardim Duarte 幫忙審閱Pearlian causality 相關(guān)內(nèi)容,特別是第3 章。感謝Henrique Lopes 和Juliano Garcia 幫忙審閱因果推斷與商務(wù)應(yīng)用的相關(guān)內(nèi)容,第4 章、第6 章和第7 章因此得到了很大的改進(jìn)。感謝Raphael Bruce 關(guān)于第4 章的直率而準(zhǔn)確的意見反饋。感謝Luis Moneda 給予的專業(yè)支持、關(guān)于因果性的多次討論,以及幫忙審閱第d1 章。統(tǒng)計(jì)學(xué)是門難度大的學(xué)科,感謝Denis Reis 審閱第2 章,從而讓作者如釋重負(fù)。技術(shù)類書籍的寫作有時(shí)是孤勇的行為,正因?yàn)槿绱耍救藶槟艿玫胶芏嗔钊烁吲d和尊重的專業(yè)人士的支持幫助而感到幸運(yùn)萬分。他們是Sean J. Taylor、Pedro H. C. SantAnna、Nick C. Huntington-Klein、Carlos Cinelli、Joshua Angrist 和Scott Cunningham。沒有你們的善意反饋,作者可能早就放棄了。很榮幸從事這樣有許多相互幫助和相互關(guān)心的研究人員的工作。非常感謝Kaspar Wthrich 耐心回答作者關(guān)于合成控制法的問題并審閱了合成控制t 測(cè)試章節(jié)。非常感謝Jinglong Zhao 在非傳統(tǒng)試驗(yàn)設(shè)計(jì)方面的貢獻(xiàn),回答作者關(guān)于合成控制法和折返試驗(yàn)設(shè)計(jì)。感謝Peter Hull,在線性回歸方面造詣?lì)H深。感謝所有與作者交往過的學(xué)者們,他們讓作者對(duì)因果性有了更深刻的認(rèn)識(shí):Pedro H. C. SantAnna、Carlos Cinelli、Nick C.Huntington-Klein 和Peter Hull。另外,感謝Nubank 公司的朋友和同事們,他們總是愿意與作者討論最Z有趣最Z有挑戰(zhàn)性的因果推斷問題: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 審讀全書并給予了精準(zhǔn)的評(píng)論反饋,他是父親也是榜樣。感謝Elis Jord?o Stropa 始終與作者同在并支持作者的近乎瘋狂的想法和項(xiàng)目。感謝她在本書寫作期間特別是Francisco 出生后一如既往的耐心。她是位了不起的妻子和母親。 Matheus Facure是Nubank的經(jīng)濟(jì)學(xué)家和高級(jí)數(shù)據(jù)科學(xué)家。他在很多商務(wù)場(chǎng)景成功應(yīng)用了因果推斷技術(shù),從自動(dòng)實(shí)時(shí)信用卡決策到交叉郵件與營銷預(yù)算優(yōu)化。 目錄
你還可能感興趣
我要評(píng)論
|