2010-08-27 72 views
4

我已在R中使用MICE軟件包成功完成了對我的問卷調查研究的缺失數據的多次歸算,並對彙總的歸算變量執行了線性迴歸。我似乎無法弄清楚如何提取單個合併變量並在圖表中繪圖。有任何想法嗎?繪製多重歸因結果

例如

>imp <- mice(questionnaire) 
>fit <- with(imp, lm(APE~TMAS+APB+APA+FOAP)) 
>summary(pool(fit)) 

我想通過TMAS繪製彙集的APE。

重複的例子,使用NHANES:

> library(mice) 
> nhanes 
> imp <-mice(nhanes) 
> fit <-with(imp, lm(bmi~chl+hyp)) 
> fit 
> summary(pool(fit)) 

我想暗算彙集BMI彙集葉綠素(例如)。

最好的我已經能夠做到的,是

> mat <-complete(imp, "long") 
> plot(mat$chl~mat$bmi) 

我相信這給出了所有5個插補的組合情節,不完全是我找的(我認爲)。

+0

@Kafkaesque:你最好提供一個可重複的例子。也許有''鼠標'頁面上的'nhanes'數據。 – 2010-08-27 08:55:11

+0

如果你使用'complete(imp)',你只需得到最後一次迭代 – James 2010-08-27 10:11:43

+0

完整的「長」(imp,「long」)給出所有5個插值。我真正想要的是在迴歸中使用的彙總插補,即需要回歸中使用的數據圖。也許我誤解了迴歸使用的數據,也許完整(imp,「long」)是我想要繪製的? – 2010-08-27 10:18:37

回答

9

底層的with.mids()函數允許對每個推測的數據幀執行迴歸。所以這不是一個迴歸,而是發生了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") 
+0

謝謝你。這個平均情節似乎比我已經解決的合併情節(全部5個情節)要好。沒有一個結果與我原始分析的列表刪除圖大不相同。再次感謝您的思想和努力。 – 2010-08-27 11:25:47