2

以下で何が起こっていますか?

#create some data
library(data.table)
library(mice)
myData = data.table(invisible.covariate=rnorm(10),
         visible.covariate=rnorm(10),
         category=factor(sample(1:3,10, replace=TRUE)),
         treatment=sample(0:1,10, replace=TRUE))
myData[,outcome:=invisible.covariate+visible.covariate+treatment*as.integer(category)]
myData[,invisible.covariate:=NULL]    
myData[treatment == 0,untreated.outcome:=outcome]
myData[treatment == 1,treated.outcome:=outcome]

#impute missing values
myPredictors = matrix(0,ncol(myData),ncol(myData))
myPredictors[5,] = c(1,1,0,0,0,0)
myPredictors[6,] = c(1,1,0,0,0,0)
myImp = mice(myData,predictorMatrix=myPredictors)

#Now look at the "complete" data
completeData = data.table(complete(myImp,0))
print(nrow(completeData[is.na(untreated.outcome)]))

マウスがすべての NA 値を正常に置き換えた場合、結果は 0 になります。しかし、そうではありません。私は何を間違っていますか?

4

1 に答える 1

2

の 2 番目の引数はcomplete、0 以外 (元の不完全なデータを返す) を対象としています。たとえば、1 と生成された代入の数の間のスカラーです。また、一部の文字入力も受け入れます (詳細については、ドキュメントを参照してください)。

これを試して:

completeData = data.table(complete(myImp, 1))

比較:

> completeData = data.table(complete(myImp,0))
> print(nrow(completeData[is.na(untreated.outcome)]))
[1] 5
> completeData = data.table(complete(myImp,1))
> print(nrow(completeData[is.na(untreated.outcome)]))
[1] 0

乾杯!

于 2014-08-24T16:08:12.237 に答える