[R] stepAIC invalid scope argument
Adaikalavan Ramasamy
ramasamy at cancer.org.uk
Mon Aug 15 02:37:37 CEST 2005
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
More information about the R-help
mailing list