【问题标题】:Plotting deviations from regression line绘制与回归线的偏差
【发布时间】:2011-12-25 21:11:04
【问题描述】:

我想用(a = 0 和 b = 1)绘制一条回归线,并添加与此偏差的各个点,同时用名称识别数据点。

set.seed(123)
namelab <- paste ("ET", 1:10, sep = "")
xvar <- 1:10
yvar <- rnorm(10, 5, 5)
myd <- data.frame(namelab, xvar, yvar)
plot(xvar, yvar)
abline (a= 0, b = 1, col = "red", lty = 2)

只是我的意图的手动草图,我只是标记了一个点,例如。画的线需要纤细。

【问题讨论】:

  • 但是你真的想要绘制 perpendicular 偏移量吗?回归通常会最小化 vertical 偏移量。
  • @John Colby,我打算做的和建议的链接有些不同。 (1)我不打算根据 Y 和 X 拟合(而是一个常数 a=0,b=1 的 abline)(2)给它贴上标签。但是,如果我的搜索引擎能够找到上述帖子....我会自己解决我的问题...谢谢
  • @John:上面那个链接中的提问者显然知道普通回归只使用 y 偏差。你这样做还不是很清楚。您应该确定戴明回归(又名正交回归,总最小二乘回归)的 xy 偏差确实是您想要说明的。它们不是普通回归使用的。
  • @john,当我第一次遇到 OLS 与总最小二乘法时,我感到很困惑。我在这里写了博客:cerebralmastication.com/2010/09/…

标签: r scatter-plot


【解决方案1】:
dev.new(width=4, height=4)
plot(xvar, yvar, asp=1)

a = 0
b = 1

abline (a, b, col = "red", lty = 2)

myd$xint = with(myd, (b*yvar + xvar - b*a) / (b^2 + 1))
myd$yint = with(myd, (b*yvar + b*xvar + a) / (b^2 + 1))

with(myd, segments(xvar, yvar, xint, yint))
with(myd, text(xvar, yvar, labels=namelab, pos=3, cex=0.5))

【讨论】:

  • 谢谢。我一直在寻找与一条线垂直的一点,并且可以找到它。您还展示了如何巧妙地缩小 SQ 的插图。双加好。
【解决方案2】:

...如果您确实想要垂直而不是垂直偏移,这里有一个非常简单的选项:

set.seed(123)
namelab <- paste ("ET", 1:10, sep = "")
xvar <- 1:10
yvar <- rnorm(10, 5, 5)

plot(xvar, yvar)
abline (a= 0, b = 1, col = "red", lty = 2)
segments(xvar,yvar,xvar,xvar)
text(xvar,yvar,namelab,pos=3)

要使这适用于 a 和 b 的任何值,您可以使用:

segments(xvar,yvar,xvar,((xvar*b)+a))

【讨论】:

    猜你喜欢
    • 2018-07-10
    • 2013-07-17
    • 2017-06-12
    • 2015-03-04
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 2021-11-23
    相关资源
    最近更新 更多