昨天我 工作了一个例子 普通最小二乘(OLS)与主成分分析(PCA)之间的差异。对于该插图,我想显示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")

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

alt text

有帮助吗?

解决方案

?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])

其他提示

正如约书亚(Joshua)提到的那样 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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top