Description Usage Arguments Details Value Note Author(s) See Also Examples
Checks to see if a fitted object suffers from some known bug.
1 2  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).
Secondgeneration VGAMs based on sm.ps
are a
modern alternative to using s
. It does not
suffer from this bug. However, G2VGAMs require a reasonably
large sample size in order to work more reliably.
The default is a single logical (TRUE
if any term is
TRUE
),
otherwise a vector of such with each element corresponding to a term.
If the value is TRUE
then I suggest replacing the VGAM
by a similar model fitted by vglm
and using
regression splines, e.g., bs
,
ns
.
When the bug is fixed this function may be withdrawn, otherwise
always return FALSE
s!
T. W. Yee
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24  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)

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.