[R] problem with abline for x.y

Peter Dalgaard p.dalgaard at biostat.ku.dk
Fri Feb 20 16:02:46 CET 2004


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




More information about the R-help mailing list