[R] package gbm, predict.gbm with offset

Ridgeway, Greg gregr at rand.org
Tue Sep 21 20:20:07 CEST 2010


You've got it right. Just multiply the predicted values by the exposure time or number of cases and that will get you what you want. Note that, depending on the scale of the predictions, you might want to do all the predictions and +log(offset) on the log scale and then exponentiate it. Should be more stable numerically.

Greg

________________________________________
From: Markus Loecher [mailto:markus.loecher at gmail.com] 
Sent: Tuesday, September 21, 2010 11:15 AM
To: r-help at r-project.org
Cc: Ridgeway, Greg
Subject: package gbm, predict.gbm with offset

Dear all,
the help file for predict.gbm  states that "The predictions from gbm do not include the offset term. The user may add the value of the offset to the predicted value if desired." I am just not sure how exactly, especially for a Poisson model, where I believe the offset is multiplicative ?

For example:

library(MASS)

fit1 <- glm(Claims ~ District + Group + Age + offset(log(Holders)),
    data = Insurance, family = poisson)
head(predict(fit1, data = Insurance, type = "response"))

#glm.predict includes the offset:
head(predict(fit1, newdata = Insurance, type = "response"))
#        1         2         3         4         5         6 
# 31.86358  35.27587  28.18080 158.87829  53.97772  84.16012 


library(gbm)

fit2 <- gbm(Claims ~ District + Group + Age + offset(log(Holders)),
    data = Insurance, distribution ="poisson", n.trees = 600)
head(predict(fit2, newdata = Insurance, type = "response", n.trees=600))

#[1] 0.1378249 0.1378249 0.1314991 0.1284441 0.1389563 0.1389563
#Warning message:
#In predict.gbm(fit2, newdata = Insurance, type = "response", n.trees = 600) :
#  predict.gbm does not add the offset to the predicted values.

Would the answer be simple multiplication such as:
head(predict(fit2, newdata = Insurance, type = "response", n.trees=600)*Insurance[,"Holders"])
[1]  27.15151  36.38577  32.34878 215.78607  39.46359  74.48058

Any help would be immensely useful.

Thx,
Markus

__________________________________________________________________________

This email message is for the sole use of the intended r...{{dropped:6}}



More information about the R-help mailing list