Improve estimate of zeros and how to deal with concurvity in GAM NB I'm trying to model the number of deaths for each age, for 4 regions, across 5 years. I fitted several models, but end up with the following model:
m1 <- gam(deaths ~ ti(region, bs='re') + ti(ageCenter, bs='cr', k=40) + 
        ti(ageCenter, region, k=c(40,4)) + ageCenter*yearCenter + offset(log(PopMedia)), 
        family = nb, data = male, method = "REML")

The model is reasonable, all variables are significant. However, the concurvity is not great for region:
         para ti(Regiao) ti(ageCenter) ti(ageCenter,Regiao)
worst       1  0.8335333   1.000000000         0.0635483181
observed    1  0.8335333   0.007150858         0.0003614262
estimate    1  0.8335333   0.029291067         0.0005498903

Nevertheless, I compared the observed number of deaths with the predicted and the estimate was low for one region (the smaller region). I tried to improve the model and I get a closer estimate for the smaller region but another region decreased the estimate number of zeros. This is the new model:
m2 <- gam(Obitosdx ~ ti(Regiao, bs='re') + ti(ageCenter, bs='cr', k=40, by=Regiao) + 
        ti(ageCenter, Regiao, k=c(40,4)) + ageCenter*yearCenter + offset(log(PopMedia)), 
        family = nb, data = male, method = "REML")

All variables are still significant, the concurvity remains unchanged as there's still ti(region) in the model. Residuals between the two models are similar. 
My first question relates to the models. I'm not sure if it's appropriate to have ti(ageCenter, bs='cr', k=40, by=Regiao) in the same model as ti(ageCenter, Regiao, k=c(40,4)). Wouldn't the ti product interaction also give different smooths for each level of Region?
My second question is the concurvity for ti(region) worrisome? If the variable is significant how to deal with this?
These are the two models, comparing the m1 and m2 for the smallest region and a region intermediate. Do you have any suggestion for improvement? The estimate of the number of zeros is quite low. For the smallest region, the m2 estimates a closer number of zeros, while for the intermediate region, the m1 estimates a closer number of zeros. Any suggestion is most welcome! 

EDIT
Following @Gavin suggestion, I've recoded Region to a factor variable, which should have been a factor to begin with. However, I still get a large deviation for young ages. Any suggestion? The plot above with the intermediate region corresponds to Alentejo, while the smallest to RAM.

 A: You can't fit a smooth to a factor variable and this means that your ti(ageCenter, Regiao, k=c(40,4)), ti(Regiao, bs = "re"), and ti(ageCentre, by = Regiao) are not doing what you might expect them too.
That the former even works at all indicates that Region (or Regiao, which is it? Does it matter?) is not stored as factor variable. That means that the by smooth is actually a linear effect of Region modified by a smooth of ageCentre, and not separate smooths for the regions.
The high concurvity of the terms is most likely due to the above problems.
You are also going to need to be very careful with the ageCentre*yearCentre term as this will include a linear effect of ageCentre and somewhere among the bases of the splines you'll have a linear effect of ageCentre also, somewhere in the null space of one of the splines. This is going to introduce some identifiability issues; or it may, unless mgcv is being very clever to remove those effects (and I don't think it is doing this).
Assuming Region is a factor (it is isn't, recode it to one), then a model with separate smooths of ageCentre for each region plus the effect of ageCentre and yearCentre might be written as
m1 <- gam(deaths ~ ti(yearCenter) +
                   region +
                   ti(ageCenter, bs='cr', k=40, by = region) + 
                   ti(ageCenter, yearCenter) +
                   offset(log(PopMedia)), 
          family = nb, data = male, method = "REML")

I made the ageCentre by yearCentre thing a smooth, and I doubt you want to estimate a random effect with four levels (but if you must, put the re basis and smooth back on the region term).
