代码之家  ›  专栏  ›  技术社区  ›  JD Long

在R中从实际点到模型点的放置线

  •  7
  • JD Long  · 技术社区  · 14 年前

    worked up an example of

    set.seed(2)
    x <- 1:100
    
    y <- 20 + 3 * x
    e <- rnorm(100, 0, 60)
    y <- 20 + 3 * x + e
    
    plot(x,y)
    yx.lm <- lm(y ~ x)
    lines(x, predict(yx.lm), col="red")
    

    然后我手动添加黄线以生成以下内容:

    alt text

    2 回复  |  直到 14 年前
        1
  •  9
  •   Joshua Ulrich    14 年前

    ?segments

    我想举个例子,但我今天很忙,挑重点没那么复杂。;-)

    好吧,所以我不是 那个 忙碌的。。。

    n=58; segments(x[n],y[n],x[n],predict(yx.lm)[n])
    n=65; segments(x[n],y[n],x[n],predict(yx.lm)[n])
    
        2
  •  7
  •   Gavin Simpson    14 年前

    正如约书亚所说, segments() 是去这里的路。由于它是完全矢量化的,我们可以一次添加所有错误,下面是您的示例

    set.seed(2)
    x <- 1:100
    
    y <- 20 + 3 * x
    e <- rnorm(100, 0, 60)
    y <- 20 + 3 * x + e
    
    plot(x,y)
    yx.lm <- lm(y ~ x)
    lines(x, predict(yx.lm), col="red")
    ## Add segments
    segments(x, y, x, fitted(yx.lm), col = "blue")
    

    如果您只想突出显示几个错误,那么要修改Joshua给出的示例:

    n <- c(58,65)
    segments(x[n], y[n], x[n], fitted(yx.lm)[n], col = "orange", lwd = 3)
    

    HTH公司