lm.ridge                package:MASS                R Documentation

Ridge Regression

Description:

     Fit a linear model by ridge regression.

Usage:

     lm.ridge(formula, data, subset, na.action, lambda = 0, model = FALSE,
              x = FALSE, y = FALSE, contrasts = NULL, ...)

Arguments:

 formula: a formula expression as for regression models, of the form
          'response ~ predictors'. See the documentation of 'formula'
          for other details. 'offset' terms are allowed. 

    data: an optional data frame in which to interpret the variables
          occurring in 'formula'. 

  subset: expression saying which subset of the rows of the data should
           be used in the fit.  All observations are included by
          default. 

na.action: a function to filter missing data. 

  lambda: A scalar or vector of ridge constants. 

   model: should the model frame be returned? 

       x: should the design matrix be returned? 

       y: should the response be returned? 

contrasts: a list of contrasts to be used for some or all of factor
          terms in the formula. See the 'contrasts.arg' of
          'model.matrix.default'. 

     ...: additional arguments to 'lm.fit'. 

Details:

     If an intercept is present in the model, its coefficient is not
     penalized.  (If you want to penalized an intercept, put in your
     own constant term and remove the intercept.)

Value:

     A list with components

    coef: matrix of coefficients, one row for each value of 'lambda'.
          Note that these are not on the original scale and are for use
          by the 'coef' method. 

  scales: scalings used on the X matrix. 

   Inter: was intercept included? 

  lambda: vector of lambda values 

      ym: mean of 'y' 

      xm: column means of 'x' matrix 

     GCV: vector of GCV values 

    kHKB: HKB estimate of the ridge constant. 

     kLW: L-W estimate of the ridge constant. 

References:

     Brown, P. J. (1994) _Measurement, Regression and Calibration_
     Oxford.

See Also:

     'lm'

Examples:

     data(longley) # not the same as the S-PLUS dataset
     names(longley)[1] <- "y"
     lm.ridge(y ~ ., longley)
     plot(lm.ridge(y ~ ., longley,
                   lambda = seq(0,0.1,0.001)))
     select(lm.ridge(y ~ ., longley,
                    lambda = seq(0,0.1,0.0001)))

