Nothing
## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ---- eval = FALSE, echo=TRUE-------------------------------------------------
# devtools::install_github("jaredhuling/fastglm")
## ---- echo=TRUE---------------------------------------------------------------
library(fastglm)
## ---- echo = TRUE-------------------------------------------------------------
data(esoph)
x <- model.matrix(cbind(ncases, ncontrols) ~ agegp + unclass(tobgp)
+ unclass(alcgp), data = esoph)
y <- cbind(esoph$ncases, esoph$ncontrols)
gfit1 <- fastglm(x = x, y = y, family = binomial(link = "cloglog"))
summary(gfit1)
## ---- fig.show='hold'---------------------------------------------------------
set.seed(1)
x <- matrix(rnorm(10000 * 100), ncol = 100)
y <- (exp(0.25 * x[,1] - 0.25 * x[,3] + 0.5 * x[,4] - 0.5 * x[,5] + rnorm(10000)) ) + 0.1
system.time(gfit1 <- fastglm(cbind(1, x), y, family = Gamma(link = "sqrt")))
system.time(gfit2 <- glm(y~x, family = Gamma(link = "sqrt")) )
system.time(gfit3 <- glm2::glm2(y~x, family = Gamma(link = "sqrt")) )
## Note that fastglm() returns estimates with the
## largest likelihood
logLik(gfit1)
logLik(gfit2)
logLik(gfit3)
coef(gfit1)[1:5]
coef(gfit2)[1:5]
coef(gfit3)[1:5]
## check convergence of fastglm
gfit1$converged
## number of IRLS iterations
gfit1$iter
## now check convergence for glm()
gfit2$converged
gfit2$iter
## check convergence for glm2()
gfit3$converged
gfit3$iter
## increasing number of IRLS iterations for glm() does not help that much
system.time(gfit2 <- glm(y~x, family = Gamma(link = "sqrt"), control = list(maxit = 100)) )
gfit2$converged
gfit2$iter
logLik(gfit1)
logLik(gfit2)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.