Dear Peter and Luciano, I agree that this is a bug, and I'll try to fix it as soon as I have a chance -- probably the week after next.
I was rather surprised that effect() works in a model without a constant, but it does seem to: > model2<- glm( prop ~ -1 + tra, weights = tries, data = test, family = binomial) > allEffects(model2) model: prop ~ -1 + tra tra effect tra V D C L 0.4129073 0.4731815 0.5454545 0.4548451 > model3<- glm( prop ~ tra, weights = tries, data = test, family = binomial) > allEffects(model3) model: prop ~ tra tra effect tra V D C L 0.4129073 0.4731815 0.5454545 0.4548451 > 1/(1 + exp(-coef(model2))) traV traD traC traL 0.4129073 0.4731815 0.5454545 0.4548451 I expect that this is peculiar to the one-way classification, and that effect() will not work in general for a model without a constant (which will violate marginality). Thanks for bringing the problem to my attention. I'm afraid that I've been so busy this fall that I've been unable to monitor the r-help list. John -------------------------------- John Fox Senator William McMaster Professor of Social Statistics Department of Sociology McMaster University Hamilton, Ontario, Canada web: socserv.mcmaster.ca/jfox > -----Original Message----- > From: Peter Ehlers [mailto:ehl...@ucalgary.ca] > Sent: October-09-10 10:20 AM > To: Luciano Selzer > Cc: r-help@r-project.org; John Fox > Subject: Re: [R] Possible Bug in Effects Package > > On 2010-10-02 11:47, Luciano Selzer wrote: > > Dear List, > > I find Effects package very useful, but I believe I have found a bug in > > allEffects function. Please consider the following code: > > > > test<- data.frame(tries= round(runif(40, 5, 300)), > > tra = gl(4, 10, labels = c("V", "D", "C", "L")), > > prop= runif(40, 0, 1)) > > > > test$success<- round(with(test, tries*prop)) > > test$prop<- with(test, success/tries) > > > > model<- glm( cbind(success, tries) ~ -1 + tra, data = test, family = > > binomial) > > allEffects(model) > > > > #Error en eval(expr, envir, enclos) : objeto 'tra' no encontrado > > > > model2<- glm( prop ~ -1 + tra, weights = tries, data = test, family = > > binomial) > > allEffects(model2) > > #Works > > > > On a quick search on the internet I've found nothing about this. Is this a > > bug? > > > > I think that this is indeed a bug, probably due to the use of > the all.vars() function in effects:::analyze.model(). > > The obvious workaround is to specify your model as in model2 > above or, if you want to use the matrix-response version, then > give the matrix a name and use that in your model: > > respmat <- with(test, cbind(success, tries - success)) > ##[correcting your cbind] > mod <- glm(respmat ~ ....) > > -Peter Ehlers > > > Thanks for your time > > > > > > Luciano > > > > [[alternative HTML version deleted]] > > ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.