Looking at your question, I assume that your main question is why the bias doesn't matter.
Theft of the proposal from @Ben Bolker Rpub ( https://rpubs.com/bbolker/logregexp ): "A very common situation in the environment (and elsewhere) is survival / binary result when individuals (each measured once) differ in their The classic approach to this problem is to use an additional log-log link.
Therefore, on this basis, I would suggest that the code you are looking for could be:
model <- glm(f_ocur~altitud+UTM_X+UTM_Y+j_sin+j_cos+temp_res+pp, data=mydata, family = binomial(link = cloglog),offset=log(1/off))
Below is a small example, which shows that the results are not only different from each other and without bias, but also using the choice of the AICc model, the better the model is rated higher, despite the fact that the time is โrunningโ with the โsiteโ.
library(AICcmodavg) set.seed(1) time <- c(rep(1,50),rep(2,50)) site <- c(rep("site 1",50),rep("site 2",50)) surv <- c(rbinom(50,1,prob=0.7),rbinom(50,1,prob=0.7^2)) my.data <- data.frame(surv, site, time) # setup AICc model list Cand.models <- list( ) Cand.models[[1]] <- glm(surv ~ 1, data=my.data, family = binomial(link = cloglog), offset=log(1/time)) Cand.models[[2]] <- glm(surv ~ 1, data=my.data, family = binomial(link = cloglog)) Cand.models[[3]] <- glm(surv ~ site , data=my.data, family = binomial(link = cloglog), offset=log(1/time)) # create a vector of names to trace back models in set Modnames <- paste("mod", 1:length(Cand.models), sep = " ") # generate AICc table aictab(cand.set = Cand.models, modnames = Modnames, sort = TRUE)