[R] Using model operator in stepwise function's upper scope formula
Prof Brian Ripley
ripley at stats.ox.ac.uk
Tue Oct 5 08:45:48 CEST 2004
`.' means `what is already there'. In your case, .^2 is 1^2 which is 1,
so it behaves correctly.
Only in a *fit* involving a *data* argument does `.' mean `the rest of the
variables'.
On Mon, 4 Oct 2004, Yu Shao wrote:
> Hello:
>
> I am doing forward stepwise analysis on the glm model. I am trying to use model
> operator in the "upper" scope formula, for example,
>
> scope=list(lower=~1,upper=~ .^2)
>
> but the upper bound of the scope seems to be ignored and add1 is not performed
> at all, while if the terms are explicitly listed in the formula, the step
> function seems to work properly. Example:
>
> > version
> platform sparc-sun-solaris2.9
> arch sparc
> os solaris2.9
> system sparc, solaris2.9
> status
> major 1
> minor 9.0
> year 2004
> month 04
> day 12
> language R
>
> > testdata
> effect fa1 fa2 fa3
> 1 0.5054526 -1.4 1 -15.42
> 2 0.1366526 -2.5 3 -14.72
> 3 0.4798526 -1.1 3 -16.43
> 4 0.5566526 -4.6 2 -17.62
> 5 0.6568526 -3.5 7 -5.41
> 6 0.6653526 0.0 5 -11.88
> 7 0.6376526 0.0 5 -11.72
> 8 0.5203526 -2.9 -1 -14.72
> 9 0.4905526 -2.1 2 -17.68
> 10 0.6376526 -1.1 1 -13.39
>
> > step (glm(effect ~ 1 , data=testdata), scope=list(lower=~1,upper=~.),
> direction='forward')
> Start: AIC= -5.89
> effect ~ 1
>
>
> Call: glm(formula = effect ~ 1, data = testdata)
>
> Coefficients:
> (Intercept)
> 0.5287
>
> Degrees of Freedom: 9 Total (i.e. Null); 9 Residual
> Null Deviance: 0.2178
> Residual Deviance: 0.2178 AIC: -5.89
>
> ================================================================
>
> But if I listed the term explicitly in the formula, then step function seemed to
> work correctly:
>
> > step (glm(effect ~ 1 , data=testdata),
> scope=list(lower=~1,upper=~fa1+fa2+fa3), direction='forward')
> Start: AIC= -5.89
> effect ~ 1
>
> Df Deviance AIC
> + fa3 1 0.1778 -5.9188
> <none> 0.2178 -5.8901
> + fa2 1 0.2023 -4.6271
> + fa1 1 0.2065 -4.4194
>
> Step: AIC= -5.92
> effect ~ fa3
>
> Df Deviance AIC
> <none> 0.1778 -5.9188
> + fa1 1 0.1698 -4.3783
> + fa2 1 0.1770 -3.9605
>
> Call: glm(formula = effect ~ fa3, data = testdata)
>
> Coefficients:
> (Intercept) fa3
> 0.78310 0.01830
>
> Degrees of Freedom: 9 Total (i.e. Null); 8 Residual
> Null Deviance: 0.2178
> Residual Deviance: 0.1778 AIC: -5.919
> ================================================================
>
> I've lookup the online manual of step function but couldn't find a solution.
> Thanks in advance,
>
> Yu Shao
> Wadsworth Center, New York State Department of Health,
> Albany, NY 12208
>
> ______________________________________________
> R-help at 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
>
>
--
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
More information about the R-help
mailing list