Hello,

Instead of reversing the regression, that, like you say, may have problems, it's very easy to wrap the formula

x' <- (y' - beta0)/beta1

in a function and use the direct regression to get new 'x' values from new 'y' ones.
This function assumes a first order ols model.

invpredict <- function(model, newdata){
    if(class(newdata) %in% c("data.frame", "list"))
        newdata <- unlist(newdata)
    cc <- coef(model)
    x <- (newdata - cc[1])/cc[2]
    x
}

# Using your last data example
inv2 <- invpredict(model, c(1600, 34000))
cbind(new=c(1600, 34000), inv.pred, inv2)
    new    inv.pred        inv2
1  1600   0.5091916  -0.5980076
2 34000 244.4645607 245.7692308

I wonder what would be the CI's for the predicted 'concn'.

Rui Barradas
Em 30-08-2012 00:08, John Thaden escreveu:
Draper & Smith sections (3.2, 9.6) address prediction interval issues, but
I'm also concerned with the linear fit itself. The Model II regression
literature makes it abundantly clear that OLS regression of x on y
frequently yields a different line than of y on x. The example below is not
so extreme, but those given e.g. by Ludbrook, J. (2012) certainly are. Rui
notes the logical problem of imputing an unknown x using a calibration
curve where the x values are without error. Regression x on y doesn't help
that.  But on a practical level, I definitely recall (years ago) using
predict.lm and newdata to predict x terms. I wish I remembered how.


require(stats)
#Make an illustrative data set
set.seed(seed = 1111)
dta <- data.frame(
     area = c(
         rnorm(6, mean = 4875, sd = 400),
         rnorm(6, mean = 8172, sd = 800),
         rnorm(6, mean = 18065, sd = 1200),
         rnorm(6, mean = 34555, sd = 2000)),
     concn = rep(c(25, 50, 125, 250), each = 6))
model <- lm(area ~ concn, data = dta)
inv.model <- lm(concn ~ area, data = dta)
plot(area ~ concn, data = dta)
abline(model)
inv.new = cbind.data.frame(area = c(1600, 34000))
inv.pred <- predict(inv.model, newdata = inv.new)
lines(x = inv.pred, y = unlist(inv.new), col = "red")

_____________________________
Ludbrook, J. (2012). "A primer for biomedical scientists on how to execute
Model II linear regression analysis." Clinical and Experimental
Pharmacology and Physiology 39(4): 329-335.

        [[alternative HTML version deleted]]

______________________________________________
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.

______________________________________________
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.

Reply via email to