Готовит дистанционный участок с R
Кто-нибудь знает, как получить график расстояния одного повара, который вы получаете из этого кода:
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))
потому что у него нет остатков на оси у и рычагов на оси х!
Спасибо, парни
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 или что-то еще), и она должна работать.