Search code examples
rcross-validationpoissonglmnetoffset

Error in cv.glmnet for poisson with an offset


I am facing an error when trying to run a cross validation on glmnet for family = poisson using an offset.

I managed to replicate the error with the very simple example below:

library(glmnet)

#poisson
N=500; p=20
nzc=5
x=matrix(rnorm(N*p),N,p)
beta=rnorm(nzc)
f = x[,seq(nzc)]%*%beta
mu=exp(f)
y=rpois(N,mu)
exposure=rep(0.5,length(y))

#cross validation
cv=cv.glmnet(x,y,family="poisson",offset=log(exposure),nlambda=50,nfolds=3)

which returns the following error:

Error: No newoffset provided for prediction, yet offset used in fit of glmnet

I can't figure out what I'm doing wrong here. And wasn't able to find any help on the internet. Would anyone have ideas?

Thanks a lot!

EDIT : this issue is obsolete, and was linked to the version 2.0-12 of the glmnet package - fixed when updating to version 2.0-13


Solution

  • This works: predict(cv,x,newoffset=log(exposure))

    From the documentation for glmnet for the offset parameter:

    If supplied, then values must also be supplied to the predict function.