如何绘制具有彩色置信区间带的回归到原始比例的回归图?

问题描述 投票:1回答:1

我想绘制线性模型和线性模型的95%置信区间,在线性模型中,响应已被对数转换为原始数据比例。因此,结果应该是一条曲线,其中包括原始标度上的置信区间,而在对数变换标度上它将是一条直线。参见代码:

# Data
dat <- data.frame(c(45,75,14,45,45,55,65,15,3,85),
                  c(.37, .45, .24, .16, .46, .89, .16, .24, .23, .49))
colnames(dat) <- c("age", "bil.")               


# Logit transformation
dat$bb_logit <- log(dat$bil./(1-dat$bil.))

# Model
modelbb <- lm(bb_logit ~ age + I(age^2), data=dat)
summary(modelbb)

# Backtranform
dat$bb_back <- exp(predict.lm(modelbb))/ (1 + exp(predict.lm(modelbb)))

# Plot
plot(dat$age, dat$bb_back)
abline(modelbb)

我在这里尝试绘制曲线回归线并添加置信区间。在ggplot2中有一个geom_smooth函数,可以在其中指定线性模型,但我找不到从predict.lm(my model)绘制预测的方法。

我也想知道如何添加一个彩色的多边形,它将代表置信区间,如下图所示。我知道我必须使用函数polygon和坐标,但我不知道如何。

enter image description here

我想绘制线性模型和线性模型的95%置信区间,在线性模型中,响应已被对数转换为原始数据比例。所以结果应该是弯曲的...

r plot regression transformation confidence-interval
1个回答
0
投票

您可以在predict等年龄范围内使用1:100,为CI指定interval=选项。用type="l"绘制曲线会平滑。然后可以使用lines添加置信区间。

p <- predict(modelbb, data.frame(age=1:100), interval="confidence")
# Backtransform
p.tr <- exp(p) / (1 + exp(p))

plot(1:100, p.tr[,1], type="l", ylim=range(p.tr), xlab="age", ylab="bil.")
sapply(2:3, function(i) lines(1:100, p.tr[,i], lty=2))
legend("topleft", legend=c("fit", "95%-CI"), lty=1:2)
© www.soinside.com 2019 - 2024. All rights reserved.