作者:Leopold d’Avezac
翻譯:廖倩穎
校對:楊毅遠
本文長度為1900字,建議閱讀8分鐘
本文為大家介紹了資料缺失的原因以及缺失值的類型,最後列舉了每一種缺失值類型的處理方法以及優缺點。
标簽:離群資料 填充
不論是機器學習模型,KPI或者報告,缺失值和它們的替代值都會導緻你的分析結果出現巨大錯誤。通常分析人員隻用一種方式處理缺失值。但事實并非如此,下面我們會介紹三種類型的缺失值以及其對應的解決方法。
空值(null)的類型
随機遺失(MAR):在變量中空值的出現并非随機,而是取決于記錄中已知或者是未知的特征。那麼你可能會問自己,為什麼其被稱為随機遺失呢?這是因為空值與其實際值無關。這取決于你的資料集是否能被測試。為了找出替代值,你應該比較其他變量的分布,以擷取具有缺失值和非缺失值的記錄。
比如:一個關于教育的資料集缺失了很多小孩的IQ測試分數,隻是因為相比十二歲的孩子,四歲的孩子很少會通過這個測試。是以出現的空值與IQ實際值沒有相關性,而與年齡相關。
完全随機缺失(MCAR):空值的出現與記錄中已知或者未知特征是完全無關的。再次重申,這取決于你的資料集是否能被測試。就像随機遺失(MAR)一樣,測試應該比較有缺失值的記錄和無空值的記錄的其他變量的分布。
比如:在郵件中缺失的調查對象的問卷結果,完全獨立于相關變量和受訪者的特征(即記錄)。
非随機缺失(MNAR):空值的出現取決于它的實際值。這個無法被測試,除非你知道實際值,這又是沖突的。
比如:隻有得低分的個體的IQ變量值缺失。
你可能已經想過,在第二個例子中,隻有删除空值是最安全的做法。
在其他兩種情況中,删除空值會導緻無視整體統計人口中的一組。
在最後一個例子中,記錄擁有空值的事實中會攜帶一些關于實際值的資訊。
處理缺失資料
- 删除
删除行:(隻對于完全随機缺失(MCAR))如果缺失值隻占資料集的一小部分,删除行是一個完美解決方案。但是,當比例上升時,這很快就行不通了。
删除列:我們通常不考慮這個方法因為這會導緻重要資訊丢失。一般來說,當空值比例高于60%時,你可以開始考慮删除列。
- 配置設定新值
上一個或下一個值:(僅用于完全随機缺失(MCAR)的時間序列)隻要你在處理時間序列問題,你就可以使用最後或下一個值填充缺失值。
平均值:(僅用于完全随機缺失(MCAR))因為平均值對異常值敏感,是以用平均值并非是一個好的選擇。
中位數值:(僅用于完全随機缺失(MCAR))類似于平均值,但是對異常值更穩定。
衆數值:(僅用于完全随機缺失(MCAR))通過選擇最常見的值,可以确定大部分時間你正确填充空值。但是要小心多衆數分布,因為對于此,使用衆數就不再是一個可行的方案。
用常數填充:(僅用于非随機缺失(MNAR))正如我們之前看到的,非随機缺失(MNAR)情況下的缺失值實際上包含很多有關實際值的資訊。是以,用常數值來填充空值是可行的(不同于其他類型數值)。
線性插值法:(僅用于完全随機缺失(MCAR)下的時間序列)在具有趨勢和幾乎沒有季節性問題的時間序列中,我們可以用缺失值前後的值進行線性插值來估算出缺失值。

樣條插值法:(僅用于完全随機缺失(MCAR)下的時間序列)這個方法和線性插值法相似,但是因為樣條插值法使用高階多項式特征進而得到了更平滑的插值。重申,這個方法不适用于季節性資料。
具有季節性調整的線性/樣條插值法:(隻适用于完全随機缺失(MCAR)情況下的時間序列)這個方法和線性、樣條插值法原理一緻,但是對于季節性進行了調整。它包括了消除季節變動的影響,應用線性/樣條插值法和對時間序列應用季節性。下面是一個對于STL(一種資料去季節性的方法)的詳細解釋。
詳細解釋
https://towardsdatascience.com/stl-decomposition-how-to-do-it-from-scratch-b686711986ec
線性回歸,KNN,MCMC,多元高斯或者任何機器學習算法:(僅用于随機遺失(MAR))使用這一方法可能需要額外的工作,但是這是處理随機遺失(MAR)唯一可行的方案。因為這個方法考慮了其他變量的記錄值,是以我們可以使用這些變量缺失和非缺失值的不同資訊來預測缺失值。
多重插補法:(僅适用于随機遺失(MAR)和完全随機遺失(MCAR))多重插補法是最好的處理缺失值的方法。這個方法用一個模型多次估算缺失值,因為模型允許同一個觀測結果有不同的預測值。使同一觀測對象的預測值差異化的解決方案可以用一個類似線性回歸的模型。假設一個模型參數來自一個你可以讓每一步估算過程中産生小小的變化,想知道更多這個技巧可以檢視下方連結。對于每一步的估算,都有一個新的資料集産生。然後對每個資料集進行分析。完成之後,計算不同資料集結果的平均值和标準方差,給出一個具有“置信區間”的輸出值的近似值。
技巧:
https://rmisstastic.netlify.app/tutorials/Erler_course_MultipleImputation_2018/Erler_slides_MICourse_2018.pdf
原文标題:
Don’t let missing values ruin your analysis output, Deal with them!
原文連結:
https://towardsdatascience.com/dont-let-missing-values-ruin-your-analysis-output-deal-with-them-5d9c7686366c
編輯:王菁
校對:龔力
譯者簡介
廖倩穎,馬裡蘭大學公園分校市場分析專業碩士畢業,大學畢業于上海海洋大學包裝工程專業。喜歡音樂、電影和看書,我對于資料科學和資料可視化比較有興趣,最近在學習CV和機器學習算法基礎,希望能與各位大佬交流切磋長姿勢。