[R] Re: errors in randomization test

Rolf Turner rolf at math.unb.ca
Tue Jul 6 14:23:59 CEST 2004

Colin Bleay wrote:

> last week i sent an e-mail about dealing with errors thrown up from a 
> glm.nb model carried out on multiple random datasets.
> every so often a dataset is created which results in the following error 
> after a call to glm.nb:
> "Error: NA/NaN/Inf in foreign function call (arg 1)
> In addition: Warning message:
> Step size truncated due to divergence"
> I am at a loss as to how to deal with this.
> firstly because the dataset that is generated, although throwing an error 
> when the glm.nb model is applied, is a valid dataset. so how do i 
> incorporate this dataset in my results (results being descriptive stats on 
> the coefficients from the multiple datasets) i.e. shoould coefficients be 
> set to zero?

	Almost surely, setting the coefficients equal to 0 is the
	wrong thing to do.  What the right thing is depends on the
	answer to ``lastly''.

	Setting the coefficients to be NA in this case (i.e.
	effectively throwing away such cases) is also wrong, but not
	quite as wrong as setting them equal to 0.

> secondly, how do i capture and deal with the error. is it possible to 
> construct an "if" statement so that "if error, do this, if not continue"

	This should be do-able using try().  Something like:

	c.list <- list()
	save.bummers <- list()
	K <- 0
	for(i in 1:42) {
		repeat {
			X <- generate.random.data.set()
			Y <- try(glm.nb(X,whatever))
			if(inherits(Y,"try-error")) {
				K <- K+1
				save.bummers[[K]] <- X
			} else break
		c.list[[i]] <- coeff(Y)

	This should give you a sample of 42 coefficient vectors from
	the ``successful'' data sets, and a list of all the (a random
	number of) data sets that yielded a lack of success.  You can
	then take the data sets stored in save.bummers and experiment
	with them to see what is causing the problem.

> lastly, i am unsure as to what characteristics of a dataset would result in 
> these errors in the glm.nb?

	Here I have to heed the advice (attributed to a ``great art
	historian'') from George F. Simmons' wonderful book on
	elementary differential equations:  ``A fool he who gives
	more than he has.''


						Rolf Turner
						rolf at math.unb.ca

More information about the R-help mailing list