[R] Remove term from formula for predict.lm

Gabor Grothendieck ggrothendieck at gmail.com
Tue Jan 19 19:03:32 CET 2010


If you want to keep the same coefficients but ignore certain ones just
use 0 for the ones you don't want:

mod <- lm(Sepal.Length ~ Petal.Length + Petal.Width, iris)
predict(mod, list(Petal.Length = 3, Petal.Width = 0))


Regarding the problem with the example, the example data was not the
best for showing this because there are co-linear columns in the
anscombe data set.  Using iris we see that it does produce different
answers:

> mod <- lm(Sepal.Length ~ Petal.Length + Petal.Width, iris)
> predict(eval(mod$call), list(Petal.Length = 3, Petal.Width = 3))
       1
4.857262
> mod$call$formula <- update(as.formula(mod$call$formula), ~ . - Petal.Width)
> predict(eval(mod$call), list(Petal.Length = 3))
      1
5.53337


On Tue, Jan 19, 2010 at 12:05 PM, werner w <pensterfuzzer at yahoo.de> wrote:
>
> 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.
>
> ______________________________________________
> R-help at 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.
>



More information about the R-help mailing list