我正在使用重新思考的包制作残差图,从 Map 模型中绘制ASD和TD儿童的残差以反对语言智商 .

m3.2 <- map(
alist(
  ADOS ~ dnorm(mu, sigma),
  mu <- a + bV*VerbalIQ.s,
  a ~ dnorm(0, 10), 
  bV ~ dnorm(0, 1),
  sigma ~ dunif(0,10)
  ),
    data = ASDTD
)

为每个孩子计算 Map 上预期值的残差 . 通过基于语言智商从预测的每个孩子中减去观察到的每个孩子的ados来做到这一点 .

mu <- coef(m3.2)['a'] + coef(m3.2)['bV']*ASDTD$VerbalIQ.s

为每个孩子计算残差

m.resid <- ASDTD$ADOS - mu
m.resid
str(ASDTD)

剩余情节

plot(ADOS ~ VerbalIQ.s, ASDTD, col= rangi2)
abline(m3.2)

绕过孩子们

for (i in 1:length(m.resid)) {
   x <- ASDTD$VerbalIQ.s[i]
   y <- ASDTD$ADOS[i]

画线段

lines(c(x,x), c(mu[i],y), lwd=0.5, col = col.alpha("black", 0.7))
}

当我运行我的代码时,我得到了我的组残差,ASD和TD,但我无法区分它们:Plot example

如果我在绘图中更改我的代码,要指定要着色的组,我会丢失另一组的标记(蓝色圆圈)

plot( col = ASDTD$ASD == 1)

像这样:Second plot

我希望我的情节看起来像第一个,但只是让我的两组颜色彼此不同,所以我可以识别它们 . 我在这里尝试了不同的解决方案,但它们只包含一个组并且没有为它们着色,正如您在我的第二个图中所看到的那样 .

我不知道如何在ggplot中制作这个因为我的 Map 模型(正如我所说我正在使用我的统计模型的重新思考包),所以我想特定于plot()的建议,而不是ggplot .