◆ ◆ ◆
前言
事實證明用資料從事一些非常合理的事情是非常容易的,比如求合,做切片,求均值等,而得出的答案卻有2000%的錯誤!在這篇文章中,我想通過使用一些非常簡單,直覺的圖檔來說明為什麼是這樣的。為了解決這個問題,我們用由judea pearl(其他提出者之一)提出的架構來設計一個非常棒的通用模型。
什麼是偏倚?
什麼原因導緻了偏倚?我們如何去糾正它,我們如何去用圖表示出影響偏差的因子?要回答這些問題,我們從一些教科書中的例子開始講,比如下雨和人行道之間關系的例子。我們在文末會回過頭來談論關于“災禍”的例子,并且将這個例子和一個叫“線上活動偏倚”相比較。
關于潮濕的人行道的故事
judea pearl在他論述悖論的文章中通篇用了一個簡單且直覺的例子。這裡,我們引用他舉的例子,主要是因為這個例子直覺明了,接着再談論其他一些我們更關注的例子。
1
人行道是如何變濕的。上面的圓圈表示“潮濕”;下面的圓圈左邊表示“雨水”;右邊表示“噴水裝置”。
在這個例子中,我們檢測的是什麼原因導緻濕着的人行道。我們有一個噴水裝置,這個定時灑水裝置會在設定的時間點噴水弄濕人行道。我們當然也知道,任何時候隻要下雨,人行道就會變濕。我們每天記錄這三個變量,并得出了一個有效的資料組。我們得出的圖解總結一個通用的模型,而且它也表明了一種合理性的檢查方式,我們可以通過檢查了解下雨是否和正在灑水的噴水裝置有關聯。當我們基于所假設的資料組這麼檢查時,我們發現事情并沒有什麼問題。每件事情看起來都是對的。
現在我們回過頭來考慮之前已經思考過的問題,如果我知道(1)人行道是濕的,并且我知道(2)并沒有下雨。那這樣的話,這告訴我了什麼?有沒有告訴我噴水裝置是開着的呢?
如果我們把人行道是濕着的一個理由去掉(我們知道并沒有下雨),那麼其它的解釋就變得更有可能。如果你知道人行道是濕的,又了解到天并沒有下雨,這時你就知道灑水裝置是開着的。在我們知道人行道是濕着的情況下,灑水裝置和雨水,這兩個變量在資料上變得互相依賴。讓我們花些時間來試圖明白是怎麼一回事,這會有什麼不好的影響。
如果我們把資料隻限制于人行道是濕着的那麼幾天,我們會發現下雨與開了噴水裝置之間是負相關的。這個情況發生的原因,我們已經提及過,那就是,如果人行道是濕的,而且沒有下雨,那麼噴水裝置就可能被打開了。如果人行道是濕的,而噴水裝置沒有打開,那麼就可能是下雨了。即便這兩者之間在原先的資料上沒有關聯,但是在這些被限制了條件的資料中這些資料是負相關的。
這個情況的出現是因為我們不是單純地無拘束地在檢驗,而是在我們已經一部分地了解了世界是如何運作的。如果“人行道是濕的”并且“天沒有下雨”,那麼,“噴水裝置就可能是開着的”。像這樣的陳述句“如果…就…”被稱為“條件性”陳述。當我們對已知的某些事物進行推理(把這部分是放在在“如果”之後,“就”之前),那麼,這部分就是我們所說的“條件性”認知。我們會明白那個條件的意思而卻沒有意識到它會制造偏倚,這個偏倚甚至是會帶來極端錯誤的結論的。
事實上,一般情況下這樣的影響會發生,你也可以根據這些圖來考慮它。當我們假設兩個原因産生一個共同的影響,那麼這兩個原因之間就會發生關聯,即便它們本來沒有任何聯系!這個悖論被稱為“伯克森悖論”(berkson’s paradox)。看這圖表,我們比較容發現共同效應,即從所産生的影響向上找尋變量,以共同結果的産生這一條件為基礎,其所有的上遊變量可以變得互相依賴。
要了解本文的剩餘部分不一定需要明白以下兩句話的意思,但對任何一位對此感興趣的人,我們可以用數學術語來解釋。噴水裝置和雨水是各自獨立的變量,但是基于特定條件,它們兩者會相關聯。條件獨立性并不意味着變量就是獨立的,同樣,變量是獨立的也并不意味着基于條件變得獨立。
現在,我們就可以明白同樣的結構是如何産生偏倚,且這屬于在實驗中是很容易産生的一種現象。
數學呆子是不是不善于社交?
假設,你正在申請一個工作,隻要你有非常好的社交技能(而且專業能力上也還過得去),或是你有非常好的專業技能(且社交能力還算合格),這個公司都會雇傭你。你可能這兩者都有,但是擁有這兩個非常好的技能中其中一個是必要條件。這看起來有點像圖2中的樣子,看着,是不是覺得熟悉?
2
如何被雇傭。上面的圓圈表示“被雇傭”;下面的圓圈左邊表示“社交的”,右邊表示“專業的”。
在公司裡看到這些同僚的時候,你隻會意識到這些人是已被雇傭,很可能,你自己都沒有意識到他們是社交或者專業技術不錯的這個前提背景,你已經假設了裡每一個人都被雇傭的事實(想想:人行道是濕着的)。在這樣的背景下,認識一個有很好社交能力的人,那麼這個人就不太可能有32個贊的專業能力(反之亦然),然而這兩者放在整個人群中去考慮,是沒有關聯的。
這樣的結果将真實的偏差引進了實驗中。假設你正在網上做線上調研(即便是随機的ab測試),你會預設這位被測試者已經通路過你的網站。假設你正在大學做個調查,你會預設在學校的每一位同學都已入學.這種預設可能産生了偏倚。基于這種條件下産生的偏倚,被稱為“選擇偏差”。但這種情況更糟糕的是,即便我們是以已經被雇傭比如職務名稱或者部門(比如,我們調研一個部門裡所有成員)作為先決條件,也同樣産生偏倚。那是因為,從下遊的影響出發去假設條件也會産生偏倚。
從這些例子,你得出這樣一個結論:條件假設是一個非常可怕的事情。不幸的是,也存在着一些案例表明,條件假設事實上糾正了偏倚,然而這樣的偏倚是你即便不假設條件,你也會有的偏倚。
那怎麼辦呢?淡定
事實證明,圖畫是關鍵。之前我們談論的偏倚是由不同的原因産生相同的結果造成的(箭頭的方向是同時指向結果的)。現在我們把箭頭的方向調轉一下,讨論由相同的原因産生不同影響的過程中引起的偏倚(箭頭的方向從條件分開指向不同的原因)。
3
考慮上一次提到過的“災禍”的例子(簡化版),圖3描述了“災禍”可能導緻交通問題,也可能導緻報警系統響個不停(直到沒有電源)。但這兩個原因是互相獨立的。
即使交通問題和報警系統響個不停不存在因果關系,但他們兩個之間确實存在相關性!如果有災禍,就會導緻交通問題,我的報警系統也會一直響。拔出報警系統不會對車外的交通産生影響,就像由于體育比賽導緻的交通堵塞也不會讓我車内的報警系統響個不停。這是一個僞相關,并且是由一個共同的原因導緻的,是災禍導緻了交通和報警系統的問題。
我們應該怎麼做才能解決這個僞相關?答案就在于條件!如果資料中沒有災禍這個條件,報警系統會不會停和有沒有交通問題根本是沒有關聯。同理,如果我知道有災禍發生而且報警系統沒有停,并沒有給我額外的關于有沒有交通問題的資訊(因為我已經知道了已經有一個災禍),我們同樣是無法判斷說是否有交通問題。
現實生活中的偏倚
由共同的原因導緻的偏倚叫做“混雜”,并且在現實世界中這才是普遍現象。這正是在介紹部分我們提到的2000%偏倚的原因。真實的情況看起來更像圖4。這也是為什麼單純地把目标根據某種屬性(例如:文章類别)分組并比較平均值(例如:每篇文章的分享數)是不對的。
4
這幅圖表達的是我們想知道人們有沒有在網上搜尋某種商品。我們想知道一條廣告有多麼有效,是以我們就想探知看一條廣告和搜尋相關商品這兩個行為的因果關系。不幸的是這兩個行為有一個共同的原因。如果你是一個活躍的網際網路使用者,那你有更高的可能性會看廣告,同時也有更高的可能性會搜尋商品(與你是否看到廣告無關)。這類偏倚叫做“活動偏倚”,并且如果你沒有把這種偏倚考慮在内的話,得到的關于廣告有效性的結果會比真實情況大200倍左右。
慶幸的是,實驗可以幫忙減輕這個問題。如果你随機挑選誰會看到這條廣告,也就相當于打破了網際網路活躍度和看到這條廣告之間的關系。換句話說,你把圖中連接配接“活躍”和“看到廣告”的那條線移除了。這其實是一個需要有獨立的文章來更深入探讨的概念,當然在以後我們會做的!
你同樣也可以通過設立條件來移除偏倚,但這取決于用來衡量活動的标準好不好。實驗總是首選,退而求其次便是設立條件。我也會在以後的文章中更深入的讨論設立條件的不同辦法。現在我們隻是有一個大概的結論。
到底我們要不要設定條件呢?
之前的論述表明:當你給一個共同的結果設定條件,或是沒有給一個共同的起因設定條件,偏倚就會産生,反之亦然。根據“後門準則”我們知道在給定一個很完整的世界藍圖的時候,什麼應該設定條件,什麼不該設定條件。
有兩個标準:(1)不給共同的結果設定條件,(2)給共同的起因設定條件。這就奠定了我們應用後門準則作為解決方案的基礎,但是正如剛剛提到的,了解一個很完整的世界藍圖是一個很重要的前提。
這就給我們留下一個值得思考的問題:如何才能做到科學。
如果我們努力建構一個世界藍圖,并找到正确的事情加以條件,這樣我們就可以預估到任何我們想要的結果了麼?這個世界是基本上靜止的,并且這個藍圖變化的很慢,足以讓我們用之上的方法麼?還是說永遠都會是一個一次性的實驗,每一次當我們有需要的時候才會重新預估結果?如果我們采用後一種辦法,從行動的角度來看還是可行的。
你應該會已經發現了,這種給“正确”的變量設定條件的辦法與通常我們把所有資料一股腦的放進機器學習的辦法形成鮮明對比。這也是一個值得更深入探讨的話題。
事實證明,如果你真的想要一個“預測”模型,可能應用後門法則會比使用所有曆史資料進行機器學習的辦法更好。你可以自己多多去嘗試,隻是要注意不要把各種結果和影響放進模型裡面,這也是“幹預”和“觀察不同的地方”。當然,就這點也值得另外一篇文章來深入探讨。
原文釋出時間為:2016-08-16
本文來自雲栖社群合作夥伴“大資料文摘”,了解相關資訊可以關注“bigdatadigest”微信公衆号