Sequential fitting of coordinate tests using a dr object

Share:

Description

This function implements backward elimination using a dr object for which a dr.coordinate.test is defined, currently for SIR SAVE, IRE and PIRE.

Usage

1
2
3
4
5
dr.step(object,scope=NULL,d=NULL,minsize=2,stop=0,trace=1,...)

## S3 method for class 'dr'
drop1(object, scope = NULL,  update=TRUE,
test="general",trace=1,...)

Arguments

object

A dr object for which dr.coordinate.test is defined, for method equal to one of sir, save or ire.

scope

A one sided formula specifying predictors that will never be removed.

d

To use conditional coordinate tests, specify the dimension of the central (mean) subspace. The default is NULL, meaning no conditioning. This is currently available only for methods sir, save without categorical predictors, or for ire with or without categorical predictors.

minsize

Minimum subset size, must be greater than or equal to 2.

stop

Set stopping criterion: continue removing variables until the p-value for the next variable to be removed is less than stop. The default is stop = 0.

update

If true, the update method is used to return a dr object obtained from object by updating the formula to drop the variable with the largest p.value. This can significantly slow the computations for IRE but has little effect on SAVE and SIR.

test

Type of test to be used for selecting the next predictor to remove for method="save" only. "normal" assumes normal predictors, "general" assumes elliptically contoured predictors. For other methods, this argument is ignored.

trace

If positive, print informative output at each step, the default. If trace is 0 or false, suppress all printing.

...

Additional arguments passed to dr.coordinate.test.

Details

Suppose a dr object has p=a+b predictors, with a predictors specified in the scope statement. drop1 will compute either marginal coordinate tests (if d=NULL) or conditional marginal coordinate tests (if d is positive) for dropping each of the b predictors not in the scope, and return p.values. The result is an object created from the original object with the predictor with the largest p.value removed.

dr.step will call drop1.dr repeatedly until \max(a,d+1) predictors remain.

Value

As a side effect, a data frame of labels, tests, df, and p.values is printed. If update=TRUE, a dr object is returned with the predictor with the largest p.value removed.

Author(s)

Sanford Weisberg, <sandy@stat.umn.edu>, based on the drop1 generic function in the base R. The dr.step function is also similar to step in base R.

References

Cook, R. D. (2004). Testing predictor contributions in sufficient dimension reduction. Annals of Statistics, 32, 1062-1092.

Shao, Y., Cook, R. D. and Weisberg (2007). Marginal tests with sliced average variance estimation. Biometrika.

See Also

dr.coordinate.test

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
data(ais)
# To make this idential to ARC, need to modify slices to match by
# using slice.info=dr.slices.arc() rather than nslices=8
summary(s1 <- dr(LBM~log(SSF)+log(Wt)+log(Hg)+log(Ht)+log(WCC)+log(RCC)+
                 log(Hc)+log(Ferr), data=ais,method="sir",
                 slice.method=dr.slices.arc,nslices=8)) 
# The following will almost duplicate information in Table 5 of Cook (2004).
# Slight differences occur because a different approximation for the
# sum of independent chi-square(1) random variables is used:
ans1 <- drop1(s1)
ans2 <- drop1(s1,d=2)
ans3 <- drop1(s1,d=3)
# remove predictors stepwise until we run out of variables to drop.
dr.step(s1,scope=~log(Wt)+log(Ht))