Re: [R] and predict.glm: error ' no terms component'

From: Thomas Lumley <>
Date: Thu 30 Sep 2004 - 00:55:40 EST

On Wed, 29 Sep 2004, Christoph Lehmann wrote:

> Hi
> when I fit a glm by
>,y,family = binomial())
> and then try to use the object for prediction of newdata by:
> predict.glm(object, newdata)
> I get the error:
> Error in terms.default(object) : no terms component
> I know I can use glm() and a formula, but for my case I prefer

Well, you can't use predict.glm that way. As the function name suggests, it is a predict method for objects of class "glm", which in your case you do not have.

There are two reasons why it won't work. For type="terms" the formula is needed to identify terms, and for any type of prediction the formula is needed to convert the data frame newdata into a model matrix.

You would need to write a function where the new data was a model matrix. If you only need point predictions then

predict_glm_fit<-function(glmfit, newmatrix, addintercept=TRUE){

    if (addintercept)

    eta<-glmfit$coef %*% newmatrix

would work.

         -thomas mailing list PLEASE do read the posting guide! Received on Thu Sep 30 01:06:39 2004

This archive was generated by hypermail 2.1.8 : Fri 18 Mar 2005 - 02:56:54 EST