時間序列資料如何插補缺失值?

2022-03-20 20:00:46 字數 1389 閱讀 1426

當然第一步仍然是判斷是missing at random 還是missing not at random,一般前者刪除,後者插補。但是插補不一定能帶來更好結果,要先自己根據缺失比例,和原因判斷。

1、就近插補:前推法locf, 替換為缺失之前的最後一次觀測值,與後推法nocb, 使用缺失值後面的觀測值進行填補。這個是時序當中最基本的方法,當然還有用baseline observaton, 或者啥worst observation,目前生科實驗好像有用。

2、線性插值:這個也是歷史悠久方法, 假定時序之間變動有很強的趨勢。早期天文學缺失資料都用這個方法。

4、均值中位數眾數,沒有考慮時序因素。但是假如你認為時序資料裡面基本沒有很強趨勢,也是可以的。當然裡面也還有 比如conditional mean這樣改進方法。

5、多值插補/機器學習: multiple imputation , expectation-maximization , nearest neighbor ,和 hot deck 方法,這些方法都依賴於缺失資料不同屬性間關係,尋找最類似樣本。如果使用r的話,mice, vim, amelia等都可以用來插補,但是這個必須是多變數時序。如果單變數時序,無法找不同屬性關聯,用imputets, 然後zoo, 或者forecast。

6、當然還要區別分類還是數值,如果類別變數,na直接可以劃分新分類。

除了這些統計方法, 我想每個領域裡面缺失值都肯定還要借鑑專業知識來判斷。比如以國家軍費缺失資料為例,如果你知道因為戰亂帶來的缺失。那麼戰時資料比和平年代資料就更合適,很簡單就近填補。

然後插補不同學科可能都有預設或者建議的方法,比如社會學或者人口學無應答問卷資料,大量採用hotdeck,就是假定類似使用者類似行為,us census bureau也在用。

氣候資料,看到有的文章在研究氣候變化時採用expectation-maximization algorithm,r裡面mtsdi。見這篇文章 imputation of missing data in time series for air pollutants。當然python的話裡面也有很多。

最後,插補資料方法上如果你對資料生成機制很熟悉的情況下,可能一些簡單方法就可以。對於本身純粹依賴演算法,不能給出解釋機制的插補有疑慮。為什麼說要增加專業知識判斷,因為缺失本身表明這些樣本資訊不足, 專業知識判斷就相當於額外增補資訊。

sklearn 資料填補缺失值

機器學習和資料探勘中所使用的資料,永遠不可能是完美的。很多特徵,對於分析和建模來說意義非凡,但對於實 際收集資料的人卻不是如此,因此資料探勘之中,常常會有重要的字段缺失值很多,但又不能捨棄欄位的情況。因 此,資料預處理中非常重要的一項就是處理缺失值。從kaggle中簡單的獲取的鐵達尼號的遇難者生存資...

eviews如何處理缺失資料填補 缺失值的處理

一 缺失值產生的原因 缺失值的產生的原因多種多樣,主要分為機械原因和人為原因。機械原因是由於機械原因導致的資料收集或儲存的失敗造成的資料缺失,比如資料儲存的失敗,儲存器損壞,機械故障導致某段時間資料未能收集 對於定時資料採集而言 人為原因是由於人的主觀失誤 歷史侷限或有意隱瞞造成的資料缺失,比如,在...

時間序列資料

出生 gdp溫度 時間要素 年 季度 月 周 日 數值要素 長期變動趨勢 相當長的一段時間,受長期趨勢影響 持續上公升 下降 不規則變動 隨機擾動項 含白噪音 迴圈變動 市場經濟的商業週期 或者整個國家的經濟週期 1 資料具有週期性才能使用時間序列分解,例如資料是月份資料,季度資料,如果是年份資料則...