敏感性分析中的R缺失数据与MICE

问题描述 投票:0回答:1

我工作的一项荟萃​​分析和丢失的数据进行敏感性分析。我想根据预定概率或者与0或1,以取代censorsed数据。

我有式柱X的数据集:时间点和y:事件(1 =事件,0 =消音)。对于分析我更换了一些的0与港定居。 Z是用于治疗臂指示器。我想用一个预定义的概率,以取代港定居人士1或0。这是我的代码:

只是一个例子:

library(mice)

x <- c(1:10)
y <- c(1,1,1,NA,NA,NA,1,1,0,NA)
z <- rep(2,10)

data <- data.frame(x,y,z)

str(data)
md.pattern(data)

mice.impute.myfunct <-  function(y, ry, x, ...)
{event <- sample(c(0:1), size = 1, replace=T, prob=c(0.5,0.5)); return(event)}

data.imp <- mice(data, me = c("","myfunct",""), m = 1)
data.comp <- complete(data.imp)

我期望在y中的NA将与0(20%的病例)和1(80%的病例)来代替。 NAS却被更换仅与0或只用1。

我不得不承认,我是有R相当一个初学者,以前是没有写自己的小功能。

非常感谢您的帮助!

r metadata sentiment-analysis
1个回答
0
投票

下面是一个可能的解决方案只是用0和1,并在0.1和0.9之间变化的概率替换缺失值:

for( i in seq(0.1,0.9,0.1)){
  data[[paste0("y_imp",i)]] <- data$y
  N <- sum(is.na( data$y))
  data[[paste0("y_imp",i)]][is.na(data[[paste0("y_imp",i)]])] <-  sample(c(0,1), size = N, replace=T, prob=c(i,1-i))
}

data[[paste0("y_imp",i)]] <- data$y创造一个你有被替换为0缺失的i概率列。

© www.soinside.com 2019 - 2024. All rights reserved.