Я хочу приписать часть моего набора данных мышам. В моем наборе данных очень много переменных, поэтому я не хочу вменять все переменные, а только те, которые я буду использовать в моей модели.
(Я знаю, что для вменения следует использовать как можно больше информации, но я уже использую 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, должны быть вменены, а те, кто не находится в этой точке измерения, не должны.
Если у кого-то есть идеи, как сделать это возможным, это было бы здорово!
Большое спасибо!