Bootstrapping stepAIC() with glm.nb()
On Fri, 23 Feb 2007, Dimitris Rizopoulos wrote:
----- Original Message ----- From: "Prof Brian Ripley" <ripley at stats.ox.ac.uk> To: "Dimitris Rizopoulos" <dimitris.rizopoulos at med.kuleuven.be> Cc: <r-devel at 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 at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
-- Brian D. Ripley, ripley at stats.ox.ac.uk 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, ripley at stats.ox.ac.uk 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