3

どの変数が代入され、どの変数に基づいて代入されるかを制御するために、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 は 2 つの変数です。Occ_level は、行と列がすべて 0 に設定された 7 つの変数の 1 つです (偶然ではないでしょうか?)。

データセットが巨大であるため、例をより再現可能にすることはできません。しかし、小さなデータセットでの私の実験はすべて機能します。独自のマトリックスを使用しなければ、すべてが機能するためです。何が間違っている可能性があるのか​​ わかりませんでした。両方の次元が変数の数と等しく、0 と 1 のみが含まれ、対角線が 0 である以外に、予測行列が準拠しなければならない要件はありますか? マウスのドキュメントには何も見つかりません。前もって感謝します!

4

0 に答える 0