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

发布于 2010-09-18 00:31:07
?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])发布于 2010-09-22 01:44:30
正如约书亚提到的那样,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
G
https://stackoverflow.com/questions/3737165
复制相似问题