nbcanlink("mu", short = FALSE)
mymu = 1:10 # Test some basic operations:
kmatrix = matrix(runif(length(mymu)), length(mymu), 1)
eta1 = nbcanlink(mymu, earg = list(size = kmatrix))
ans2 = nbcanlink(eta1, earg = list(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, earg = list(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 - 2 * x2, # eta1 < 0
size1 = size1,
size2 = size2)
ndata <- transform(ndata,
mu1 = nbcanlink(eta1, earg = list(size = size1), inv = TRUE),
mu2 = nbcanlink(eta1, earg = list(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 = 3),
stepsize = 0.5, 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