

   CChhoooossee aa mmooddeell bbyy AAIICC iinn aa SStteeppwwiissee AAllggoorriitthhmm

        step(object, scope, scale=0, direction=c("both", "backward", "forward"),
             trace=1, keep=NULL, steps=1000, k=2, ...)

   AArrgguummeennttss::

     object: an object representing a model of an appropriate
             class.  This is used as the initial model in the
             stepwise search.

      scope: defines the range of models examined in the step-
             wise search.

      scale: used in the definition of the AIC statistic for
             selecting the models, currently only for `lm',
             `aov' and `glm' models.

   direction: the mode of stepwise search, can be one of
             `"both"', `"backward"', or `"forward"', with a
             default of `"both"'.  If the `scope' argument is
             missing, the default for `direction' is `"back-
             ward"'.

      trace: if positive, information is printed during the
             running of `step'.

       keep: a filter function whose input is a fitted model
             object and the associated `AIC' statistic, and
             whose output is arbitrary.  Typically `keep' will
             select a subset of the components of the object
             and return them. The default is not to keep any-
             thing.

      steps: the maximum number of steps to be considered.  The
             default is 1000 (essentially as many as required).
             It is typically used to stop the process early.

          k: the multiple of the number of degrees of freedom
             used for the penalty.  Only `k=2' gives the gen-
             uine AIC: `k = log(n)' is sometimes referred to as
             BIC or SBC.

        ...: any additional arguments to `extractAIC'.

   DDeessccrriippttiioonn::

        `step' uses `add1' and `drop1' repeatedly; it will work
        for any method for which they work, and that is deter-
        mined by having a valid method for `extractAIC'.  When
        the additive constant can be chosen so that AIC is
        equal to Mallows' Cp, this is done and the tables are
        labelled appropriately.

        There is a potential problem in using `glm' fits with a
        variable `scale', as in that case the deviance is not
        simply related to the maximized log-likelihood. The
        function `extractAIC.glm' makes the appropriate adjust-
        ment for a `gaussian' family, but may need to be
        amended for other cases. (The `binomial' and `poisson'
        families have fixed `scale' by default and do not cor-
        respond to a particular maximum-likelihood problem for
        variable `scale'.)

   VVaalluuee::

        the stepwise-selected model is returned, with up to two
        additional components.  There is an `"anova"' component
        corresponding to the steps taken in the search, as well
        as a `"keep"' component if the `keep=' argument was
        supplied in the call. The `"Resid. Dev"' column of the
        analysis of deviance table refers to a constant minus
        twice the maximized log likelihood: it will be a
        deviance only in cases where a saturated model is well-
        defined (thus excluding `lm', `aov' and `survreg' fits,
        for example).

   NNoottee::

        This function differs considerably from the function in
        S, which uses a number of approximations and does not
        compute the correct AIC.

   AAuutthhoorr((ss))::

        B.D. Ripley

   SSeeee AAllssoo::

        `add1', `drop1'

   EExxaammpplleess::

        example(lm)
        step(lm.D9)

        data(swiss)
        summary(lm1 <- lm(Fertility ~ ., data = swiss))
        slm1 <- step(lm1)
        summary(slm1)
        slm1 $ anova

