以下兩個R函數來自「缺少數據的靈活插補」一書(第59和63頁)。第一個隨機產生完全丟失(MCAR)數據,第二個隨機產生丟失(MAR)數據。這兩個函數都會給出大約50%的缺失值。在R中生成不同百分比的MAR數據
在MCAR函數中,我們可以通過更改p值來生成不同百分比的缺失數據。但是在MAR功能中,我不明白應該修改哪個參數來生成不同百分比的丟失數據,例如10%或30%?
MCARmakemissing <- function(data, p=0.5){
rx <- rbinom(nrow(data), 1, p)
data[rx==0,"y"] <- NA
return(data)
}
MAR
logistic <- function(x) exp(x)/(1+exp(x))
set.seed(32881)
n <- 10000
y <- mvrnorm(n=n,mu=c(5,5),Sigma=matrix(c(1,0.6,0.6,1),nrow=2))
p2.marright <- 1 - logistic(-5 + y[,1])
r2.marright <- rbinom(n, 1, p2.marright)
yobs <- y
yobs[r2.marright==0, 2] <- NA
有關缺失數據主題的信息覆蓋見**統計分析與丟失數據第2版羅德里克J.A. Little和Donald B. Rubin(2002)Wiley **。 –