R語言實戰(十)處理缺失資料的高階方法

2022-08-19 04:51:12 字數 2270 閱讀 5072

本文對應《r語言實戰》第15章:處理缺失資料的高階方法

處理缺失值的一般步驟:

識別缺失資料;

檢查導致資料缺失的原因;

刪除包含缺失值的例項或用合理的數值代替(插補)缺失值。

缺失資料的分類:

非隨機缺失(nmar):不屬於mcar或mar的變數。

一般情況下為mcar或mar,nmar處理太過複雜,暫時不考慮。

識別缺失值:

#某變數缺失值數量

sum(is.na(sleep$dream))

#某變數上缺失值的比例

mean(is.na(sleep$dream))

#含有缺失值的例項的比例

mean(!complete.cases(sleep))

#生成乙個以矩陣或資料框形式展示缺失值模式的**

library(mice)

md.pattern(sleep)

md.pattern()結果解釋: 

矩陣中,0表示有缺失值,1表示沒有缺失值。第一行表述了無缺失值的模式,第二行以後表述了除標記變數外無缺失值的模式。。第一列表示各缺失值模式的例項個數,最後一列表示各模式中有缺失值的變數的個數。最後一行給出了每個變數中缺失值的數目。

圖形**缺失資料(package: vim)

三個函式:

aggr()函式不僅繪製每個變數的缺失值數,還繪製每個變數組合的缺失值數;

matrixplot()函式可生成展示每個例項資料的圖形;

marginplot()函式可生成一幅散點圖,在圖形邊界展示兩個變數的缺失值資訊。

影子矩陣:用指示變數替代資料集中的資料(1表示缺失,2表示存在)

求這些指示變數間和它們與初始(可觀測)變數間的相關性,有助於觀察哪些變數常一起缺失,以及分析變數「缺失」與其他變數間的關係。

x 

y 0)]

cor(y)

相關係數大,表明兩個變數間常常一起缺失。

理解缺失資料的來由和影響:

識別缺失資料的數目、分布和模式有兩個目的:1. 分析生成缺失資料的潛在機制;2. 評價缺失資料對回答實質性問題的影響。

用統計方法進行缺失資料的分析:恢復資料的推理方法、涉及刪除缺失值的傳統方法、涉及模擬的現代方法。

所有工作的目的都是相同的:在沒有完整資訊的情況下,盡可能精確地回答收集資料所要解決的實質性問題。

理性處理不完整資料:

採用推理的方法,根據變數間的數學或邏輯關係來填補或恢復缺失值。

常見處理方法:

行刪除:將包含乙個或多個缺失值的任意一行刪除;

#以下兩行**的功能等價

newdata

newdata

多重插補(mi):是一種基於重複模擬的處理缺失值的方法,每個模擬資料集中,缺失資料將用蒙特卡洛方法來填補。r中可利用amelia, mice 和mi包實現。 

mice包:利用鏈式方程的多元插補。具體過程:首先從乙個包含缺失資料的資料框開始,返回乙個包含多個(預設5個)完整資料集的物件;然後,with()函式可依次對每個完整資料集應用統計模型;最後,pool()函式將這些單獨的分析結果集成為一組結果。最終模型的標準誤和p值都將準確地反映出由於缺失值和多重插補而產生的不確定性。

mice如何插補缺失值:通過gibbs抽樣完成。每個缺失值由資料集中其他**變數**得來,該過程不斷迭代,直到所有**值收斂。

通常過程:

library(mice)

imp

fit

pooled

summary(pooled)

#mydata是待插補的資料框,m預設5,imp裡含有m個插補資料集

#analysis是乙個表示式物件,設定應用於m個插補資料集的統計分析方法

#fit包含了m個單獨統計分析結果

#pooled包含m個統計分析平均結果

處理缺失值的其他方法: 

hmisc

包含多種函式,支援簡單插補、多重插補和典型變數插補

mvnmle

對多元正態分佈資料中缺失值的最大似然估計

cat對數線性模型中多元類別型變數的多重插補

arrayimpute/arraymisspattern/seqknn

處理微陣列缺失資料的實用函式

longitudinaldata

相關的函式列表,比如對時間序列缺失值進行插補的一系列函式

kmi處理生存分析缺失值的kaplan-meier多重插補

mix一般位置模型中混合類別型和連續型資料的多重插補

pan多元面板資料或聚類資料的多重插補

Flash 平台技術的優化 十 處理畫素

使用 setvector 方法繪製畫素。當繪製畫素時,使用 bitmapdata 類的相應方法即可進行一些簡單優化。快速繪製畫素的一種方式是使用 flash player 10 中引入的 setvector 方法 image dimensions var wdth int 200 var hght ...

資料分析學習筆記4 處理缺失資料

對於數值資料,pandas使用浮點值nan not a number 表示缺失資料。我們稱其為哨兵值。過濾掉缺失資料的辦法有很多種。你可以通過pandas.isnull或布林索引的手工方法,但dropna可能會更實用一些。對於乙個series,dropna返回乙個僅含非空資料和索引值的series ...

R語言實戰之高階資料管理

數學函式 data read.csv sample.csv high data high c 1 20 abs high sqrt high 不小於high的最小整數 ceiling high 不大於high 的最小整數 floor high 向0方向擷取的high整數部分 trunc high 將...