【问题标题】:"lines()" acting like "polygon()" R?“lines()”表现得像“polygon()”R?
【发布时间】:2018-03-12 16:18:16
【问题描述】:

我试图在红色回归线周围画两条黑线。但是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])

【问题讨论】:

    标签: r plot bayesian rstan rstanarm


    【解决方案1】:

    尝试按顺序排列的 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)])) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-29
      • 2011-02-08
      • 2021-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多