是否可以使用 R 中的识别功能自动生成 Q-Q 图?

Is it possible to use the identify function in R for automatically generated Q-Q plots?

我这学期在大学里学习线性回归的入门课程。对于我的一项作业,我需要使用 R 分析数据集。

请允许我先分享我的部分代码:

log_Metab <- log(Metab)
mammal.lm.1 <- lm(Life ~ log_Metab)
plot(mammal.lm.1, which = 2)

基本上,我的数据集包含有关 95 种不同哺乳动物的新陈代谢率 (Metab) 和寿命 (Life) 的信息,我需要检查这两个特征之间是否存在线性关系。

现在,我粘贴的代码的第三行生成线性回归的正常 Q-Q 图,如下所示:

我想知道的很简单,并在 post 的标题中说明 - 是否可以将识别功能用于这样的情节 Q-Q 情节?图中三个编号的观察值由 R 而不是我自动选择。 如果可能,请显示并解释我应该输入的代码。例如,如果我愿意,如何识别紧靠第 90 个观测值左侧的点?

P.S。如果这是微不足道的事情,我提前道歉,但我只使用 R 大约一个月,这已经超出了我所学的范围:)

可以通过独立于绘图计算坐标来执行您想要的操作。首先我们需要可重现的数据,因为你没有提供任何数据。数据集 mtcars 带有 R(许多其他数据集也是如此):

data(mtcars)
log_hp <- log(mtcars$hp)
mpg.lm <- lm(mpg~log_hp, mtcars)

我们根据 hp(马力)的对数计算了 mpg(每加仑英里数)的线性回归。命令 plot(mpg.lm) 将调用绘图命令的特殊版本 plot.lm,并准备 4 个绘图。通过阅读位于 ?plot.lm 的手册页,我们可以看到您想要的图是第二个,我们可以通过以下方式访问该图:

plot(mpg.lm, which=2)

现在我们需要标准化残差和理论分位数:

mpg.res <- rstandard(mpg.lm)
out <- qqnorm(mpg.res, plot.it=FALSE)
coords <- cbind(x=out$x, y=out$y)

矩阵 coords 具有分位数和标准化残差,行名称是汽车。这为我们提供了我们想要识别情节上的点的一切。我会将已识别的点设为红色:

identify(coords, labels=rownames(coords), cex=.75, col="red")