從迴歸看機器學習(預測)與經濟學(因果推論)的差異
學機器學習或統計學/計量經濟學時, 都 會學到迴歸模型, 但兩邊對迴歸模型的詮釋與用途, 截然不同, 光從兩邊使用的術語, 討論的概念, 就不禁讓人懷疑, 這兩個領域討論的是同一個迴歸模型嗎? 譬如機器學習講到迴歸時, 會討論到模型是否有過度擬合(overfitting)的問題, 但翻開統計學課本, 很少看到這個術語。反之, 在統計學裡花了很大的篇幅在說明顯著性檢定的原理, 但機器學習卻完全不討論。
兩個領域對迴歸模型的看法, 其實對應了資料分析的兩種目的: 預測與因果推論。
對機器學習來說, 關心的是預測, 譬如說未來一週的股價是多少。對經濟學來說, 關心的是因果推論, 譬如說貨幣政策對股價的影響。雖然在日常語境裡, 預測跟因果推論常常混在一起使用, 譬如了解貨幣政策對股價的影響, 可以讓我們更精確地預測出未來一週的股價, 但我認為我們可以根據資料分析的目的, 對預測與因果推論做出更細緻的定義。理解因果關係的目的是為了改變結果, 或評估政策對結果的影響, 譬如中央銀行有能力調整利率, 所以想知道利率會怎麼影響股價。而預測的目的則相反, 它將預測結果視為無法改變的事實, 單純對預測結果加以利用, 或做出反應, 譬如我們無法改變股價, 但可以根據股價預測的結果決定投資策略。
我們也可以從數學的角度來看預測與因果推論的差異, 以最一般化的迴歸式為例,
對經濟學來說, 迴歸式隱含著「 會影響 」的因果關係, 它關心的是 的變動對 的影響, 以數學形式表達就是想知道 的正負值與大小; 而對機器學習來說, 它關心的是給定 , 能不能精確地預測或猜出 的值是多少, 至於 與 之間有什麼關係, 如何互相影響, 則不是重點(雖然現在也開始關心機器學習的可解釋性)。
雖然在操作模型時, 任何變數都可以放到 或 的位置, 但意義完全不同。以年薪與年齡為例, 我們可以用一個人的年薪來猜測他的年齡(能不能猜得準是另一回事), 所以在機器學習的世界裡, 是有意義的; 但年薪不可能影響一個人的年齡(雖然有可能影響壽命), 所以經濟學會把迴歸式寫成 , 因為年齡才可以影響年薪。
理解預測與因果推論的差異, 會決定你使用什麼工具來處理你的資料, 以及資料能不能回答你的問題。機器學習可以很好地從 猜出 (當然我們還要注意過度擬合的問題), 而經濟學則有許多工具來處理因果推論, 譬如 DID(difference in difference), RDD(regression discontinuity design), RCT(randomized controlled trial)。
實務上常遇到的問題, 是誤將因果推論問題, 當成預測問題。譬如說, 廠商在經營會員時, 很常見的資料分析是預測會員的流失率, 這就是典型的將因果推論問題, 誤解為預測問題。怎麼說呢? 如前所言, 預測是將預測的結果視為無法改變的事實, 從而對預測結果做出反應。廠商雖然也是對預測結果做出反應, 譬如對高流失率的會員設計不同優惠方案, 但 這其實是想降低流失率, 而不是將預測結果當成無法改變的事實。所以廠商真正的需求是分析優惠方案對流失率的影響, 這本質上是因果推論問題, 而非預測問題。
把因果推論問題當成預測問題處理, 除了可能選錯分析工具之外, 還有另一個陷阱, 就是誤以為預測的準確率很重要。廠商真正的目標是找出降低流失率的方法, 但一般來說, 因果推論對資料的要求會比預測更高。譬如資料裡面如果完全沒有優惠方案的紀錄, 那自然無法推論不同優惠方案會怎麼影響流失率。或許也是因為資料問題, 雖然廠商真正想知道的是如何減少流失率, 但只能先從預測流失率下手, 將高流失率客群標記出來。但廠商應該提醒自己, 不要過度關注預測的準確率, 畢竟對錯誤的問題給精確的答案, 不如對正確的問題給個不精確的猜測。比起提升預測的正確率, 建議多做些 A/B 測試, 收集對因果推論有幫助的資料。