[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.''
cheers,
Rolf Turner
rolf at math.unb.ca
More information about the R-help
mailing list