R
插補次數和最大迭代次數如何影響多重插補的準確性?
幫助頁面
MICE
將函數定義為:mice(data, m = 5, method = vector("character", length = ncol(data)), predictorMatrix = (1 - diag(1, ncol(data))), visitSequence = (1:ncol(data))[apply(is.na(data), 2, any)], form = vector("character", length = ncol(data)), post = vector("character", length = ncol(data)), defaultMethod = c("pmm", "logreg", "polyreg", "polr"), maxit = 5, diagnostics = TRUE, printFlag = TRUE, seed = NA, imputationMethod = NULL, defaultImputationMethod = NULL, data.init = NULL, ...)
這些是很多參數。如何決定指定哪些參數以及保留哪些參數作為默認值?
我對多重插補的數量
m
和最大迭代次數特別感興趣maxit
。這些參數如何影響準確性?換句話說,何時(如何?)——在使用這些參數的同時——我真的可以說已經達到了某種收斂嗎?
讓我們一一瀏覽參數:
data
不需要解釋m
是插補的次數,一般來說越多越好。最初(繼 Rubin,1987 年之後)5 被認為是足夠的(因此是默認值)。因此,從準確性的角度來看,5 可能就足夠了。但是,這僅基於效率論點。為了更好地估計標準誤差,需要更多的插補。如今,無論平均缺失百分比是多少,都有一個經驗法則——因此,如果數據集中平均有 30% 的缺失數據,請使用 30 個插補——參見 Bodner (2008) 和 White et al (2011)更多詳情。method
指定要使用的插補方法 - 僅當要覆蓋默認方法時才需要。例如,默認情況下,連續數據通過預測均值匹配進行估算,這通常效果很好,但可以指定貝葉斯線性回歸和其他幾個模型,包括嵌套/聚類數據的多級模型。因此,專家/臨床/統計知識可用於指定默認方法的替代方案。predictorMatrix
是一個矩陣,它告訴算法哪些變量預測哪些其他變量的缺失。mice
如果未指定,則使用基於變量之間相關性和可用案例比例的默認值。專家/臨床知識在指定預測矩陣時可能非常有用,因此應謹慎使用默認值。visitSequence
指定變量的插補順序。通常不需要它。form
主要用於幫助指定在插補中使用的交互項,通常不需要。post
用於插補後處理,例如確保插補正值。這通常不需要。defaultMethod
更改默認的插補方法,通常不需要maxit
是每個插補的迭代次數。mice
使用迭代算法。重要的是所有變量的插補達到收斂,否則它們將不准確。通過檢查由此生成的軌跡圖,plot()
可以直觀地確定。與其他 Gibbs 採樣方法不同,需要的迭代次數要少得多——根據經驗,通常在 20-30 或更少的範圍內。當跡線達到一個值並在其周圍略有波動時,就達到了收斂。以下是顯示健康收斂的示例,取自此處:在這裡,用 5 個插補(彩色線)對 3 個變量進行 20 次迭代(圖中的 x 軸),圖中的 y 軸是每個插補的插補值。
diagnostics
默認情況下會產生有用的診斷信息。printFlag
默認情況下輸出算法進度,這很有用,因為可以輕鬆確定估計的完成時間。seed
是一個隨機種子參數,可用於重現性。imputationMethod
並且defaultImputationMethod
僅用於向後兼容。Bodner, Todd E. (2008) “隨著缺失數據插補的增加有什麼改進?” 結構方程建模:多學科期刊 15:651-675。 https://dx.doi.org/10.1080/10705510802339072
Rubin, Donald B. (1987) 調查中不答复的多重插補。紐約:威利。
White、Ian R.、Patrick Royston 和 Angela M. Wood(2011 年)“使用鍊式方程進行多重插補:問題和實踐指南”。醫學統計 30:377-399。 https://dx.doi.org/10.1002/sim.4067