"lines()" 表现得像 "polygon()" R?
"lines()" acting like "polygon()" R?
我正在尝试在红色回归线周围绘制两条黑线。但是 lines()
命令绘制的东西更像是 polygon()
而不是简单的线条( 请参见代码下方的图片)。
我想知道是否有解决方法可以简单地在回归线周围画两条线(即,不确定性区间),或者我遗漏了什么?
library(rstanarm)
data(kidiq)
d <- kidiq
fit <- stan_glm(kid_score ~ mom_iq,
data = d,
prior = normal(0, 2.5),
prior_intercept = normal(0, 10),
prior_aux = cauchy(0, 100))
plot(kid_score ~ mom_iq, data = d, type = "n")
abline(fit, col = 2)
pred_lin <- posterior_linpred(fit)
loop <- length(d$mom_iq)
I <- matrix(NA, loop, 2)
for(i in 1:loop){
I[i,] = quantile(pred_lin[,i], c(.025, .975))
}
lines(d$mom_iq, I[,1], lty = 2)
lines(d$mom_iq, I[,2])
试试订购的 data.frame 喜欢:
a <- cbind(d$mom_iq, I[,1])
a <- a[order(a[,1]),]
lines(a)
所以你也可以这样写:
lines(sort(d$mom_iq), I[,2][order(d$mom_iq)])
或者简单地说:
apply(I, 2, function(x) lines(sort(d$mom_iq), x[order(d$mom_iq)]))
我正在尝试在红色回归线周围绘制两条黑线。但是 lines()
命令绘制的东西更像是 polygon()
而不是简单的线条( 请参见代码下方的图片)。
我想知道是否有解决方法可以简单地在回归线周围画两条线(即,不确定性区间),或者我遗漏了什么?
library(rstanarm)
data(kidiq)
d <- kidiq
fit <- stan_glm(kid_score ~ mom_iq,
data = d,
prior = normal(0, 2.5),
prior_intercept = normal(0, 10),
prior_aux = cauchy(0, 100))
plot(kid_score ~ mom_iq, data = d, type = "n")
abline(fit, col = 2)
pred_lin <- posterior_linpred(fit)
loop <- length(d$mom_iq)
I <- matrix(NA, loop, 2)
for(i in 1:loop){
I[i,] = quantile(pred_lin[,i], c(.025, .975))
}
lines(d$mom_iq, I[,1], lty = 2)
lines(d$mom_iq, I[,2])
试试订购的 data.frame 喜欢:
a <- cbind(d$mom_iq, I[,1])
a <- a[order(a[,1]),]
lines(a)
所以你也可以这样写:
lines(sort(d$mom_iq), I[,2][order(d$mom_iq)])
或者简单地说:
apply(I, 2, function(x) lines(sort(d$mom_iq), x[order(d$mom_iq)]))