Pregunta

Ayer trabajado el ejemplo de la diferencia entre mínimos cuadrados ordinarios (MCO) vs. Análisis de componentes Principales (PCA). Por esa ilustración quería mostrar los errores minimizados por MCO y PCA por lo que he trazado los datos reales, la línea predicho y luego manualmente (con GIMP) dibujé en una línea de derivación para ilustrar un par de los términos de error. ¿Cómo puedo código que la creación de las líneas de error en R? Aquí está el código que se utiliza para mi ejemplo:

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")

Entonces añadió manualmente las líneas amarillas para producir lo siguiente:

text alt

¿Fue útil?

Solución

?segments

me gustaría ofrecer un ejemplo, pero estoy bastante ocupado hoy y que no es tan complicado para recoger los puntos. ; -)

Está bien, así que no estoy que ocupado ...

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

Otros consejos

Como se mencionó Joshua, segments() es el camino a seguir aquí. Y ya que está totalmente vectorizado, se puede añadir en todos los errores a la vez, a raíz de su ejemplo

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")

Si sólo desea resaltar un par de errores, a continuación, modificar el ejemplo Joshua dio:

n <- c(58,65)
segments(x[n], y[n], x[n], fitted(yx.lm)[n], col = "orange", lwd = 3)

HTH

G

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top