我试图将自己的预测矩阵强加给R中鼠标包的鼠标命令,以控制哪些变量被估算,并根据它们被估算的变量。但是,该命令不起作用。 我有33个变量,我用这种方式构建矩阵:
Pred_Matrix<-(1-diag(1,33))
Pred_Matrix[1, ] <- 0 #so that this variable is not imputed
Pred_Matrix[, 1] <- 0 #so that this variable does not impute
Pred_Matrix[6, ] <- 0 # so that this variable is not imputed
Pred_Matrix[, 6] <- 0 # so that this variable does not impute
...
我对其他5个变量也做同样的事情(将行和列都设置为0,这样它们就不会被估算,也不会用来估算其他变量)。因此,这总共发生在7个变量中。
然后我用
开始估算imp_dataset<-mice(MyDataset, m = 10, maxit = 10, pred=Pred_Matrix)
插补开始后我得到的错误信息是:
iter imp variable
1 1 Ed_level Occ_levelError in model.frame.default(formula = formula(xy), data = xy[ry, ], weights = w[ry]) :
variable lengths differ (found for '(weights)')
其中Ed_level和Occ_level是两个变量 - 而Occ_level是其中一行的行和列已设置为全0(可能不是偶然?)的七个之一。
我无法使示例更具可重复性,因为数据集非常庞大。但我在小型数据集上的所有实验都有效;这是因为矩阵,因为如果我不使用我自己的矩阵,一切都有效。 我无法弄清楚可能出现的问题。是否有任何其他要求预测器矩阵必须符合,除了两个维度都等于变量的数量,只包括0和1,并且对角线= 0?我在老鼠的文档中找不到任何东西。提前谢谢!