119 lines
4.2 KiB
R
119 lines
4.2 KiB
R
% Generated by roxygen2: do not edit by hand
|
|
% Please edit documentation in R/CVE.R
|
|
\name{cve.call}
|
|
\alias{cve.call}
|
|
\title{Conditional Variance Estimator (CVE).}
|
|
\usage{
|
|
cve.call(X, Y, method = "simple", nObs = sqrt(nrow(X)), h = NULL,
|
|
min.dim = 1L, max.dim = 10L, k = NULL, momentum = 0, tau = 1,
|
|
tol = 0.001, slack = 0, gamma = 0.5, V.init = NULL,
|
|
max.iter = 50L, attempts = 10L, logger = NULL)
|
|
}
|
|
\arguments{
|
|
\item{X}{data matrix with samples in its rows.}
|
|
|
|
\item{Y}{Responses (1 dimensional).}
|
|
|
|
\item{method}{specifies the CVE method variation as one of
|
|
\itemize{
|
|
\item "simple" exact implementation as described in the paper listed
|
|
below.
|
|
\item "weighted" variation with addaptive weighting of slices.
|
|
}}
|
|
|
|
\item{nObs}{parameter for choosing bandwidth \code{h} using
|
|
\code{\link{estimate.bandwidth}} (ignored if \code{h} is supplied).}
|
|
|
|
\item{h}{bandwidth or function to estimate bandwidth, defaults to internaly
|
|
estimated bandwidth.}
|
|
|
|
\item{min.dim}{lower bounds for \code{k}, (ignored if \code{k} is supplied).}
|
|
|
|
\item{max.dim}{upper bounds for \code{k}, (ignored if \code{k} is supplied).}
|
|
|
|
\item{k}{Dimension of lower dimensional projection, if \code{k} is given
|
|
only the specified dimension \code{B} matrix is estimated.}
|
|
|
|
\item{momentum}{number of [0, 1) giving the ration of momentum for eucledian
|
|
gradient update with a momentum term.}
|
|
|
|
\item{tau}{Initial step-size.}
|
|
|
|
\item{tol}{Tolerance for break condition.}
|
|
|
|
\item{slack}{Positive scaling to allow small increases of the loss while
|
|
optimizing.}
|
|
|
|
\item{gamma}{step-size reduction multiple.}
|
|
|
|
\item{V.init}{Semi-orthogonal matrix of dimensions `(ncol(X), ncol(X) - k)
|
|
as optimization starting value. (If supplied, \code{attempts} is
|
|
set to 1 and \code{k} to match dimension)}
|
|
|
|
\item{max.iter}{maximum number of optimization steps.}
|
|
|
|
\item{attempts}{number of arbitrary different starting points.}
|
|
|
|
\item{logger}{a logger function (only for advanced user, significantly slows
|
|
down the computation).}
|
|
}
|
|
\value{
|
|
an S3 object of class \code{cve} with components:
|
|
\describe{
|
|
\item{X}{Original training data,}
|
|
\item{Y}{Responce of original training data,}
|
|
\item{method}{Name of used method,}
|
|
\item{call}{the matched call,}
|
|
\item{res}{list of components \code{V, L, B, loss, h} and \code{k} for
|
|
each \eqn{k=min.dim,...,max.dim} (dimension).}
|
|
}
|
|
}
|
|
\description{
|
|
Conditional Variance Estimation (CVE) is a novel sufficient dimension
|
|
reduction (SDR) method for regressions satisfying \eqn{E(Y|X) = E(Y|B'X)},
|
|
where \eqn{B'X} is a lower dimensional projection of the predictors. CVE,
|
|
similarly to its main competitor, the mean average variance estimation
|
|
(MAVE), is not based on inverse regression, and does not require the
|
|
restrictive linearity and constant variance conditions of moment based SDR
|
|
methods. CVE is data-driven and applies to additive error regressions with
|
|
continuous predictors and link function. The effectiveness and accuracy of
|
|
CVE compared to MAVE and other SDR techniques is demonstrated in simulation
|
|
studies. CVE is shown to outperform MAVE in some model set-ups, while it
|
|
remains largely on par under most others.
|
|
Let \eqn{Y} be real denotes a univariate response and \eqn{X} a real
|
|
\eqn{p}-dimensional covariate vector. We assume that the dependence of
|
|
\eqn{Y} and \eqn{X} is modelled by
|
|
\deqn{Y = g(B'X) + \epsilon}
|
|
where \eqn{X} is independent of \eqn{\epsilon} with positive definite
|
|
variance-covariance matrix \eqn{Var(X) = \Sigma_X}. \eqn{\epsilon} is a mean
|
|
zero random variable with finite \eqn{Var(\epsilon) = E(\epsilon^2)}, \eqn{g}
|
|
is an unknown, continuous non-constant function,
|
|
and \eqn{B = (b_1, ..., b_k)} is
|
|
a real \eqn{p \times k}{p x k} of rank \eqn{k <= p}{k \leq p}.
|
|
Without loss of generality \eqn{B} is assumed to be orthonormal.
|
|
}
|
|
\examples{
|
|
# create B for simulation (k = 1)
|
|
B <- rep(1, 5) / sqrt(5)
|
|
|
|
set.seed(21)
|
|
# creat predictor data X ~ N(0, I_p)
|
|
X <- matrix(rnorm(500), 100, 5)
|
|
# simulate response variable
|
|
# Y = f(B'X) + err
|
|
# with f(x1) = x1 and err ~ N(0, 0.25^2)
|
|
Y <- X \%*\% B + 0.25 * rnorm(100)
|
|
|
|
# calculate cve with method 'simple' for k = 1
|
|
set.seed(21)
|
|
cve.obj.simple1 <- cve(Y ~ X, k = 1)
|
|
|
|
# same as
|
|
set.seed(21)
|
|
cve.obj.simple2 <- cve.call(X, Y, k = 1)
|
|
|
|
# extract estimated B's.
|
|
coef(cve.obj.simple1, k = 1)
|
|
coef(cve.obj.simple2, k = 1)
|
|
}
|