
你有沒有遇到過這種情況:辛辛苦苦收回來的問卷,有些問題壓根沒人填?或者公司系統(tǒng)導(dǎo)出的報(bào)表,某幾天的數(shù)據(jù)莫名其妙消失了?在數(shù)據(jù)統(tǒng)計(jì)這個(gè)領(lǐng)域,我們把這種情況叫做"缺失數(shù)據(jù)"。聽起來挺煩人的對吧?但實(shí)際上,缺失數(shù)據(jù)是再正常不過的事情——畢竟,讓每個(gè)人都完完整整地回答所有問題,讓每個(gè)系統(tǒng)都一刻不停地完美運(yùn)行,這本身就是一種理想狀態(tài)。
作為一家深耕醫(yī)學(xué)翻譯和本地化服務(wù)的公司,康茂峰在處理客戶項(xiàng)目數(shù)據(jù)時(shí),也經(jīng)常要和各種"不完美"的數(shù)據(jù)打交道。今天我想跟大伙兒聊聊,數(shù)據(jù)統(tǒng)計(jì)服務(wù)到底是怎么處理這些缺失數(shù)據(jù)的。保證通俗易懂,不整那些云山霧繞的概念。
在說怎么處理之前,咱們得先搞清楚數(shù)據(jù)是怎么丟的。這就好比醫(yī)生看病,你得先知道病因,才能對癥下藥。缺失數(shù)據(jù)的成因大致可以分成幾類,理解這些分類,后面的處理方法才說得通。
第一類情況挺常見的,就是受訪者或者錄數(shù)據(jù)的人馬虎了。比如做問卷調(diào)查,問到收入、職業(yè)敏感問題的時(shí)候,很多人就空著不填了。這種情況我們叫它"隨機(jī)缺失",聽起來好像挺隨機(jī)的,但其實(shí)背后有規(guī)律——收入越高的人越不想填,單位福利越好的人越不在乎填。這種偏好性的缺失,會(huì)讓剩下的數(shù)據(jù)變得不均衡,分析出來的結(jié)果自然就有偏差。
第二類情況更像是"系統(tǒng)性缺席"。比如某一批次的問卷印刷出了問題,漏印了一道題,那整批問卷這道題都沒數(shù)據(jù)。再比如某個(gè)地區(qū)的調(diào)查員特別不靠譜,敷衍了事,那這個(gè)地區(qū)的數(shù)據(jù)質(zhì)量就普遍不行。這種缺失就不是隨機(jī)的問題了,而是整個(gè)數(shù)據(jù)采集環(huán)節(jié)出了bug。
第三類情況稍微復(fù)雜一點(diǎn),叫做"設(shè)計(jì)性缺失"。什么意思呢?有些問題就是故意不問的。比如調(diào)查學(xué)歷的時(shí)候,如果選擇了"無學(xué)歷"這個(gè)選項(xiàng),后面的"畢業(yè)院校""專業(yè)方向"自然就不用填了。這種缺失是設(shè)計(jì)問卷的時(shí)候就計(jì)劃好的,處理起來反而最簡單。
最后一類說起來有點(diǎn)無奈,就是數(shù)據(jù)自己"跑丟"了。系統(tǒng)升級(jí)的時(shí)候數(shù)據(jù)沒遷移完整,硬盤壞了數(shù)據(jù)丟失,整理表格的時(shí)候手滑刪錯(cuò)了行——這些都是技術(shù)層面的問題。有經(jīng)驗(yàn)的統(tǒng)計(jì)人員一看數(shù)據(jù)缺口的位置和模式,基本就能判斷出是哪種原因造成的。

好,知道了數(shù)據(jù)是怎么丟的,接下來就說說怎么處理。數(shù)據(jù)統(tǒng)計(jì)服務(wù)通常有幾種套路,每種套路適用的情況不一樣,選錯(cuò)了方法,數(shù)據(jù)分析的結(jié)果可能差之毫厘謬以千里。
最簡單粗暴的方法是什么都不做,直接把有缺失的那幾行刪掉。聽起來有點(diǎn)不靠譜對吧?但實(shí)際上,如果缺失的數(shù)據(jù)量很小,比如1000個(gè)樣本里只有10個(gè)有問題,那刪掉這幾條影響確實(shí)不大。而且操作簡單,不會(huì)引入人為誤差。不過這種方法有個(gè)前提——缺失的數(shù)據(jù)得是"隨機(jī)缺失",也就是這些缺失的記錄和其他完整記錄在本質(zhì)上沒什么區(qū)別。如果缺失的那些人本身就是一群特殊的存在,刪掉他們就會(huì)讓樣本失去代表性。
第二種方法叫均值填補(bǔ)。啥意思呢?就是把缺失的值用這個(gè)變量的平均值來代替。比如調(diào)查年齡的時(shí)候,有5個(gè)人沒填,而整體平均年齡是32歲,那就把這5個(gè)人的年齡都記作32歲。這種方法比直接刪數(shù)據(jù)"損失"小,至少樣本量保住了。但問題也很明顯——它會(huì)人為地降低數(shù)據(jù)的變異性。想象一下,如果真實(shí)數(shù)據(jù)里年輕人的比例其實(shí)很高,用均值一填,年輕和年老的比例就被拉平了,分析結(jié)論自然就有偏差。所以均值填補(bǔ)通常只適合那種對精確度要求不高、快速出結(jié)果的分析場景。
第三種方法稍微高級(jí)一點(diǎn),叫中位數(shù)或者眾數(shù)填補(bǔ)。跟均值填補(bǔ)的道理差不多,但用的是中位數(shù)或者出現(xiàn)次數(shù)最多的值來填充。什么情況下用這個(gè)呢?當(dāng)數(shù)據(jù)分布特別偏的時(shí)候。比如財(cái)富調(diào)查,大部分人年收入在10到30萬之間,但有幾個(gè)超級(jí)富豪把平均數(shù)拉得老高,這時(shí)候用均值就不合適了,中位數(shù)反而更能代表"大多數(shù)人的水平"。處理收入、房價(jià)這類偏態(tài)分布的數(shù)據(jù)時(shí),中位數(shù)填補(bǔ)比均值填補(bǔ)更穩(wěn)妥。
還有一種方法在學(xué)術(shù)研究里用得比較多,叫做多重插補(bǔ)。這個(gè)方法的核心思想是:既然我們不知道真實(shí)值是啥,那干脆多猜幾次,每次猜一個(gè)合理的值,然后看不同猜測下得出的結(jié)論是不是一致的。比如某個(gè)人的收入缺失了,我們根據(jù)他的職業(yè)、地區(qū)、教育背景,推測他的收入可能在15萬到20萬之間。那我們就隨機(jī)猜幾個(gè)值填進(jìn)去,分別做分析,最后把多次分析的結(jié)果綜合起來。這種方法聽起來很麻煩,但確實(shí)能更好地反映數(shù)據(jù)的不確定性,比那種只填一個(gè)確定值的方法科學(xué)得多。
說到這兒,我想起康茂峰在實(shí)際項(xiàng)目中的幾個(gè)案例,可能對大家理解這些方法的應(yīng)用有點(diǎn)幫助。
之前我們做一個(gè)醫(yī)學(xué)會(huì)議的用戶滿意度調(diào)查,收回來大概3000多份問卷。結(jié)果發(fā)現(xiàn)有一個(gè)多選題——"您對會(huì)議內(nèi)容的哪些方面最滿意"——有將近20%的人沒有作答。一開始我們還挺著急的,20%可不是個(gè)小數(shù)目。后來分析了一下,發(fā)現(xiàn)這個(gè)多選題的位置比較特殊,放在了問卷比較靠后的地方,而且需要滾動(dòng)頁面才能看到。有可能一些受訪者做到這兒就煩了,懶得往下看就提交了。

這種情況屬于典型的"與問卷設(shè)計(jì)有關(guān)的缺失",不是隨機(jī)缺失。那怎么辦?我們采取了一個(gè)策略:把這20%的缺失標(biāo)記為"信息未知",在后續(xù)分析中分層處理。比如對比作答者和未作答者在其他問題上的回答差異,看看兩組人在整體滿意度、推薦意愿這些關(guān)鍵指標(biāo)上有沒有顯著不同。如果差異不顯著,說明缺失可能是隨機(jī)的,分析時(shí)可以把這部分當(dāng)作"不特別滿意"來處理;如果差異顯著,那就說明這背后有文章,需要在報(bào)告里專門討論這部分人群可能的特點(diǎn)。
還有一個(gè)例子是我們處理客戶項(xiàng)目數(shù)據(jù)的時(shí)候遇到的。某個(gè)長期合作的醫(yī)藥企業(yè)客戶,需要統(tǒng)計(jì)他們?nèi)蚋鲄^(qū)域辦事處的響應(yīng)效率。數(shù)據(jù)導(dǎo)出來之后,發(fā)現(xiàn)有兩個(gè)月的"響應(yīng)時(shí)間"字段有不少空值。仔細(xì)一查,是那段時(shí)間系統(tǒng)升級(jí),有幾個(gè)區(qū)域的響應(yīng)數(shù)據(jù)沒傳上來。
這種情況下缺失的原因很明確,是技術(shù)問題。那處理方法也就相對清晰了。首先,我們沒有用均值或者中位數(shù)來填充這兩個(gè)月的缺失值,因?yàn)樘畛涞闹禃?huì)影響整體趨勢的判斷。其次,我們把這部分缺失標(biāo)注為"系統(tǒng)原因?qū)е碌娜笔?,在報(bào)告的可視化圖表里用灰色色塊或者斷點(diǎn)來表示,讓看報(bào)告的人一眼就知道這段時(shí)間數(shù)據(jù)不完整。最后,在計(jì)算平均響應(yīng)時(shí)間的時(shí)候,我們把這兩個(gè)月排除在外,或者單獨(dú)標(biāo)注"不含系統(tǒng)升級(jí)期間的數(shù)據(jù)"。這樣做的好處是保證了數(shù)據(jù)的真實(shí)性和可追溯性,避免了用虛假數(shù)據(jù)誤導(dǎo)決策。
雖然處理缺失數(shù)據(jù)的方法看起來就那么幾種,但在實(shí)際操作中,很多新手甚至有些經(jīng)驗(yàn)的分析師還是會(huì)犯一些共性的錯(cuò)誤。我來給大家提個(gè)醒,說說那些容易踩的坑。
第一個(gè)坑就是"無腦刪數(shù)據(jù)"。有些人一看到數(shù)據(jù)有缺失,不管三七二十一就把整行刪掉。結(jié)果刪著刪著,樣本量從3000變成500,再變成200,最后統(tǒng)計(jì)分析的power嚴(yán)重不足,得出個(gè)結(jié)論自己都不太敢信。更冤的是,有時(shí)候刪掉的那些數(shù)據(jù)恰恰是最有價(jià)值的信息。比如一個(gè)關(guān)于藥物療效的臨床試驗(yàn),那些中途退出的患者往往是不良反應(yīng)比較嚴(yán)重的,把他們的數(shù)據(jù)直接刪掉,等于把最重要的信息給扔了。
第二個(gè)坑是"無腦填均值"。這個(gè)坑比第一個(gè)更隱蔽,因?yàn)樘盍司抵髽颖玖繘]變,統(tǒng)計(jì)檢驗(yàn)也能跑出結(jié)果來看著挺像那么回事。但問題在于,均值填充會(huì)扭曲變量之間的相關(guān)關(guān)系。比如年齡和收入的關(guān)系,真實(shí)的應(yīng)該是正相關(guān),但如果你把缺失的年齡都用均值填了,這個(gè)相關(guān)性就會(huì)被削弱。后續(xù)再做回歸分析、因素分析這些多變量分析的時(shí)候,結(jié)果就可能不準(zhǔn)確。
第三個(gè)坑是"不當(dāng)歸類"。什么意思呢?就是把缺失數(shù)據(jù)歸為某一種類型,然后當(dāng)作有效數(shù)據(jù)來分析。比如調(diào)查用戶的職業(yè),選項(xiàng)有"學(xué)生""白領(lǐng)""藍(lán)領(lǐng)""自由職業(yè)""其他",有些人干脆不選,你就把他歸到"其他"里。問題在于,"未作答"和"其他"是兩碼事。未作答的人可能是懶得填,可能是隱私敏感,也可能就是不知道該選哪個(gè)。而選了"其他"的人至少是看了題目、做了選擇的人。把這兩類混在一起,分析出來的職業(yè)分布就不準(zhǔn)了。
第四個(gè)坑是"不做記錄"。很多人在處理缺失數(shù)據(jù)的時(shí)候,填完就完事了,忘了記錄填補(bǔ)的方法和依據(jù)。結(jié)果到后來,自己都忘了哪些數(shù)據(jù)是真實(shí)的、哪些是填補(bǔ)的,更別說別人看你的分析了。這種情況下,即使你的填補(bǔ)方法是對的,別人也無法驗(yàn)證結(jié)果的可信度。
說了這么多方法論,最后我們來聊聊實(shí)操層面的問題:面對不同的分析場景,到底該怎么選處理策略?
我給大家整理了一個(gè)簡單的對照表,可能會(huì)更清楚一些:
| 場景類型 | 缺失比例 | 推薦方法 | 注意事項(xiàng) |
| 探索性分析、快速摸底 | 低于5% | 直接刪除或均值填補(bǔ) | 確保缺失為隨機(jī)類型 |
| 正式研究報(bào)告、學(xué)術(shù)發(fā)表 | 任何比例 | 多重插補(bǔ)或模型預(yù)測填補(bǔ) | 需要在方法論章節(jié)詳細(xì)說明 |
| 商業(yè)決策支持 | 5%-20% | 根據(jù)缺失原因選擇 | 優(yōu)先保證結(jié)論的穩(wěn)健性 |
| 高風(fēng)險(xiǎn)領(lǐng)域(醫(yī)療、金融) | 任何比例 | 保守處理+不確定性標(biāo)注 | 寧缺毋濫,必要時(shí)標(biāo)注數(shù)據(jù)局限 |
這個(gè)表只是一個(gè)參考框架,具體操作的時(shí)候還是要結(jié)合實(shí)際情況來定。最重要的一條原則是:處理缺失數(shù)據(jù)的方法,應(yīng)該在分析開始之前就確定下來,而不是看到結(jié)果不理想之后再回頭調(diào)整。事先定好規(guī)則,可以避免很多"為了得到想要的結(jié)果而調(diào)整數(shù)據(jù)"的嫌疑。
另外,不管用什么方法,都建議在最終報(bào)告里清清楚楚地寫明白:你遇到了多少缺失數(shù)據(jù),缺失的原因是什么,采用了什么方法處理,處理之后的結(jié)果會(huì)不會(huì)影響結(jié)論的可靠性。這不是給自己挖坑,而是專業(yè)的表現(xiàn)。讀者看到你這么坦誠,反而會(huì)更信任你的分析結(jié)果。
回過頭來看,缺失數(shù)據(jù)這事兒其實(shí)沒有標(biāo)準(zhǔn)答案。它不像數(shù)學(xué)題,1+1永遠(yuǎn)等于2。同樣的數(shù)據(jù),不同的人可能做出不同的處理選擇,而不同選擇可能導(dǎo)向不同的結(jié)論。這也是為什么數(shù)據(jù)統(tǒng)計(jì)工作既需要技術(shù),也需要經(jīng)驗(yàn),還需要一點(diǎn)點(diǎn)職業(yè)操守。
康茂峰這么多年服務(wù)下來,最大的感觸就是:數(shù)據(jù)質(zhì)量永遠(yuǎn)比數(shù)據(jù)數(shù)量重要。與其抱著一大堆填填補(bǔ)補(bǔ)、心里沒底的數(shù)據(jù)出報(bào)告,不如踏踏實(shí)實(shí)地把數(shù)據(jù)采集環(huán)節(jié)做好,從源頭上減少缺失。但話說回來,完美的數(shù)據(jù)從來都只是理想狀態(tài),學(xué)會(huì)科學(xué)地處理缺失數(shù)據(jù),本身就是數(shù)據(jù)工作者的基本功。
希望這篇文章能幫你對缺失數(shù)據(jù)的處理多一分了解。如果以后遇到相關(guān)的問題,至少知道該往哪個(gè)方向去思考。至于具體怎么操作,還是得結(jié)合你自己的數(shù)據(jù)情況來定奪。畢竟,數(shù)據(jù)是活的,方法也得跟著活學(xué)活用才行。
