готовит дистанционный участок с R - PullRequest
0 голосов
/ 27 мая 2011

Кто-нибудь знает, как получить график расстояния одного повара, который вы получаете из этого кода:

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 Ответ

1 голос
/ 27 мая 2011

Я не совсем уверен, в чем ваша проблема. Похоже, вам нужен график с остатками на оси 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 или что-то еще), и она должна работать.

...