访问lme情节中的异常值

时间:2012-12-11 20:55:46

标签: r plot outliers

我正在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的一些属性,该属性存储用于识别图表中由绘图语句产生的异常值的id号。

谢谢。

1 个答案:

答案 0 :(得分: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

似乎可以解决问题。