用于在R中使用鼠标进行多次插补的自定义预测矩阵不起作用

时间:2015-03-29 01:38:04

标签: r matrix r-mice

我试图将自己的预测矩阵强加给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?我在老鼠的文档中找不到任何东西。提前谢谢!

0 个答案:

没有答案