在GAM(mgcv)中修改Logit链接

时间:2018-10-16 22:08:33

标签: r logistic-regression gam mgcv

我正在尝试修改mgcv软件包中的二项式GAM的logit链接,但没有取得太大的成功。下面由Ben Bolker提供的修改后的链接(此处的方法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")
}

我想将链接包含在gam中,形式为

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

在y = 1或0的情况下,x变量可以是连续的或分类的,而expos =两次观察之间的天数。

0 个答案:

没有答案