> I'm attempting to plot a cubic relationship between two variables > controlling for the effects of a third variable. In this short > example, I'm trying to use AGE to predict CORTEX while controlling for > the effects of TIV (total intracranial volume): > > ######################## > cortex = rnorm(100, mean=0.5, sd=0.5) > age = rnorm(100, mean=10, sd=2) > tiv = rnorm(100, mean=1000, sd=100) > > ## > ## simple regression (ignoring TIV) works > ## > cortex.lm = lm(cortex ~ poly(age, degree=3)) > plot(age, cortex) > pseudo.x = seq(min(age)-2, max(age)+2, len=200) > lines(pseudo.x, predict(cortex.lm, data.frame(age=pseudo.x))) > > ## > ## multiple regression (accounting for TIV) fails > ## > cortex.lm = lm(cortex ~ poly(age, degree=3) + tiv) > plot(age, cortex) > pseudo.x = seq(min(age)-2, max(age)+2, len=200) > lines(pseudo.x, predict(cortex.lm, data.frame(age=pseudo.x))) > ######################## > > Although the last 'lines' command fails, summary(cortex.lm) does give > me reasonable coefficients for the multiple regression. Can anyone > advise me if (1) this is at all a legitimate procedure, and (2) how to > draw the cubic function that fits the multiple regression?
The last line fails because you haven't specified any values for TIV in the data frame. There are a couple of things you can plot: 1. The effect on cortex of varying x, at different levels of tiv (which is what you were doing) lines(pseudo.x, predict(cortex.lm, data.frame(age=pseudo.x, tiv=1000))) lines(pseudo.x, predict(cortex.lm, data.frame(age=pseudo.x, tiv=min(tiv))), col="red") lines(pseudo.x, predict(cortex.lm, data.frame(age=pseudo.x, tiv=max(tiv))), col="blue") 2. The effect on cortex of varying tiv, at different levels of age. pseudo.tiv = seq(min(tiv)-20, max(tiv)+20, len=200) plot(tiv, cortex) lines(pseudo.tiv, predict(cortex.lm, data.frame(age=8, tiv=pseudo.tiv))) lines(pseudo.tiv, predict(cortex.lm, data.frame(age=min(age), tiv=pseudo.tiv)), col="red") lines(pseudo.tiv, predict(cortex.lm, data.frame(age=max(age), tiv=pseudo.tiv)), col="blue") Regards, Richie. Mathematical Sciences Unit HSL ------------------------------------------------------------------------ ATTENTION: This message contains privileged and confidential inform...{{dropped:20}} ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.