
數(shù)據(jù)缺失值的4種處理方法
一、缺失值產(chǎn)生的原因
缺失值的產(chǎn)生的原因多種多樣,主要分為機(jī)械原因和人為原因。機(jī)械原因是由于機(jī)械原因?qū)е碌臄?shù)據(jù)收集或保存的失敗造成的數(shù)據(jù)缺失,比如數(shù)據(jù)存儲的失敗,存儲器損壞,機(jī)械故障導(dǎo)致某段時(shí)間數(shù)據(jù)未能收集(對于定時(shí)數(shù)據(jù)采集而言)。人為原因是由于人的主觀失誤、歷史局限或有意隱瞞造成的數(shù)據(jù)缺失,比如,在市場調(diào)查中被訪人拒絕透露相關(guān)問題的答案,或者回答的問題是無效的,數(shù)據(jù)錄入人員失誤漏錄了數(shù)據(jù)。
二、缺失值的類型
缺失值從缺失的分布來講可以分為完全隨機(jī)缺失,隨機(jī)缺失和完全非隨機(jī)缺失。完全隨機(jī)缺失(missing completely at random,MCAR)指的是數(shù)據(jù)的缺失是隨機(jī)的,數(shù)據(jù)的缺失不依賴于任何不完全變量或完全變量。隨機(jī)缺失(missing at random,MAR)指的是數(shù)據(jù)的缺失不是完全隨機(jī)的,即該類數(shù)據(jù)的缺失依賴于其他完全變量。完全非隨機(jī)缺失(missing not at random,MNAR)指的是數(shù)據(jù)的缺失依賴于不完全變量自身。
從缺失值的所屬屬性上講,如果所有的缺失值都是同一屬性,那么這種缺失成為單值缺失,如果缺失值屬于不同的屬性,稱為任意缺失。另外對于時(shí)間序列類的數(shù)據(jù),可能存在隨著時(shí)間的缺失,這種缺失稱為單調(diào)缺失。
三、缺失值的處理方法
對于缺失值的處理,從總體上來說分為刪除存在缺失值的個(gè)案和缺失值插補(bǔ)。對于主觀數(shù)據(jù),人將影響數(shù)據(jù)的真實(shí)性,存在缺失值的樣本的其他屬性的真實(shí)值不能保證,那么依賴于這些屬性值的插補(bǔ)也是不可靠的,所以對于主觀數(shù)據(jù)一般不推薦插補(bǔ)的方法。插補(bǔ)主要是針對客觀數(shù)據(jù),它的可靠性有保證。
1.刪除含有缺失值的個(gè)案
主要有簡單刪除法和權(quán)重法。簡單刪除法是對缺失值進(jìn)行處理的最原始方法。它將存在缺失值的個(gè)案刪除。如果數(shù)據(jù)缺失問題可以通過簡單的刪除小部分樣本來達(dá)到目標(biāo),那么這個(gè)方法是最有效的。當(dāng)缺失值的類型為非完全隨機(jī)缺失的時(shí)候,可以通過對完整的數(shù)據(jù)加權(quán)來減小偏差。把數(shù)據(jù)不完全的個(gè)案標(biāo)記后,將完整的數(shù)據(jù)個(gè)案賦予不同的權(quán)重,個(gè)案的權(quán)重可以通過logistic或probit回歸求得。如果解釋變量中存在對權(quán)重估計(jì)起決定行因素的變量,那么這種方法可以有效減小偏差。如果解釋變量和權(quán)重并不相關(guān),它并不能減小偏差。對于存在多個(gè)屬性缺失的情況,就需要對不同屬性的缺失組合賦不同的權(quán)重,這將大大增加計(jì)算的難度,降低預(yù)測的準(zhǔn)確性,這時(shí)權(quán)重法并不理想。
2.可能值插補(bǔ)缺失值
它的思想來源是以最可能的值來插補(bǔ)缺失值比全部刪除不完全樣本所產(chǎn)生的信息丟失要少。在數(shù)據(jù)挖掘中,面對的通常是大型的數(shù)據(jù)庫,它的屬性有幾十個(gè)甚至幾百個(gè),因?yàn)橐粋€(gè)屬性值的缺失而放棄大量的其他屬性值,這種刪除是對信息的極大浪費(fèi),所以產(chǎn)生了以可能值對缺失值進(jìn)行插補(bǔ)的思想與方法。常用的有如下幾種方法。
(1)均值插補(bǔ)。數(shù)據(jù)的屬性分為定距型和非定距型。如果缺失值是定距型的,就以該屬性存在值的平均值來插補(bǔ)缺失的值;如果缺失值是非定距型的,就根據(jù)統(tǒng)計(jì)學(xué)中的眾數(shù)原理,用該屬性的眾數(shù)(即出現(xiàn)頻率最高的值)來補(bǔ)齊缺失的值。
(2)利用同類均值插補(bǔ)。同均值插補(bǔ)的方法都屬于單值插補(bǔ),不同的是,它用層次聚類模型預(yù)測缺失變量的類型,再以該類型的均值插補(bǔ)。假設(shè)X=(X1,X2…Xp)為信息完全的變量,Y為存在缺失值的變量,那么首先對X或其子集行聚類,然后按缺失個(gè)案所屬類來插補(bǔ)不同類的均值。如果在以后統(tǒng)計(jì)分析中還需以引入的解釋變量和Y做分析,那么這種插補(bǔ)方法將在模型中引入自相關(guān),給分析造成障礙。
(3)極大似然估計(jì)(Max Likelihood ,ML)。在缺失類型為隨機(jī)缺失的條件下,假設(shè)模型對于完整的樣本是正確的,那么通過觀測數(shù)據(jù)的邊際分布可以對未知參數(shù)進(jìn)行極大似然估計(jì)(Little and Rubin)。這種方法也被稱為忽略缺失值的極大似然估計(jì),對于極大似然的參數(shù)估計(jì)實(shí)際中常采用的計(jì)算方法是期望值最大化(Expectation Maximization,EM)。該方法比刪除個(gè)案和單值插補(bǔ)更有吸引力,它一個(gè)重要前提:適用于大樣本。有效樣本的數(shù)量足夠以保證ML估計(jì)值是漸近無偏的并服從正態(tài)分布。但是這種方法可能會陷入局部極值,收斂速度也不是很快,并且計(jì)算很復(fù)雜。
(4)多重插補(bǔ)(Multiple Imputation,MI)。多值插補(bǔ)的思想來源于貝葉斯估計(jì),認(rèn)為待插補(bǔ)的值是隨機(jī)的,它的值來自于已觀測到的值。具體實(shí)踐上通常是估計(jì)出待插補(bǔ)的值,然后再加上不同的噪聲,形成多組可選插補(bǔ)值。根據(jù)某種選擇依據(jù),選取最合適的插補(bǔ)值。
多重插補(bǔ)方法分為三個(gè)步驟:①為每個(gè)空值產(chǎn)生一套可能的插補(bǔ)值,這些值反映了無響應(yīng)模型的不確定性;每個(gè)值都可以被用來插補(bǔ)數(shù)據(jù)集中的缺失值,產(chǎn)生若干個(gè)完整數(shù)據(jù)集合。②每個(gè)插補(bǔ)數(shù)據(jù)集合都用針對完整數(shù)據(jù)集的統(tǒng)計(jì)方法進(jìn)行統(tǒng)計(jì)分析。③對來自各個(gè)插補(bǔ)數(shù)據(jù)集的結(jié)果,根據(jù)評分函數(shù)進(jìn)行選擇,產(chǎn)生最終的插補(bǔ)值。
假設(shè)一組數(shù)據(jù),包括三個(gè)變量Y1,Y2,Y3,它們的聯(lián)合分布為正態(tài)分布,將這組數(shù)據(jù)處理成三組,A組保持原始數(shù)據(jù),B組僅缺失Y3,C組缺失Y1和Y2。在多值插補(bǔ)時(shí),對A組將不進(jìn)行任何處理,對B組產(chǎn)生Y3的一組估計(jì)值(作Y3關(guān)于Y1,Y2的回歸),對C組作產(chǎn)生Y1和Y2的一組成對估計(jì)值(作Y1,Y2關(guān)于Y3的回歸)。
當(dāng)用多值插補(bǔ)時(shí),對A組將不進(jìn)行處理,對B、C組將完整的樣本隨機(jī)抽取形成為m組(m為可選擇的m組插補(bǔ)值),每組個(gè)案數(shù)只要能夠有效估計(jì)參數(shù)就可以了。對存在缺失值的屬性的分布作出估計(jì),然后基于這m組觀測值,對于這m組樣本分別產(chǎn)生關(guān)于參數(shù)的m組估計(jì)值,給出相應(yīng)的預(yù)測即,這時(shí)采用的估計(jì)方法為極大似然法,在計(jì)算機(jī)中具體的實(shí)現(xiàn)算法為期望最大化法(EM)。對B組估計(jì)出一組Y3的值,對C將利用 Y1,Y2,Y3它們的聯(lián)合分布為正態(tài)分布這一前提,估計(jì)出一組(Y1,Y2)。
上例中假定了Y1,Y2,Y3的聯(lián)合分布為正態(tài)分布。這個(gè)假設(shè)是人為的,但是已經(jīng)通過驗(yàn)證(Graham和Schafer于1999),非正態(tài)聯(lián)合分布的變量,在這個(gè)假定下仍然可以估計(jì)到很接近真實(shí)值的結(jié)果。
多重插補(bǔ)和貝葉斯估計(jì)的思想是一致的,但是多重插補(bǔ)彌補(bǔ)了貝葉斯估計(jì)的幾個(gè)不足。
(1)貝葉斯估計(jì)以極大似然的方法估計(jì),極大似然的方法要求模型的形式必須準(zhǔn)確,如果參數(shù)形式不正確,將得到錯(cuò)誤得結(jié)論,即先驗(yàn)分布將影響后驗(yàn)分布的準(zhǔn)確性。而多重插補(bǔ)所依據(jù)的是大樣本漸近完整的數(shù)據(jù)的理論,在數(shù)據(jù)挖掘中的數(shù)據(jù)量都很大,先驗(yàn)分布將極小的影響結(jié)果,所以先驗(yàn)分布的對結(jié)果的影響不大。
(2)貝葉斯估計(jì)僅要求知道未知參數(shù)的先驗(yàn)分布,沒有利用與參數(shù)的關(guān)系。而多重插補(bǔ)對參數(shù)的聯(lián)合分布作出了估計(jì),利用了參數(shù)間的相互關(guān)系。
以上四種插補(bǔ)方法,對于缺失值的類型為隨機(jī)缺失的插補(bǔ)有很好的效果。兩種均值插補(bǔ)方法是最容易實(shí)現(xiàn)的,也是以前人們經(jīng)常使用的,但是它對樣本存在極大的干擾,尤其是當(dāng)插補(bǔ)后的值作為解釋變量進(jìn)行回歸時(shí),參數(shù)的估計(jì)值與真實(shí)值的偏差很大。相比較而言,極大似然估計(jì)和多重插補(bǔ)是兩種比較好的插補(bǔ)方法,與多重插補(bǔ)對比,極大似然缺少不確定成分,所以越來越多的人傾向于使用多值插補(bǔ)方法。
四、小結(jié)
插補(bǔ)處理只是將未知值補(bǔ)以我們的主觀估計(jì)值,不一定完全符合客觀事實(shí)。以上的分析都是理論分析,對于缺失值由于它本身無法觀測,也就不可能知道它的缺失所屬類型,也就無從估計(jì)一個(gè)插補(bǔ)方法的插補(bǔ)效果。另外這些方法通用于各個(gè)領(lǐng)域,具有了普遍性,那么針對一個(gè)領(lǐng)域的專業(yè)的插補(bǔ)效果就不會很理想,正是因?yàn)檫@個(gè)原因,很多專業(yè)數(shù)據(jù)挖掘人員通過他們對行業(yè)的理解,手動對缺失值進(jìn)行插補(bǔ)的效果反而可能比這些方法更好。缺失值的插補(bǔ)是在數(shù)據(jù)挖掘過程中為了不放棄大量的信息,而采用的人為干涉缺失值的情況,無論是那種處理方法都會影響變量間的相互關(guān)系,在對不完備信息進(jìn)行補(bǔ)齊處理的同時(shí),我們或多或少地改變了原始的數(shù)據(jù)的信息系統(tǒng),對以后的分析存在潛在的影響,所以對缺失值的處理一定要慎重。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請求開發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營問題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當(dāng)下,精準(zhǔn)營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價(jià)值 在數(shù)據(jù)驅(qū)動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實(shí)踐到業(yè)務(wù)價(jià)值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計(jì)模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價(jià)值導(dǎo)向 統(tǒng)計(jì)模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10