プロジェクトで Rのパッケージを使用しようとしていmice
ますが、プールされた結果が、出力内の変数の 1 つに対して持っていたダミー コードを変更しているように見えることがわかりました。
詳しく説明するとfoo
、 と の 2 つのレベルを持つ因子 がある0
とし1
ます。レギュラーlm
を使用すると、通常、 の見積もりが得られfoo1
ます。ただし、 と 関数を使用するmice
と、pool
の推定値が得られfoo2
ます。パッケージのnhanes
データセットを使用して、再現可能な例を以下に含めました。mice
なぜ発生している可能性がありますか?
require(mice)
# Create age as: 0, 1, 2
nhanes$age <- as.factor(nhanes$age - 1)
head(nhanes)
# age bmi hyp chl
# 1 0 NA NA NA
# 2 1 22.7 1 187
# 3 0 NA 1 187
# 4 2 NA NA NA
# 5 0 20.4 1 113
# 6 2 NA NA 184
# Use a regular lm with missing data just to see output
# age1 and age2 come up as expected
lm(chl ~ age + bmi, data = nhanes)
# Call:
# lm(formula = chl ~ age + bmi, data = nhanes)
# Coefficients:
# (Intercept) age1 age2 bmi
# -28.948 55.810 104.724 6.921
imp <- mice(nhanes)
str(complete(imp)) # still the same coding
fit <- with(imp, lm(chl ~ age + bmi))
pool(fit)
# Now the estimates are for age2 and age3
# Call: pool(object = fit)
# Pooled coefficients:
# (Intercept) age2 age3 bmi
# 29.88431 43.76159 56.57606 5.05537