R/glm.inverse.link.R

"glm.inverse.link" <- function(mu, family="gaussian", link="identity", k=1){

  if (family=="bernoulli"){
    if (link=="logit"){
      eta <- log(mu/(1-mu))
    }
    if (link=="probit"){
      eta <- qnorm(mu)
    }
  }

  if (family=="gaussian"){
    if (link=="identity"){
      eta <- mu
    }
  }

  if (link=="log"){  ## gaussian+poisson
    eta <- log(mu)
  }

  if (family=="gamma"){
    if (link=="reciprocal"){
      eta <- 1/mu
    }
  }

  if (family=="inverse.gaussian"){
    if (link=="quadratic.reciprocal"){
      eta <- 1/(mu*mu)
    }
  }

  if (family=="negative.binomial"){
    if (link=="log"){
      eta <- log(k*mu/(1+mu))
    }
  }

  return(eta)
}

Try the gplm package in your browser

Any scripts or data that you put into this service are public.

gplm documentation built on May 2, 2019, 2:10 a.m.