将线从R中的实际点拖放到建模点
昨天我讨论了普通最小二乘法(OLS)与主成分分析(PCA)之间的差异。对于这个例子,我想展示通过OLS和PCA最小化的误差,所以我绘制了实际值、预测线,然后我手动(使用GIMP)绘制了一条下降线来说明几个误差项。如何在R中编写创建错误行的代码?下面是我在示例中使用的代码:将线从R中的实际点拖放到建模点,r,graphics,lm,R,Graphics,Lm,昨天我讨论了普通最小二乘法(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 &
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")
set.seed(2)
x?段
我想举个例子,但我今天很忙,挑点也没那么复杂
好吧,所以我没那么忙
正如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")
set.seed(2)
x我从未使用过段
命令!谢谢你指给我看。-1(对我来说)没有矢量化。谢谢你的澄清!
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")
n <- c(58,65)
segments(x[n], y[n], x[n], fitted(yx.lm)[n], col = "orange", lwd = 3)