I have a data set concerning ferritin levels in blood. There are three
relevant columns for this question, ferritin (continuous), score (ordered,
from 0 to 8) and gender. There is a good linear relationship between
log(ferritin) and score for each gender.
I can create a lattice plot on the log scale showing the data and the
fitted line:
xyplot(log(ferritin) ~ total|gender, data = blood,
panel = function(x, y, ...){
panel.xyplot(x, y)
panel.abline(lm(y ~ x), type = 'l', ...)
}
)
I would like to be able to plot the data and the fitted line on the
original scale however. I can't see how to do that.
Any suggestions?
David Scott
_________________________________________________________________
David Scott Department of Statistics, Tamaki Campus
The University of Auckland, PB 92019
Auckland 1142, NEW ZEALAND
Phone: +64 9 373 7599 ext 86830 Fax: +64 9 373 7000
Email: d.scott at auckland.ac.nz
Graduate Officer, Department of Statistics
Director of Consulting, Department of Statistics
On 9/18/08, David Scott <d.scott at auckland.ac.nz> wrote:> > I have a data set concerning ferritin levels in blood. There are three > relevant columns for this question, ferritin (continuous), score (ordered, > from 0 to 8) and gender. There is a good linear relationship between > log(ferritin) and score for each gender. > > I can create a lattice plot on the log scale showing the data and the > fitted line: > xyplot(log(ferritin) ~ total|gender, data = blood, > panel = function(x, y, ...){ > panel.xyplot(x, y) > panel.abline(lm(y ~ x), type = 'l', ...) > } > ) > > I would like to be able to plot the data and the fitted line on the > original scale however. I can't see how to do that.Something like this should work: xyplot(ferritin ~ total|gender, data = blood, panel = function(x, y, ...){ panel.xyplot(x, y) fm <- lm(log(y) ~ x) panel.curve(exp(predict(fm, newdata = list(x = x)))) }) -Deepayan