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