我想用小鼠来估算我的部分数据。我的数据集有很多变量,这就是为什么我不想只推算我将在模型中使用的那些变量的原因。 (我知道应该为插补使用尽可能多的信息,但是我已经使用了41个变量,根据文献,这应该绰绰有余了。)
我的问题:我不希望所有变量都始终插补, 因为我有几个测量点所以,当然,我的变量 在第4时刻有很多失踪者,但是当人们 只是当时还没有填写问卷。
因此我指定了一个预测变量矩阵,其中推算了t0处的所有变量(例如A103.0),而不是t4处的所有变量(A103.4)。 但是,在运行鼠标时,它仅对所有变量使用“ pmm”,并且会推算每个变量。
任何关于出了什么问题的建议都受到高度赞赏,我现在花了很多时间试图找出发生了什么。
这就是我所做的:
我创建了一个我想插入的所有列的对象
impute <- c("A103", "A104", "A107", #SVF
"A302.0", "A303.0", "A304.0", "A305.0", "A306.0",
"A502_01.0", "A502_02.0", "A502_03.0", "A502_04.0",
"A504.0","A506.0", "A508.0", "W003.0", "W005.0",
"A509_02.0", "A509_03.0", "A509_06.0", "A509_10.0",
"A302.4", "A303.4", "A304.4", "A305.4", "A306.4",
"A502_01.4", "A502_02.4", "A502_03.4", "A502_04.4",
"A504.4", "A506.4", "A508.4","W003.4", "W005.4", "SD02_01",
"SD03",
"A509_02.4", "A509_03.4", "A509_06.4", "A509_10.4")
我创建了要插入的列(当然还有所有行)的子集
imp <- mice(ds_wide[ ,impute], maxit=0)
imp$PredictorMatrix
pred <- imp$predictorMatrix
pred [c("A302.4", "A303.4", "A304.4", "A305.4", "A306.4", #ABB.4
"A502_01.4", "A502_02.4", "A502_03.4", "A502_04.4", #PSWQ.4
"A504.4", "A506.4", "A508.4","W003.4", "W005.4", "SD02_01",
"SD03",
"A509_02.4", "A509_03.4", "A509_06.4", "A509_10.4"), ] <- 0
View(pred) #looks exactly how I want it to look like
imp <- mice(ds_wide[ ,impute], m=5, predictorMatrix = pred)
miceimp <- complete (imp)
anyNA(miceimp)
View(miceimp)
当我检查miceimp(我的结果)时,没有任何遗漏值,因此即使我另外指定,也将估算t4处的所有变量。我做错了什么?
实际上,对我来说真正地最好的是,如果我能以某种方式在t4估算那些不仅没有缺失的变量。因此,应该对那些填写了t4的人进行估算,而那些不在那个测量点的人则不应这样做。 如果有人对如何实现这一点有任何想法,那就太好了!
非常感谢!
答案 0 :(得分:0)
我不确定我100%理解您要归档的内容。
我了解到,您不想估算所有变量(但您想将所有变量都包括进算法中)
您正在尝试定义参数 predictorMatrix
predictorMatrix
长度(块)行和ncol(数据)列的数字矩阵,其中包含0/1数据,该数据指定要用于每个目标列的一组预测变量。每行对应一个变量块,即一组要推算的变量。值为1意味着列变量用作目标块(行中)的预测变量。默认情况下,predictorMatrix是一个ncol(data)行和列的方阵,对角线除外,全为1。注意:对于两级插补模型(名称中带有“ 2l”的情况),也可以使用其他代码(例如2或-2)。
对我来说,我听起来像是使用此参数来定义什么变量用作输入。 相比之下, where 参数在我看来是正确的参数,用于指定应估算的变量。
位置 具有与数据相同维度的逻辑的数据框或矩阵,指示应在数据中的何处创建插补。默认值,其中= = is.na(data),指定应估算缺少的数据。 where参数可用于过分估算观测到的数据,或跳过对所选缺失值的估算。
所以我的结论是尝试使用 where 参数而不是预测变量Matrix。
答案 1 :(得分:0)
在“鼠标”中,除了将不应该插入的变量的“ predMatrix”指定为零外,还必须在“方法”中的这些变量中指定(“”)。