微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以将 R 中的识别函数用于自动生成的 Q-Q 图?

如何解决是否可以将 R 中的识别函数用于自动生成的 Q-Q 图?

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

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

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

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

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

Normal Q-Q Plot

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

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

解决方法

可以通过与绘图分开计算坐标来执行您想要的操作。首先,我们需要可重现的数据,因为您没有提供任何数据。数据集 mtcars 带有 R(与许多其他数据集一样):

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

我们已经根据 mpg(马力)的对数计算了 hp(每加仑英里数)的线性回归。命令 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")

QQ Plot

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。