用R烹饪距离情节

时间:2011-05-27 17:24:44

标签: r statistics outliers

有人知道,如何从这段代码中获取单个厨师距离图:

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轴上有杠杆作用!

谢谢你们

1 个答案:

答案 0 :(得分:1)

我不太清楚你的问题是什么。您似乎希望绘图在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或其他东西),它应该可以工作。