Изменение логит-ссылки в GAM (mgcv) - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь изменить ссылку logit для биномиальных GAM в пакете mgcv, но я не добиваюсь большого успеха.Модифицированная ссылка, предоставленная Беном Болкером ниже (Метод 2 здесь: https://rpubs.com/bbolker/logregexp), работает в GLM, но не в GAM. Я хочу использовать код в ежедневном анализе выживаемости гнезда в соответствии с методом логистического воздействия, описанным Shaffer (2004;https://www.jstor.org/stable/pdf/4090416.pdf). Любая помощь будет принята с благодарностью.

Код для ссылки GLM:

logexp <- function(exposure = 1)
{
    linkfun <- function(mu) qlogis(mu^(1/exposure))
            linkinv <- function(eta)  plogis(eta)^exposure
    logit_mu_eta <- function(eta) {
        ifelse(abs(eta)>30,.Machine$double.eps,
               exp(eta)/(1+exp(eta))^2)
        ## OR .Call(stats:::C_logit_mu_eta, eta, PACKAGE = "stats")
    }
    mu.eta <- function(eta) {       
        exposure * plogis(eta)^(exposure-1) *
            logit_mu_eta(eta)
    }
    valideta <- function(eta) TRUE
    link <- paste("logexp(", deparse(substitute(exposure)), ")",
                   sep="")
    structure(list(linkfun = linkfun, linkinv = linkinv,
                   mu.eta = mu.eta, valideta = valideta, 
                   name = link),
              class = "link-glm")
}

Я хочу включить ссылку в игру в виде

mod<-gam(y~x1 + x2 + s(x3), family=binomial(logexp(df$expos), data=df) 

Где y = 1 или 0, переменная x может быть непрерывной или категоричной, а выставление = количество дней между наблюдениями.

...