【发布时间】:2019-10-16 21:49:07
【问题描述】:
我想用老鼠来估算我的数据集的一部分。我的数据集有很多变量,这就是为什么我不想估算所有变量,而只想估算那些我将在我的模型中使用的变量。 (我知道应该使用尽可能多的信息来进行插补,但我已经使用了 41 个变量,根据文献,这应该绰绰有余。)
我的问题:我不希望始终对每个变量进行估算, 因为我有几个测量点。所以当然,我的变量 在 t4 有很多缺失,但我不想当人们归咎于他们 只是当时还没有填写问卷。
所以我指定了一个预测矩阵,其中 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的人应该被估算,那些不在那个测量点的人不应该被估算。 如果有人对如何实现这一点有任何想法,那就太好了!
非常感谢!
【问题讨论】:
标签: r imputation r-mice