Re: [R] stepAIC invalid scope argument

From: Adaikalavan Ramasamy <ramasamy_at_cancer.org.uk>
Date: Mon 15 Aug 2005 - 13:04:26 EST

You are right, it works fine with a different name. Its a bad habit that I need to shake off.

The error message said that the second argument was invalid. The second argument in stepAIC and addterm is 'scope' and thus the title.

Thank you again.

Regards, Adai

On Mon, 2005-08-15 at 15:23 +0100, Prof Brian Ripley wrote:
> Try not to use the name of an R object ... the error is caused by using
> 'df' as the second argument to eval().
>
> It works with DF in place of df.
>
> I don;t understand your subject line: that is not the error message you
> received.
>
> On Mon, 15 Aug 2005, Adaikalavan Ramasamy wrote:
>
> > I am trying to replicate the first example from stepAIC from the MASS
> > package with my own dataset but am running into error. If someone can
> > point where I have gone wrong, I would appreciate it very much.
> >
> > Here is an example :
> >
> > set.seed(1)
> > df <- data.frame( x1=rnorm(1000), x2=rnorm(1000), x3=rnorm(1000) )
> > df$y <- 0.5*df$x1 + rnorm(1000, mean=8, sd=0.5)
> > # pairs(df); head(df)
> >
> > lo <- aov( y ~ 1, data=df )
> > hi <- aov( y ~ .^2, data=df )
> > mid <- aov( y ~ x2 + x3, data=df )
> >
> > Running any of the following commands
> >
> > stepAIC( mid, scope=list(upper = ~x1 + x2 + x3 , lower = ~1) )
> > stepAIC( mid, scope=list(upper = hi , lower = lo) )
> > addterm( mid, ~ x1 + x2 + x3 )
> > addterm( lo, hi )
> >
> > gives the same error message :
> > Error in eval(expr, envir, enclos) : invalid second argument
> >
> > Here is a traceback of the first failed command :
> > 14: eval(predvars, data, env)
> > 13: model.frame.default(formula = y ~ x2 + x3 + x1, data = df, drop.unused.levels = TRUE)
> > 12: model.frame(formula = y ~ x2 + x3 + x1, data = df, drop.unused.levels = TRUE)
> > 11: eval(expr, envir, enclos)
> > 10: eval(mf, parent.frame())
> > 9: lm(formula = y ~ x2 + x3 + x1, data = df, method = "model.frame")
> > 8: eval(expr, envir, enclos)
> > 7: eval(fcall, env, parent.frame())
> > 6: model.frame.lm(fob, xlev = object$xlevels)
> > 5: model.frame(fob, xlev = object$xlevels)
> > 4: stats:::add1.lm(object, scope = scope, scale = scale)
> > 3: addterm.lm(fit, scope$add, scale = scale, trace = max(0, trace - 1), k = k, ...)
> > 2: addterm(fit, scope$add, scale = scale, trace = max(0, trace - 1), k = k, ...)
> > 1: stepAIC(mid, scope = list(upper = ~x1 + x2 + x3, lower = ~1))
> >
> > Any pointers would be much appreciated. Thank you.
> >
> > Regards, Adai
> >
> > ______________________________________________
> > R-help@stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
> >
>



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Tue Aug 16 01:16:38 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:39:49 EST