3

我正在尝试将我自己的预测矩阵强加到 R 中的 mouse 包的命令中,以控制估算哪些变量以及基于哪些变量估算它们。但是,该命令不起作用。我有 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 之外,预测矩阵是否还必须遵守其他要求?我在老鼠的文档中找不到任何东西。先感谢您!

4

0 回答 0