problem with abline for x.y
Michael Friendly <friendly at yorku.ca> writes:
The data is read in grouped form( galton), and then ungrouped (galton2):
galton <- read.table("~/sasuser/data/galton.txt", header=TRUE)
# ungroup
galton2<-galton[rep(1:nrow(galton), galton$frequency), 1:2]
attach(galton)
sunflowerplot(child, parent, number=frequency, xlim=c(61,75),
ylim=c(61,75),
xlab="Child height", ylab="Mid Parent height")
# both attempts plot the same, wrong regression lines
Not precisely, though.
y.x <- lm(parent ~ child, weights=frequency) abline(y.x) x.y <- lm(child ~ parent, weights=frequency) abline(x.y, col="gray") attach(galton2) y.x <- lm(parent ~ child) abline(y.x, lwd=2) x.y <- lm(child ~ parent) abline(x.y, col="gray", lwd=2) library(car) data.ellipse(child, parent, plot.points=FALSE, levels=c(0.40, 0.68), lty=2)
The thing that you need in the x.y case is that x = a + by implies y = 1/b x - a/b so you need cc <- coef(x.y) abline(-cc[1]/cc[2], 1/cc[2], ....)
O__ ---- Peter Dalgaard Blegdamsvej 3 c/ /'_ --- Dept. of Biostatistics 2200 Cph. N (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907