5

我在 r 中绘制一个 lme fit 对象并在图表上显示异常值 id(studyID),但我想通过在绘图对象中查找它们来自动访问这些 ID。我无法弄清楚如何做到这一点。我正在做很多分析,因此能够自动执行此操作而不是实际查看每个图表中的异常值 id 编号会有所帮助。

这是我正在做的一个简化示例:

fit <- lme(dv ~ studyID + Gender + Group * DOP, random=~1|studyID, cor=corSymm(), na.action="na.omit", method="ML", data=x$data)

require (car)

plotObject <- plot(fit, resid(., type = "p") ~ fitted(.) | Group*DOP, abline = 0, id=.05)

我想要做的是访问 plotObject 的某些属性,该属性存储用于识别图表中由 plot 语句产生的异常值的 ID 号。

谢谢你。

4

1 回答 1

7

我不知道这些信息是否真的存储在绘图对象中,但自己计算很容易。来自?plot.lme

 id: an optional numeric value, or one-sided formula. If given as
          a value, it is used as a significance level for a two-sided
          outlier test for the standardized, or normalized residuals.
          Observations with absolute standardized (normalized)
          residuals greater than the 1 - value/2 quantile of the
          standard normal distribution are identified in the plot using
          ‘idLabels’.

所以我会说类似

library(nlme)
fm1 <- lme(distance ~ age, data = Orthodont) # random is ~ age
which(abs(residuals(fm1,type="normalized"))>qnorm(0.975))
## M09 M09 M13 
##  34  35  49 
plot(fm1,id=.05)  ## for comparison

似乎可以解决问题。

于 2012-12-11T21:05:56.130 回答