1

有谁知道,如何获取您从此代码中获得的单个厨师距离图:

treatment <- factor(rep(c(1, 2), c(43, 41)), levels = c(1, 2), labels = c("placebo","treated"))
improved <- factor(rep(c(1, 2, 3, 1, 2, 3), c(29, 7, 7, 13, 7, 21)), levels = c(1, 2,3),labels = c("none", "some", "marked"))
numberofdrugs <- rpois(84, 5)+1
healthvalue <- rpois(84,5)
y <- data.frame(healthvalue, numberofdrugs, treatment, improved)
test <- glm(healthvalue~numberofdrugs+treatment+improved, y, family=poisson)
par(mfrow=c(2,2))
plot(test) # how to grab plot 2.1 ?

我不喜欢的是这个

par(mfrow=c(1, 1))
plot(test, which=c(4))

因为它在 y 轴上没有残差并且在 x 轴上没有杠杆作用!

多谢你们

4

1 回答 1

2

我不太确定你的问题是什么。您似乎想要在 y 轴上带有残差并在 x 轴上利用的绘图。这不只是生成的第 5 个(共 6 个)图:

plot(test,which=5)

您可以在 ?plot.lm 阅读更多相关信息

编辑以解决 OP 关于设置 y 轴标签的问题:

通常,只需将 ylab="My Label" 添加到 plot() 调用就可以了,但是这些图形被设计为“自动”生成,因此某些图形参数是“硬编码”的。如果你传递你自己的 ylab 值,你会得到一个错误,因为 plot.lm() 将显示两个 ylab 并且不知道使用哪一个。如果您真的不喜欢 y 轴标签,您唯一的选择是获取 plot.lm 代码(只需在控制台输入“plot.lm”并按回车键)将其复制并粘贴到文本文件中并查找本节:

if (show[5L]) {
    ylab5 <- if (isGlm) 
        "Std. Pearson resid."
    else "Standardized residuals"
    r.w <- residuals(x, "pearson")
    if (!is.null(w)) 
        r.w <- r.w[wind]
    rsp <- dropInf(r.w/(s * sqrt(1 - hii)), hii)
    ylim <- range(rsp, na.rm = TRUE)
    if (id.n > 0) {
        ylim <- extendrange(r = ylim, f = 0.08)
        show.rsp <- order(-cook)[iid]
    }

并使用您自己的 y 轴标签对其进行修改。重命名该函数(例如,plotLMCustomY 或其他名称),它应该可以工作。

于 2011-05-27T17:59:51.167 回答