複数の代入結果をプロットします
-
01-10-2019 - |
質問
Rのマウスパッケージを使用して、アンケート調査の欠落データに関する複数の代入を正常に完了し、プールされた帰属変数で線形回帰を実行しました。単一のプールされた変数を抽出してグラフでプロットする方法を説明できないようです。何か案は?
例えば
>imp <- mice(questionnaire)
>fit <- with(imp, lm(APE~TMAS+APB+APA+FOAP))
>summary(pool(fit))
TMASによってプールされた類人猿をプロットしたいです。
NHANESを使用した再現性のある例:
> library(mice)
> nhanes
> imp <-mice(nhanes)
> fit <-with(imp, lm(bmi~chl+hyp))
> fit
> summary(pool(fit))
プールされたBMI(たとえば)に対してプールされたCHLをプロットしたいと思います。
私が達成できた最高のものです
> mat <-complete(imp, "long")
> plot(mat$chl~mat$bmi)
5つのすべての帰属のすべての組み合わせプロットを提供し、私が探しているものではないと思います(私は思う)。
解決
根底にあるwith.mids()関数を使用すると、帰属する各データフレームで回帰を実行できます。したがって、それは1つの回帰ではなく、発生した5つの回帰です。 Pool()は、推定係数を平均して、代入量に従って統計的推論の分散を調整します。
したがって、プロットする単一のプールされた変数はありません。あなたができることは、5つの帰属セットを平均して、プールされた係数に基づいて何らかの「回帰線」を再現することです。
# Averaged imputed data
combchl <- tapply(mat$chl,mat$.id,mean)
combbmi <- tapply(mat$bmi,mat$.id,mean)
combhyp <- tapply(mat$hyp,mat$.id,mean)
# coefficients
coefs <- pool(fit)$qbar
# regression results
x <- data.frame(
int = rep(1,25),
chl = seq(min(combchl),max(combchl),length.out=25),
hyp = seq(min(combhyp),max(combhyp),length.out=25)
)
y <- as.matrix(x) %*%coefs
# a plot
plot(combbmi~combchl)
lines(x$chl,y,col="red")
所属していません StackOverflow