On Thu, 30 Sep 2004, Christoph Lehmann wrote:

many thanks I did it the following way, based on Thomas' suggestion

There was a reason why I didn't call the function predict.glm.fit: it isn't a method for predict. You will be calling it directly, rather than via predict as you should for a method.


        -thomas

predict.glm.fit<-function(glmfit, newmatrix){
  newmatrix<-cbind(1,newmatrix)
  coef <- rbind(1, as.matrix(glmfit$coef))
  eta <- as.matrix(newmatrix) %*% as.matrix(coef)
  exp(eta)/(1 + exp(eta))
}


cheers

christoph







Thomas Lumley wrote:
On Wed, 29 Sep 2004, Christoph Lehmann wrote:

Hi

when I fit a glm by

    glm.fit(x,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 glm.fit(x,y)...


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)
    newmatrix<-cbind(1,newmatrix)
   eta<-glmfit$coef %*% newmatrix
   family$linkinv(eta)
}

would work.

    -thomas

______________________________________________
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html






Thomas Lumley Assoc. Professor, Biostatistics [EMAIL PROTECTED] University of Washington, Seattle

______________________________________________
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to