每日最新頭條.有趣資訊

有缺失值怎麼辦?介紹5種處理缺失值的方法

如果你調查的數據發現有缺失(這幾乎是不可避免的),首先建議先做一些分析,比如這些缺失數據和全部數據在性別、年齡等一些指標上有無差異(但願是沒有差異的)。

如果差別不大,那還勉強說的過去,如果差別較大,那就麻煩了。審稿人肯定會說,為什麼全部數據中男性佔50%,而缺失數據中男性佔70%?這是不是說明缺失的主要是男性,那會不會影響你的主要研究結局?等等之類的。當然,理論上,你需要證明在所有的因素中差別都不大,但這一點很難,實際中,很多人都是大概看看在一些主要的基線資料中差別不大就算是心裡安慰了。

先說一個原則性問題,處理缺失值最好的方式是什麼?答案是:沒有最好的方式。或者說,最好的方式只有一個,預防缺失,盡量不要缺失。

聽起來像開玩笑,但這是真理。任何的填補技術都是有問題的,就像有人說的,所有的統計方法都是錯誤的,任何的統計方法都是有條件的,在適當條件下,結論可能比較可信,否則就是錯誤的。

缺失值的處理有很多種方式,本文先說一些比較簡單的。

直接刪除法

這種方法簡單粗暴,是非專業人士很喜歡用的方式。可能你會說,這算是什麼方法?事實上,在有些時候,這種方法也是有效的。在缺失數很少的時候,這種方法無可厚非,而且效率很高。如調查了1000人,只有30人缺失,可以考慮刪除,通常影響不會太大。

但這麼理想的情況不多見,更多的是缺失率較高的情形。如每個變數缺失30個,這時儘管每個變數缺失都不多,但如果缺失沒有重合,只要有一個變數缺失,就要刪除整條觀測。因此如果直接刪除的話,如果有10個變數缺失,就要刪除300條,那就不一樣了。

一般情況下,很少有恰好所有變數都在相同的觀測缺失,所以,當有缺失數據的變數很多的時候,直接刪除會導致樣本量減少很多。即使你不在乎分析精度,起碼也得考慮一下前期花費的精力吧,相當於你花了100%的精力卻隻拿到了70%或60%的回報。

所以,除非你調查的自變數很少,而且每個自變數缺失的都特別少,否則盡量不要採用這種方法。

LOCF法

這種方法主要用於臨床試驗中。臨床試驗中經常需要多次觀察,這就會導致有的人可能第1次隨訪有數據,而第2次(或第3次、第4次)就失訪了,後面就沒有數據了。

這種時候最簡單直接、而且也是很常用的一種方式就是LOCF(last observation carried forward),意思就是,用前一次的數據填補後面的數據

比如張三,第一次隨訪的血糖是11.3,第二次失訪了,那麼第二次以及後面所有的隨訪都填補為11.3。

既然提到LOCF,就順便提一下與其有關的其它類似的幾種方式,比如BOCF(baseline observation carried forward),顧名思義,以基線數據填補後面的缺失;WOCF(worst observation carried forward),以各次隨訪中最差的結果作為缺失值的填補,或者以各次隨訪中最優的結果作為缺失值的填補,做一些敏感性分析,看看最差是什麼樣,最好是什麼樣。

虛擬變數法

該法主要用於分類自變數的缺失,把缺失值作為一類,這樣類別數就多了一類。例如性別,本來是男性和女性兩類,虛擬變數的話以女性為0,男性為1。如果有缺失,可以把缺失值賦值為2,這樣就變成了3類。仍以女性為參照,分別給出男性比女性、缺失比女性的結果,但我們只看男性比女性的結果。

這種方法的好處在於,由於將缺失賦值,統計軟體就不會把它當做一個缺失值刪除,避免了由於性別這一個變數缺失而導致整個觀測被刪除的悲劇。

這種方法簡單且容易理解,但一般隻用於分類自變數,而且對該變數本身而言,樣本量仍是變少,估計精度肯定也會變差。另外,對其它變數的估計值有時會有較大影響。所以也不是一種很好的方法。

均值填補法

這種方法主要用於連續資料的缺失,顧名思義,就是把缺失值用該變數的均值來填補。比如身高,一共100人,結果缺失了10人,那就計算剩餘的90人的均值,作為身高的填補值。

這種方法的缺點顯而易見,沒有考慮到人與人之間的變異。不同性別、年齡等特徵的人群,身高本來就不應該相等,強行作為一個值,比如導致變異減少。當然,稍微有點方法可以調整一下,比如,分性別計算,計算女性和男性的平均身高,然後分別作為女性和男性的填補。

但無論如何,這種方法是很少用的。誤差太大。

回歸填補法

回歸填補法的思路很簡單,假定有糖化血紅蛋白和體重兩個變數,要填補糖化血紅蛋白的缺失值,我們可以糖化血紅蛋白作為因變數,建立體重對糖化血紅蛋白的回歸方程,然後根據體重的非缺失值,預測糖化血紅蛋白的缺失值。

例如建立糖化血紅蛋白對體重的回歸方程為:

糖化血紅蛋白 = 6.5 + 0.05*體重

對於該模型,如果已知體重值,不難估計出缺失的糖化血紅蛋白。如體重為50,可以估計糖化血紅蛋白為6.5+0.05*50=9。

回歸填補法聽起來很簡單,也有一定的理論依據。比均值填補要可靠,因為它考慮到了其它因素的影響。但這種方法有一個問題:容易低估標準誤,高估檢驗統計量

原因很容易理解,由於糖化血紅蛋白的一部分值是根據體重估計而來,也就是說,這幾個值與體重是完全的直線關係(因為是通過直線回歸估計的)。在原來的數據中,儘管我們建立線性方程,但幾乎沒有點恰好位於直線上,總會有一定的偏離,也就是殘差。而現在所有的缺失值估計都位於直線上,那就必然導致誤差減少,從而標準誤變低。

本文先介紹這幾種比較簡單的缺失值填補方式,剩下的比較複雜的,留待後面再詳細介紹。

更多閱讀

-ykh

關注醫咖會,提升臨床研究水準~

),拉你進統計討論群和眾多熱愛研究的小夥伴們一起交流學習。


TAG: |
獲得更多的PTT最新消息
按讚加入粉絲團