首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将线从实际点拖放到R中的模型点

将线从实际点拖放到R中的模型点
EN

Stack Overflow用户
提问于 2010-09-18 00:27:50
回答 2查看 1.2K关注 0票数 7

昨天我用worked up an example of比较了普通最小二乘法和主成分分析法之间的差异。为了说明这一点,我想展示由OLS和PCA最小化的误差,所以我绘制了实际值,预测线,然后我手动(使用GIMP)绘制了一条下拉线来说明几个误差项。如何在R中编写创建错误行的代码?下面是我在示例中使用的代码:

代码语言:javascript
复制
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")

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-18 00:31:07

?segments

我会提供一个例子,但我今天很忙,选择要点并不是那么复杂。;-)

好吧,所以我不是很忙……

代码语言:javascript
复制
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])
票数 9
EN

Stack Overflow用户

发布于 2010-09-22 01:44:30

正如约书亚提到的那样,segments()是一条可行的道路。由于它是完全矢量化的,我们可以按照你的例子一次添加所有的错误

代码语言:javascript
复制
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给出的示例:

代码语言:javascript
复制
n <- c(58,65)
segments(x[n], y[n], x[n], fitted(yx.lm)[n], col = "orange", lwd = 3)

HTH

G

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3737165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档