dr (formula, data, subset, group=NULL, na.action = na.fail, weights, ...)
dr.compute (x, y, weights, group=NULL, method = "sir", chi2approx="bx",...)
y~x1+x2+x3
, where the left-side
variable is a vector or a matrix of the response variable(s), and the right-hand side
variables represent the predictors. While any legal formula in the Rogers-Wilkinson
notationmethod
is one of "sir"
,
"save"
, or "ire"
dr
and then
passed to dr.compute
, or you can create it yourself."sir"
, "save"
, "phdy"
, "phdres"
and
"ire"
. Each method may have its own additional arguments, or its
own d"bx
dr
, all additional
arguments passed to dr.compute
. For
dr.compute
, additional
arguments may be required for particular dimension reduction method. For
example,
nslices
is method
argument), with attributes:dr
.update
work correctly."save"
, then A
is a three dimensional array needed to
compute test statistics."sir"
, "save"
, "phdy"
and
"phdres"
, a kernel matrix $M$ is estimated such that the
column space of $M$ should be close to the central subspace
$R(B)$. The eigenvectors corresponding to the d
largest
eigenvalues of $M$ provide an estimate of $R(B)$.
For the method "ire"
, subspaces are estimated by minimizing
an objective function.
Categorical predictors can be included using the groups
argument, with the methods "sir"
, "save"
and
"ire"
, using the ideas from Chiaromonte, Cook and Li (2002).
The primary output from this method is (1) a set of vectors whose
span estimates R(B)
; and various tests concerning the
dimension d
.
Weights can be used, essentially to specify the relative
frequency of each case in the data. Empirical weights that make
the contours of the weighted sample closer to elliptical can be
computed using dr.weights
.
This will usually result in zero weight for some
cases. The function will set zero estimated weights to missing."sir"
,
"phdy"
and "phdres"
.
Cook, R. D. (2004). Testing predictor contributions in sufficient
dimension reduction. Annals of Statistics, 32, 1062-1092.
Introduced marginal coordinate tests.
Cook, R. D. and Nachtsheim, C. (1994), Reweighting to achieve
elliptically contoured predictors in regression. Journal of
the American Statistical Association, 89, 592--599. Describes the
weighting scheme used by dr.weights
.
Cook, R. D. and Ni, L. (2004). Sufficient dimension reduction via
inverse regression: A minimum discrrepancy approach, Journal
of the American Statistical Association, 100, 410-428. The
"ire"
is described in this paper.
Cook, R. D. and Weisberg, S. (1999). Applied Regression
Including Computing and Graphics, New York: Wiley,
arc
described
in this book also computes most of the dimension reduction methods
described here.
Chiaromonte, F., Cook, R. D. and Li, B. (2002). Sufficient dimension
reduction in regressions with categorical predictors. Ann. Statist.
30 475-497. Introduced grouping, or conditioning on factors.
Shao, Y., Cook, R. D. and Weisberg (2007). Marginal tests with
sliced average variance estimation. Biometrika. Describes
the tests used for "save"
.
Wen, X. and Cook, R. D. (2007). Optimal Sufficient Dimension
Reduction in Regressions with Categorical Predictors, Journal
of Statistical Inference and Planning. This paper extends the
"ire"
method to grouping.
Wood, A. T. A. (1989) An $F$ approximation to the distribution
of a linear combination of chi-squared variables.
Communications in Statistics: Simulation and Computation, 18,
1439-1456. Approximations for p-values.data(ais)
# default fitting method is "sir"
s0 <- dr(LBM~log(SSF)+log(Wt)+log(Hg)+log(Ht)+log(WCC)+log(RCC)+
log(Hc)+log(Ferr),data=ais)
# Refit, using a different function for slicing to agree with arc.
summary(s1 <- update(s0,slice.function=dr.slices.arc))
# Refit again, using save, with 10 slices; the default is max(8,ncol+3)
summary(s2<-update(s1,nslices=10,method="save"))
# Refit, using phdres. Tests are different for phd, and not
# Fit using phdres; output is similar for phdy, but tests are not justifiable.
summary(s3<- update(s1,method="phdres"))
# fit using ire:
summary(s4 <- update(s1,method="ire"))
# fit using Sex as a grouping variable.
s5 <- update(s4,group=~Sex)
Run the code above in your browser using DataLab