資料缺失值處理

2021-09-26 13:44:05 字數 1377 閱讀 9210

步驟:

1.識別缺失值

2.分析缺失的原因

3.檢視缺失值情況

4.處理缺失值

識別判斷缺失值:is.na()

識別矩陣或資料框中的完整觀測:complete.cases()

any(is.na(data)):檢查是否存在缺失值

head(is.na(data $ col1),5):檢視資料data中col1列前5個資料的缺失情況

sum(is.na(data $ col1)):計算col1列中的缺失值個數

sum(!is.na(data $ col1)):計算col1列中的非缺失值個數

mean(!complete.cases(data)):計算data中完整行的百分比

newdata=data[complete.cases(data),]:從data中提取出完整觀測

deldata=data[!complete.cases(data),]:從data中提取出非完整觀測

分析缺失的原因

mcar:完全隨機缺失,即某變數缺失值與它所在變數其他觀測值無關,與其他變數也無關。

manr:非隨機缺失,即變數出現缺失與其觀測值有關,需要用專門的方法重新收集資料。

檢視缺失值情況

1.列表顯示:

載入mice包(實現處理丟失資料方法的包)

md.pattern()函式:md.pattern(x, plot = true)

生成乙個顯示缺失值模式(0,1)的**,0表示列中有缺失值,1表示沒有

2.圖形顯示:

載入vim包(視覺化缺失值、插補值)

aggr()函式:繪製變數缺失值個數

aggr(x, delimiter = null, plot = true, …)

處理缺失值

刪除法1.行刪除(個案刪除)

適用:缺失資料較少,且分散

缺點:造成資料浪費,估計引數可能會有偏

data[complete.cases(data),]

插補1.用代表中心趨勢的值插補缺失

選擇中位數、平均數、眾數中哪乙個由分布決定

近似正態分佈:均值插補

偏態分布:中位數插補

例:使用內建資料集實現均值插補

2.回歸插補

方法:對缺失變數和已觀測變數建立回歸方程,用缺失變數的**值對缺失值進行插補

例:3.隨機回歸插補

在回歸**值上增加隨機因素

(這種方法生成的插補值可能有負數,這是由於加入隨機因素引起的)

4.多重插補

基於重複模擬插補缺失值

5.k臨近法

根據樣本觀測值之間的相關性,利用歐氏距離尋找與缺失觀測最相似的k個樣本中的觀測,填補缺失值

dmwr包中knninputation函式可以實現這種方法

插值法補齊缺失資料 資料處理 缺失值處理

此文圖方便,就直接輸入資料了。importpandas as pd df pd.dataframe 1缺失值處理 如何判斷缺失值 df.isnull isna df.notnull notna 1.1刪除法 dataframe.dropna axis 0,how any thresh none,su...

資料預處理 缺失值處理

資料中的缺失值是個非常棘手的問題,有很多文獻都致力於解決這個問題。資料缺失的含義是 假設有 n n 個樣本,每個樣本20個特徵。但在一些樣本中出於某種原因某個特徵無效,則就構不成乙個完整的樣本。對於這樣的問題,有些情況下是不能直接將其拋棄的,對其進行挽救就是缺失值處理 1 使用可用特徵的均值來填補缺...

資料處理 缺失值處理

資料缺失主要包括記錄缺失和字段資訊缺失等情況,其對資料分析會有較大影響,導致結果不確定性更加顯著 缺失值的處理 刪除記錄 資料插補 不處理 判斷是否有缺失值資料 isnull,notnull isnull 缺失值為true,非缺失值為false notnull 缺失值為false,非缺失值為true...