set.seed(1234)
n <- 1e4
x <- matrix(rnorm(n * 25), ncol = 25)
eta <- 0.1 + 0.25 * x[,1] - 0.25 * x[,3] + 0.75 * x[,5] -0.35 * x[,6]
dat <- as.data.frame(x)
# binomial
dat$y <- rbinom(n, 1, pnorm(eta))
system.time({
gl <- glm(y ~ ., data = dat,
family = binomial)
})
system.time({
gf0 <- glm(y ~ ., data = dat,
family = binomial,
method = fastglm_fit)
})
system.time({
gf1 <- glm(y ~ ., data = dat,
family = binomial,
method = fastglm_fit,
fastmethod = 1)
})
# poisson
dat$y <- rpois(n, eta^2)
system.time({
gl <- glm(y ~ ., data = dat,
family = poisson)
})
system.time({
gf0 <- glm(y ~ ., data = dat,
family = poisson,
method = fastglm_fit)
})
system.time({
gf1 <- glm(y ~ ., data = dat,
family = poisson,
method = fastglm_fit,
fastmethod = 1)
})
# gamma
dat$y <- rgamma(n, exp(eta) * 1.75, 1.75)
system.time({
gl <- glm(y ~ ., data = dat,
family = Gamma(link = "log"))
})
system.time({
gf0 <- glm(y ~ ., data = dat,
family = Gamma(link = "log"),
method = fastglm_fit)
})
system.time({
gf1 <- glm(y ~ ., data = dat,
family = Gamma(link = "log"),
method = fastglm_fit,
fastmethod = 1)
})
# Different (equivalent) ways of supplying
# control arguments:
gf1 <- glm(y ~ ., data = dat,
family = Gamma(link = "log"),
method = fastglm_fit,
fastmethod = 1)
gf1 <- glm(y ~ ., data = dat,
family = Gamma(link = "log"),
method = fastglm_fit,
control = list(fastmethod = 1))
gf1 <- glm(y ~ ., data = dat,
family = Gamma(link = "log"),
method = fastglm_fit,
control = list(method = 1))
Run the code above in your browser using DataLab