Skip to content
Back to formatted view

Raw Message

Message-ID: <1263920757363-1017749.post@n4.nabble.com>
Date: 2010-01-19T17:05:57Z
From: werner w
Subject: Remove term from formula for predict.lm
In-Reply-To: <971536df1001190824u37ecd4e3x73acbcbd2f3d5f29@mail.gmail.com>

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.