nbcanlink("mu", short = FALSE)
mymu <- 1:10 # Test some basic operations:
kmatrix <- matrix(runif(length(mymu)), length(mymu), 1)
eta1 <- nbcanlink(mymu, size = kmatrix)
ans2 <- nbcanlink(eta1, size = kmatrix, inverse = TRUE)
max(abs(ans2 - mymu)) # Should be 0
mymu <- c(seq(0.5, 10, length = 101))
kmatrix <- matrix(10, length(mymu), 1)
plot(nbcanlink(mymu, size = kmatrix) ~ mymu, las = 1,
type = "l", col = "blue", lwd = 1.5, xlab = expression({mu}))
# Estimate the parameters from some simulated data (see Warning section)
set.seed(123)
ndata <- data.frame(x2 = runif(nn <- 1000 ))
size1 <- exp(1); size2 <- exp(2)
ndata <- transform(ndata, eta1 = -1 - 1 * x2, # eta1 < 0
size1 = size1,
size2 = size2)
ndata <- transform(ndata,
mu1 = nbcanlink(eta1, size = size1, inv = TRUE),
mu2 = nbcanlink(eta1, size = size2, inv = TRUE))
ndata <- transform(ndata, y1 = rnbinom(nn, mu = mu1, size = size1),
y2 = rnbinom(nn, mu = mu2, size = size2))
head(ndata)
summary(ndata)
fit <- vglm(cbind(y1, y2) ~ x2,
# negbinomial("nbcanlink", imethod = 1, max.chunk.MB = 9),
negbinomial("nbcanlink", imethod = 2),
stepsize = 0.25, data = ndata, # Deliberately slow the convergence rate
maxit = 100, trace = TRUE) # Warning: may converge to a local soln
coef(fit, matrix = TRUE)
summary(fit)
Run the code above in your browser using DataLab