Does the Fitted Object Suffer from a Known Bug?
Checks to see if a fitted object suffers from some known bug.
is.buggy(object, ...) is.buggy.vlm(object, each.term = FALSE, ...)
object |
A fitted VGAM object, e.g., from
|
each.term |
Logical. If |
... |
Unused for now. |
It is known that vgam with s terms
do not correctly handle constraint matrices (cmat, say) when
crossprod(cmat) is not diagonal.
This function detects whether this is so or not.
Note that probably all VGAM family functions have defaults where all
crossprod(cmat)s are diagonal, therefore do not suffer from this
bug. It is more likely to occur if the user inputs constraint matrices
using the constraints argument (and setting zero = NULL
if necessary).
When the bug is fixed this function may be withdrawn, otherwise
always return FALSEs!
T. W. Yee
fit1 <- vgam(cbind(agaaus, kniexc) ~ s(altitude, df = c(3, 4)),
binomialff(multiple.responses = TRUE), data = hunua)
is.buggy(fit1) # Okay
is.buggy(fit1, each.term = TRUE) # No terms are buggy
fit2 <- vgam(cbind(agaaus, kniexc) ~ s(altitude, df = c(3, 4)),
binomialff(multiple.responses = TRUE), data = hunua,
constraints =
list("(Intercept)" = diag(2),
"s(altitude, df = c(3, 4))" = matrix(c(1, 1, 0, 1), 2, 2)))
is.buggy(fit2) # TRUE
is.buggy(fit2, each.term = TRUE)
constraints(fit2)
# fit2b is an approximate alternative to fit2:
fit2b <- vglm(cbind(agaaus, kniexc) ~ bs(altitude, df = 3) + bs(altitude, df = 4),
binomialff(multiple.responses = TRUE), data = hunua,
constraints =
list("(Intercept)" = diag(2),
"bs(altitude, df = 3)" = rbind(1, 1),
"bs(altitude, df = 4)" = rbind(0, 1)))
is.buggy(fit2b) # Okay
is.buggy(fit2b, each.term = TRUE)
constraints(fit2b)Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.