Learn R Programming

dr (version 2.0.4)

dr.weights: Estimate weighting for elliptical symmetry

Description

This function estimate weights to apply to the rows of a data matrix to make the resulting weighted matrix as close to multivariate normality as possible. This method is usually not called directly by the user.

Usage

dr.weights(formula, data = list(), subset, na.action = na.fail, 
    covmethod = "mve", sigma=1, nsamples=NULL, ...) 

robust.center.scale(x, method,... )

Arguments

formula
A one-sided or two-sided formula. The right hand side is used to define the design matrix.
data
An optional data frame.
subset
A list of cases to be used in computing the weights.
na.action
The default is na.fail, to prohibit computations. If set to na.omit, the function will return a list of weights of the wrong length for use with dr.
covmethod
covmethod is passed as the argument method to the function cov.rob in the required package lqs. The choices are "classical", "mve" and "mcd". Arguments are different
nsamples
The weights are determined by random sampling from a data-determined normal distribution. This controls the number of samples. The default is 10 times the number of cases.
sigma
Scale factor, set to one by default
x
An $n \times p$ data matrix with no missing values
method
see covmethod above
...
Additional args are passed to cov.rob

Value

  • Returns a list of n weights, some of which may be zero.

Details

The basic outline is: (1) Estimate a mean m and covariance matrix S using a possibly robust method; (2) For each iteration, obtain a random vector from N(m,sigma*S). Add 1 to a counter for observation i if the i-th row of the data matrix is closest to the random vector; (3) return as weights the sample faction allocated to each observation. If you set the keyword weights.only to T on the call to dr, then only the list of weights will be returned.

References

R. D. Cook and C. Nachtsheim (1994), Reweighting to achieve elliptically contoured predictors in regression. Journal of the American Statistical Association, 89, 592--599.

See Also

dr, lqs

Examples

Run this code
data(ais)
w1 <- dr.weights(~ Ht +Wt +RCC, data = ais)
m1 <- dr(LBM~Ht+Wt+RCC,data=ais,weights=w1)

Run the code above in your browser using DataLab