[R] Remove term from formula for predict.lm

werner w pensterfuzzer at yahoo.de
Tue Jan 19 18:05:57 CET 2010


Thanks Gabor and Henrique!

Sorry for the imprecise question. I want predict() to use the coefficients
estimated by the original regression but to exclude terms from the
prediction formula. If I originally estimated y ~ x1 + x2 and got
coefficients b0, b1, b2, I would like to remove x2 and predict y = b0 +
b1*x1 using the the originally estimated coefficients b0 and b1.

@Gabor: I tried your suggestion but it seems although predict now accepts a
list with fewer variables, the new function is not used so that the
coefficient does not change.

> mod <- lm(y1 ~ x1 + x2 + x3 + x4, anscombe) 
> predict(eval(mod$call), list(x1=1,x2=1,x3=1, x4=1))
       1 
4.684909 
Warning message:
In predict.lm(eval(mod$call), list(x1 = 1, x2 = 1, x3 = 1, x4 = 1)) :
  prediction from a rank-deficient fit may be misleading
> mod$call$formula <- update(as.formula(mod$call$formula), ~ . - x1 - x2)
> predict(eval(mod$call), list(x3=1, x4=1))
       1 
4.684909 
> 

Many thanks,
  Werner
-- 
View this message in context: http://n4.nabble.com/Remove-term-from-formula-for-predict-lm-tp1017686p1017749.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list