I am using gam in mgcv (1.3-22) and trying to use gcv to help with model 
selection.  However, I'm a little confused by the process of assessing GCV 
scores based on their magnitude (or on relative changes in magnitude).

Differences in GCV scores often seem "obvious" with my poisson gams but with 
negative binomial, the decision seems less clear.

My data represent a similar pattern as below - where I see (seemingly) drastic 
changes in GCV for the poisson with different model structures, but the 
negative binomial often seems only to change in the second or third decimal 
place for the same models.

Is there a standard for how many decimals one should look at GCV, or am I 
totally missing something (I'm quite new to this, as I'm sure is obvious).  Why 
such a difference in GCV change between poisson and negbin?

Thanks in advance!
Jordan


library(mgcv)
set.seed(0) 
n<-400
sig<-2
x0 <- runif(n, 0, 1)
x1 <- runif(n, 0, 1)
x2 <- runif(n, 0, 1)
x3 <- runif(n, 0, 1)
f0 <- function(x) 2 * sin(pi * x)
f1 <- function(x) exp(2 * x)
f2 <- function(x) 0.2*x^11*(10*(1-x))^6+10*(10*x)^3*(1-x)^10
f <- f0(x0) + f1(x1) + f2(x2)
g<-exp(f/4)
y<-rpois(rep(1,n),g)
summary(gam(y~s(x0)+s(x1)+s(x2)+s(x3),family=poisson,scale=-1))$gcv
summary(gam(y~x0+x1+x2+s(x3),family=poisson,scale=-1))$gcv
summary(gam(y~x0+x1+x2+x3,family=poisson,scale=-1))$gcv
summary(gam(y~s(x3),family=poisson,scale=-1))$gcv

summary(gam(y~s(x0)+s(x1)+s(x2)+s(x3),family=negative.binomial(1)))$gcv
summary(gam(y~x0+x1+x2+s(x3),family=negative.binomial(1)))$gcv
summary(gam(y~x0+x1+x2+x3,family=negative.binomial(1)))$gcv
summary(gam(y~s(x3),family=negative.binomial(1)))$gcv

Outputs from above:
> summary(gam(y~s(x0)+s(x1)+s(x2)+s(x3),family=poisson,scale=-1))$gcv
[1] 1.218529
> summary(gam(y~x0+x1+x2+s(x3),family=poisson,scale=-1))$gcv
[1] 5.058014
> summary(gam(y~x0+x1+x2+x3,family=poisson,scale=-1))$gcv
[1] 4.954163
> summary(gam(y~s(x3),family=poisson,scale=-1))$gcv
[1] 8.286693
> 
> summary(gam(y~s(x0)+s(x1)+s(x2)+s(x3),family=negative.binomial(1)))$gcv
[1] 1.047581
> summary(gam(y~x0+x1+x2+s(x3),family=negative.binomial(1)))$gcv
[1] 1.013617
> summary(gam(y~x0+x1+x2+x3,family=negative.binomial(1)))$gcv
[1] 1.012658
> summary(gam(y~s(x3),family=negative.binomial(1)))$gcv
[1] 1.005986


#######################################
Jordan Watson
School of Aquatic and Fishery Sciences
University of Washington
Seattle, WA

______________________________________________
[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
and provide commented, minimal, self-contained, reproducible code.

Reply via email to