On Fri, 23 Feb 2007, Dimitris Rizopoulos wrote: > > ----- Original Message ----- From: "Prof Brian Ripley" > <[EMAIL PROTECTED]> > To: "Dimitris Rizopoulos" <[EMAIL PROTECTED]> > Cc: <r-devel@r-project.org> > Sent: Friday, February 23, 2007 1:40 PM > Subject: Re: [Rd] Bootstrapping stepAIC() with glm.nb() > > >> You did not say what the problem was! >> >> But you are asking that an object which is not in scope (index) be found a >> few levels down. You should be able to fix this by substituting in the >> values in fn. Here is one way: >> >> up.obj <- update(object, data = data[index[, i], ]) >> Call <- up.obj$call >> Call$data <- data[index[, i], ] >> up.obj$call <- Call >> >> (there are others). > > > thanks very much for your reply and workaround. However, could you please > explain me (or point me to the right direction) why it *does* work, without > the workaround, for 'lm', 'glm' and 'aov' objects.
They have dropterm methods that make use of the model frame that is stored with the objects (by default). > > Thanks in advance, > Dimitris > > > > >> >> On Fri, 23 Feb 2007, Dimitris Rizopoulos wrote: >> >>> Dear all, >>> >>> I would like to Boostrap the stepAIC() procedure from package MASS for >>> variety of model objects, i.e., >>> >>> fn <- function(object, data, B = 2){ >>> n <- nrow(data) >>> res <- vector(mode = "list", length = B) >>> index <- sample(n, n * B, replace = TRUE) >>> dim(index) <- c(n, B) >>> for (i in 1:B) { >>> up.obj <- update(object, data = data[index[, i], ]) >>> res[[i]] <- stepAIC(up.obj, trace = FALSE) >>> } >>> res >>> } >>> >>> #################### >>> >>> library(MASS) >>> >>> >>> # 'glm' objects >>> x1 <- runif(100, -4, 4) >>> x2 <- runif(100, -4, 4) >>> y <- 1 + 2 * x1 + rnorm(100, sd = 3) >>> dat <- data.frame(y, x1, x2) >>> glmFit <- glm(y ~ x1 + x2, data = dat) >>> fn(glmFit, data = dat) >>> >>> # 'aov' objects >>> quine.hi <- aov(log(Days + 2.5) ~ .^4, quine) >>> fn(quine.hi, data = quine) >>> >>> >>> However, for "negbin" objects returned by glm.nb() the following >>> problem occurs: >>> >>> quine.nb <- glm.nb(Days ~ .^4, data = quine) >>> fn(quine.nb, data = quine) >>> >>> >>> Any hints to overcome this are greatly appreciated. >>> >>> Thanks in advance, >>> Dimitris >>> >>> ---- >>> Dimitris Rizopoulos >>> Ph.D. Student >>> Biostatistical Centre >>> School of Public Health >>> Catholic University of Leuven >>> >>> Address: Kapucijnenvoer 35, Leuven, Belgium >>> Tel: +32/(0)16/336899 >>> Fax: +32/(0)16/337015 >>> Web: http://med.kuleuven.be/biostat/ >>> http://www.student.kuleuven.be/~m0390867/dimitris.htm >>> >>> >>> Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm >>> >>> ______________________________________________ >>> R-devel@r-project.org mailing list >>> https://stat.ethz.ch/mailman/listinfo/r-devel >>> >> >> -- >> Brian D. Ripley, [EMAIL PROTECTED] >> Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ >> University of Oxford, Tel: +44 1865 272861 (self) >> 1 South Parks Road, +44 1865 272866 (PA) >> Oxford OX1 3TG, UK Fax: +44 1865 272595 >> > > > Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm > -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel