Frage

Gestern habe ich arbeitete ein Beispiel der Unterschied zwischen Ordinary Least Squares (OLS) vs. Hauptkomponentenanalyse (PCA) auf. Für diese Darstellung wollte ich die Fehler von OLS und PCA minimiert zeigen, damit ich die Istdaten aufgetragen, um die vorhergesagte Linie und dann manuell I (mit GIMP) zog in einer Drop-Leitung ein paar der Fehler Begriffe zu erläutern. Wie kann ich die Erstellung der Fehlerzeilen in R-Code? Hier ist der Code, den ich für mein Beispiel verwendet:

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

Dann manuell hinzugefügt ich die gelben Linien die folgenden erzeugen:

alt text

War es hilfreich?

Lösung

?segments

würde ich ein Beispiel nennen, aber ich bin heute ziemlich beschäftigt und es ist nicht, dass die Punkte holen kompliziert. ; -)

Okay, also bin ich nicht , die beschäftigt ...

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

Andere Tipps

Als Joshua erwähnt, ist segments() der Weg hier zu gehen. Und wie es total vektorisiert ist, können wir in allen Fehlern auf einmal hinzufügen, im Anschluss an Ihrem Beispiel

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

Wenn Sie nur ein paar der Fehler hervorheben möchten, dann das Beispiel zu ändern Joshua gab:

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

HTH

G

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top